sid1333 Опубликовано 10 июля, 2009 · Жалоба Доброй ночи! Столкнулся тут с косяком с 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 не обращал внимание на подсеть свичей, и выдавал только заданные адреса из абонентских пулов. Заранее спасибо :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
anix Опубликовано 11 июля, 2009 · Жалоба 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"; } } Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...