Jump to content
Калькуляторы

DHCP Option 82 проблема Не выдаётся IP из нужного пула

Доброй ночи!

 

Столкнулся тут с косяком с ISC DHCPD 3.0 при использовании option-82. Пока не могу понять как правильно его настроить. В двух словах:

 

Сеть имеет такой вид:

[Абонент]---[DES-3526]---[DES-3100-24TG]---[DGS-3612G]---[L3 сеть]---[ЦСФ]---[2 дублирующих DHCP сервера]

На DES-3526 включен DHCP snooping, он же выступает DHCP relay и шлёт запросы на сервера в ЦСФ. Все абоны запиханы в один vlan с IP 10.xxx.0.0/20, порты изолированы друг от друга - пускается трафик только на uplink.

IP адреса свичей в управляющем vlan из подсети 10.xxx.31.0/24

 

Конфиги dhcpd идентичны. Привожу конфиг слэйва:

 # /etc/dhcp/dhcp.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 86400;
log-facility local7;
local-address xx.xx.xx.xz;
option domain-name "isp.ru";

if exists agent.circuit-id
{
  log(info, concat(
    "Leased IP address: ", binary-to-ascii(10, 8, ".", leased-address),
    "; Switch: ", substring(option agent.remote-id, 2, 32),
    "; VLAN ID: ", binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2)),
    "; Port: ", binary-to-ascii(10, 8, "/", substring(option agent.circuit-id, 4, 2))));
}

# Failover
failover peer "DHCP-Master" {
  secondary;
  address xx.xx.xx.xx;
  port 313;
  peer address xx.xx.xx.xy;
  peer port 313;
  max-response-delay 30;
  max-unacked-updates 10;
}

shared-network prov {
  subnet xx.xx.xx.00 netmask 255.255.255.224 { }

  # Networks including
  include "/etc/dhcp/XXX-0/XX3-0";
  include "/etc/dhcp/XXX-0/XX4-0";
}

Конфиг одной подсети:

# Network XX3-0

subnet 10.XX3.31.0 netmask 255.255.255.0 {
  range 10.XX3.31.254;
  deny unknown-clients;
}

subnet 10.XX3.0.0 netmask 255.255.240.0 {
  authoritative;
  option routers 10.XX3.0.1;
  option subnet-mask 255.255.240.0;
  option domain-name-servers 10.XX3.0.1, xx.xx.xx.xz;

  # Including access switches definitions
  include "/etc/dhcp/XX3-0/XX3-0-1";
  include "/etc/dhcp/XX3-0/XX3-0-2";
  ...
  include "/etc/dhcp/XX3-0/XX3-0-20";

Конфиг для одного из коммутаторов:

# IP address range 10.XX3.1.145-10.XX3.1.168

class "acc-XX3-0-7-port-1" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "1"); }
class "acc-XX3-0-7-port-2" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "2"); }
class "acc-XX3-0-7-port-3" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "3"); }
...
class "acc-XX3-0-7-port-24" { match if (substring(option agent.remote-id, 2, 32) = "Acc-XX3.0-7" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "24"); }

pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.145; allow members of "acc-XX3-0-7-port-1"; }
pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.146; allow members of "acc-XX3-0-7-port-2"; }
pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.147; allow members of "acc-XX3-0-7-port-3"; }
...
pool { failover peer "DHCP-Master"; deny dynamic bootp clients; range 10.XX3.1.168; allow members of "acc-XX3-0-7-port-24"; }

 

Свичи прекрасно релеят запросы на сервера, но выдаётся не то, что прописано в пулах:

Jul 10 17:46:40 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:46:40 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:46:44 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:46:44 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:46:52 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:46:52 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:47:07 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1
Jul 10 17:47:07 dhcpd-slave dhcpd: DHCPDISCOVER from 00:15:f2:77:8f:e1 via 10.XX3.31.7: unknown client
Jul 10 17:47:43 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1

Выдаётся IP 10.XX3.31.254. Эту сеть обязательно нужно задавать и выделять в ней пул хотя бы на 1 IP, иначе dhcpd ругается на неопределённую сеть, когда приходит пакет от 3526, или на отсутствие свободных адресов в этой сети, если не определять пул.

 

Прошу подсказать, как сделать так, чтобы isc dhcpd не обращал внимание на подсеть свичей, и выдавал только заданные адреса из абонентских пулов.

 

Заранее спасибо :)

Share this post


Link to post
Share on other sites
Jul 10 17:47:43 dhcpd-slave dhcpd: Leased IP address: 10.XX3.31.254; Switch: Acc-XX3.0-7; VLAN ID: 50; Port: 0/1[/code] Выдаётся IP 10.XX3.31.254. Эту сеть обязательно нужно задавать и выделять в ней пул хотя бы на 1 IP, иначе dhcpd ругается на неопределённую сеть, когда приходит пакет от 3526, или на отсутствие свободных адресов в этой сети, если не определять пул.

У нас работает примерно так, на свичах релей и снупинг. дхцп сервер за Л3 свичем.

Сеть описывать надо, но без пулов, к примеру:

class "vlan145" {
match if binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 2, 2))="145";
}
shared-network 3526 {
(сеть со свичами)
subnet 192.168.12.0 netmask 255.255.252.0 { not authoritative; }

#vlan 145
subnet 10.1.6.0 netmask 255.255.255.224 {
  not authoritative;
  option domain-name-servers ns1, ns2;
  option domain-name "vlan145.pool.domain.ru";
  option routers 10.1.6.1;
  option broadcast-address 10.1.6.31;
  option ms-classless-static-routes 16, 10,1, 10,1,6,1;
  option rfc3442-classless-static-routes 16, 10,1 10,1,6,1;
}
# pool vlan145
pool {
    range 10.1.6.2 10.1.6.30;
    allow members of "vlan145";
}
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this