Jump to content

Recommended Posts

Posted

Доброго времени суток!

 

Есть тестовая конфигурация.

 

Коммутатор des-3526 (172.21.21.189), на котором включен DHCP relay.

К нему подключен машинка FreeBSD с dhcpd 3.0.3 (172.21.21.191)

и еще одна станция, которая будет выступать dhcp клиентом, подключена к порту #3.Все порты в default влане. Попытка получить адрес клиентом ни к чему хорошему не приводит.

 

Пробовал использовать виндовый dhcp сервер, который упоминают на сайте длинка... с ним все ок. То есть проблема именно в настройках dhcpd.

 

Конфиг dhcpd:

 

if exists agent.circuit-id

{

log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface ",

binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), " VLAN ",

binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)), "on switch ",

binary-to-ascii (16, 8, ":", substring( option agent.remote-id, 2, 6))));

 

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)));

}

 

class "c2" {

match if option agent.circuit-id = 0:4:0:1:0:3;

}

 

subnet 172.21.21.0 netmask 255.255.255.0 {

pool {

allow members of "c2";

range 172.21.21.53;

}

}

 

 

Вот логи dhcpd:

 

dhcpd: Lease for 172.21.21.53 is connected to interface 0/3, VLAN 1 on switch 0:13:46:e6:ba:d2

dhcpd: Lease for 172.21.21.53 raw option-82 info is CID: 0:4:0:1:0:3 AID: 0.6.0.13.46.e6.ba.d2

dhcpd: DHCPDISCOVER from 00:11:11:25:ec:fa via 172.21.21.189

dhcpd: DHCPOFFER on 172.21.21.53 to 00:11:11:25:ec:fa via 172.21.21.189

dhcpd: DHCPREQUEST for 172.21.21.53 (172.21.21.191) from 00:11:11:25:ec:fa via rl0: lease 172.21.21.53 unavailable.

dhcpd: DHCPNAK on 172.21.21.53 to 00:11:11:25:ec:fa via rl0

dhcpd: DHCPDISCOVER from 00:11:11:25:ec:fa via rl0: network 172.21.21/24: no free leases

 

dhcpd: Lease for 172.21.21.53 is connected to interface 0/3, VLAN 1 on switch 0:13:46:e6:ba:d2

dhcpd: Lease for 172.21.21.53 raw option-82 info is CID: 0:4:0:1:0:3 AID: 0.6.0.13.46.e6.ba.d2

dhcpd: DHCPREQUEST for 172.21.21.53 (172.21.21.191) from 00:11:11:25:ec:fa via 172.21.21.189

dhcpd: DHCPACK on 172.21.21.53 to 00:11:11:25:ec:fa via 172.21.21.189

 

dhcpd: Lease for 172.21.21.53 is connected to interface 0/3, VLAN 1 on switch 0:13:46:e6:ba:d2

dhcpd: Lease for 172.21.21.53 raw option-82 info is CID: 0:4:0:1:0:3 AID: 0.6.0.13.46.e6.ba.d2

dhcpd: DHCPDISCOVER from 00:11:11:25:ec:fa via 172.21.21.189

dhcpd: DHCPOFFER on 172.21.21.53 to 00:11:11:25:ec:fa via 172.21.21.189

dhcpd: DHCPREQUEST for 172.21.21.53 (172.21.21.191) from 00:11:11:25:ec:fa via rl0: lease 172.21.21.53 unavailable.

dhcpd: DHCPNAK on 172.21.21.53 to 00:11:11:25:ec:fa via rl0

и т.д. многократные повторенения данных блоков.

 

Почему DHCPDISCOVER и DHCPOFFER приходят via 172.21.21.189 (это relay), а

вот DHCPREQUEST приходит via rl0? Ведь таким образом в него не добавляются

заголовки option 82... может поэтому и возникает

dhcpd: DHCPNAK on 172.21.21.53 to 00:11:11:25:ec:fa via rl0

??

 

Хотя с другой стороны, в списках рассылки dhcp народ говорит, что типа все ок: запросы DHCPREQUEST юникастовые и их не все dhcp агенты отслеживают и, соответвественно, не добавляют в них option 82.. в таком случае сам dhcpd сервер берет option.circuit-id из ранее записанной для IP адреса lease информации.

 

У кого работают схемы c option 82 помогите разобраться.

Спасибо.

Posted

попробуй для начала на клиентской машине запустить tcpdump и посмотри какие пакеты приходят от винды, и сравни их с теми пакетами что посылает dhcp от FreeBSD

Posted

Вопрос снят. Проблема решена путем усложнения тестовой схемы к тому виду, в котором она будет использоваться с продакшене. Хотя очень было интересно узнать почему все-таки не работает простой пример с одним вланом.

 

Может кому пригодится, вот пример настроек dhcpd для случая, когда он находится в том же вилане, что и управляющие интерфейсы свитчей.

 

class "c3" {

match if option agent.circuit-id = 0:4:0:2:0:3;

}

 

class "c5" {

match if option agent.circuit-id = 0:4:0:3:0:5;

}

 

shared-network sw {

 

subnet 172.21.21.0 netmask 255.255.255.0 {

}

 

subnet 10.35.0.0 netmask 255.255.255.0 {

pool {

allow members of "c5";

range 10.35.0.1;

}

}

 

subnet 10.33.0.0 netmask 255.255.255.0 {

pool {

allow members of "c3";

range 10.33.0.1;

}

}

}

 

Первый subnet - это подсеть свитчей, в этой же сети находится

единственный интерфейс dhcpd сервера.

 

Вторые два subnet'а - это тестовые сети для клиентов из разных вланов.

 

Чтобы окончательно использовать схему в боевых условиях

останется только добавить в условие math для классов опцию agent.remote-id.

  • 2 weeks later...
Posted

История продолжается.

 

Озадачился моментом, когда к одному порту будет подключено несколько клиентов. Например, два компьютера в одной квартире.

 

Соответсвенно, хотелось бы в этом случае не выдавать пул из двух адресов на порт, а специально для таких случаев все-таки снова вспомнить про мас адреса. Соответсвенно, добавляю допольнительное ограничение на условие попадания в класс:

 

class "c1" {

match if bla-bla and hardware "xx:xx:xx:xx:xx:xx";

}

 

Проверяю.... не работает :(

Убираю допольнительное условие hardware и добавляю логирование значения переменной hardware. Получаю клиентом адрес, смотрю в лог и обнаруживаю, что к мас адресу добавлен префикс "1:".

То есть в итоге вижуе "1:xx:xx:xx:xx:xx:xx". Добавляю эту единичку в условие, все работает!

 

Может кто пояснить сию странность?

Спасибо.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.