sprite Posted October 27, 2009 Posted October 27, 2009 Добрый день. Никак не могу решить такую проблему, вроде бы и на форуме народ писал про нее, но решения я так и не увидел. Хочу раздавать по dhcp IP привязанные к свичам и портам (option 82). Настраиваю по народным рецептам Мой dhcpd.conf option domain-name "example.org"; option domain-name-servers 10.10.1.3; authoritative; ddns-update-style none; default-lease-time 120; max-lease-time 180; min-lease-time 60; use-lease-addr-for-default-route on; one-lease-per-client on; deny duplicates; deny bootp; option arp-cache-timeout 120; option netbios-node-type 1; log-facility local7; local-address 10.250.250.1; if exists agent.circuit-id { log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " raw option-82 info is CID: ", binary-to-ascii (10, 8, ".", option agent.circuit-id), " AID: ", binary-to-ascii(16, 8, ".", option agent.remote-id), " suffix agent.circuit-id:", binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)), " suffix agent.remote-id: ", binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6)) )); } class "dlink" { match if binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6)) = "0:21:91:8c:95:28" ; } class "port-5" { match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "5" ; } shared-network "clients" { subnet 10.250.250.0 netmask 255.255.255.0 { pool { range 10.250.250.23; allow members of "port-5"; } pool { range 10.250.250.33; allow members of "dlink"; } } } в итоге хочу получить, чтобы с порта 5го выдавался 10.250.250.23, а слюбого другого 10.250.250.33. В логе вижу вот такое Oct 27 11:30:17 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via vlan1: network clients: no free leases Oct 27 11:30:17 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.9 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:9 suffix agent.remote-id: 0:21:91:8c:95:28 Oct 27 11:30:17 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via 10.250.250.3 Oct 27 11:30:17 server dhcpd: DHCPOFFER on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3 Oct 27 11:30:18 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 via vlan1: lease 10.250.250.33 unavailable. Oct 27 11:30:18 server dhcpd: DHCPNAK on 10.250.250.33 to 00:26:18:6a:ab:75 via vlan1 Oct 27 11:30:18 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.9 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:9 suffix agent.remote-id: 0:21:91:8c:95:28 Oct 27 11:30:18 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 (netbook) via 10.250.250.3 Oct 27 11:30:18 server dhcpd: DHCPACK on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3 и так до бесконечности. погуглил в инете проблема есть, решения не нашел. Все советы сводятся к тому, что match не проходит, специально в лог вывожу, тоже самон значение :( .Почему имено dhcpd пишет no free leases, а потом lease 10.250.250.33 unavailable Вставить ник Quote
toxicom Posted October 28, 2009 Posted October 28, 2009 потому, что классы и пулы между собой никак не связаны shared-network "clients" { subnet 10.250.250.0 netmask 255.255.255.0 { class "dlink" { match if binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6)) = "0:21:91:8c:95:28"; } class "port-5" { match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "5"; } pool { range 10.250.250.23; allow members of "port-5"; } pool { range 10.250.250.33; allow members of "dlink"; } } } Вставить ник Quote
sprite Posted October 28, 2009 Author Posted October 28, 2009 потому, что классы и пулы между собой никак не связаны Дико извиняюсь, а как их связать? подскажите Вставить ник Quote
t0ly Posted October 28, 2009 Posted October 28, 2009 потому, что классы и пулы между собой никак не связаны Дико извиняюсь, а как их связать? подскажите насколько я понял выше в примере описано Вставить ник Quote
sprite Posted October 28, 2009 Author Posted October 28, 2009 насколько я понял выше в примере описано неподходит :( Я конечно не рассмотрел сразу, что вышепреведенный код может быть ответом, потому как и такие варианты тоже использовал. В поисках решения этой задачи в интернете я встречал, как описание классов внутри, описания subnet, так и выше ее. Нигде не оговаривалось обязательное месторасположение описания class. Убрал shared-network оставил только subnet 10.250.250.0 netmask 255.255.255.0 { class "dlink" { match if binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6)) = "0:21:91:8c:95:28"; } pool { range 10.250.250.33; allow members of "dlink"; } } все равно выдает в логи Oct 28 16:17:08 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via vlan1: network 10.250.250.0/24: no free leases Oct 28 16:17:08 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.17 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:17 suffix agent.remote-id: 0:21:91:8c:95:28 Oct 28 16:17:08 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via 10.250.250.3 Oct 28 16:17:08 server dhcpd: DHCPOFFER on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3 Oct 28 16:17:08 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 via vlan1: lease 10.250.250.33 unavailable. Oct 28 16:17:08 server dhcpd: DHCPNAK on 10.250.250.33 to 00:26:18:6a:ab:75 via vlan1 Oct 28 16:17:08 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.17 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:17 suffix agent.remote-id: 0:21:91:8c:95:28 Oct 28 16:17:08 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 (netbook) via 10.250.250.3 Oct 28 16:17:08 server dhcpd: DHCPACK on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3 Oct 28 16:17:09 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via vlan1: network 10.250.250.0/24: no free leases Oct 28 16:17:09 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.17 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:17 suffix agent.remote-id: 0:21:91:8c:95:28 Oct 28 16:17:09 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via 10.250.250.3 Oct 28 16:17:09 server dhcpd: DHCPOFFER on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3 Oct 28 16:17:09 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 via vlan1: lease 10.250.250.33 unavailable. Oct 28 16:17:09 server dhcpd: DHCPNAK on 10.250.250.33 to 00:26:18:6a:ab:75 via vlan1 в логах еще видно что mac свича правильно выделяю, почему этот запрос в класс не попадает?, непонятно :( Вставить ник Quote
toxicom Posted October 29, 2009 Posted October 29, 2009 У Вас же все в одном влане: клиент, релей-агент и сервер. И происходит что то типа: прилетает бродкастовый дисковер, на что сервер отвечает no free leases. Потом отрелеенный на который сервер предлагает адрес из пула, после чего на сервер прилетает бродкастовый (без agent.remote-id) request "хочу адрес 10.250.250.33" на что сервер говорит не положено: DHCPNAK... Уж если пользуетесь рецептами, то для начала, приготовьте хотя бы один в точности как написано и все получится :) Вставить ник Quote
sprite Posted October 30, 2009 Author Posted October 30, 2009 ОГРОМНОЕ спасибо!!! Так и получилось. К сожалению тестовый стенд возможно иметь из подручных средств (виртуальные машины и vlan-ы на самом компе) + неполное понимание процесса (то что вы заметили в моих логах, сам не доглядел :( ) не всегда приводят к нужному результату. Еще раз спасибо!!! Уж если пользуетесь рецептами, то для начала, приготовьте хотя бы один в точности как написано и все получится :)Да это один из тех рецептов по которым готовил. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.