Обнаружилась такая проблема с рядом роутеров (здесь в частности буду приводить примеры с проблемным SOHO-роутером D-Link DIR-300/NRU HW Ver: B7 прошивки пробовали все доступные). Так же наблюдаем проблему с роутерами D-Link DIR-320, Asus RT-N10E.
Кроме того есть несколько моделей роутеров, с которыми данная проблема не проявляется, это роутеры D-Link DIR-300 HW Ver: B3 FW Ver: 2.06, Asus WL-500gP V2 FW Ver: 3.0.4.4, Asus RT-N16 FW Ver: 3.0.0.4.260. Здесь буду приводить примеры работы с беспроблемным роутером D-Link DIR-300 HW Ver: B3 FW Ver: 2.06.
Схема следующая:DHCP сервер (isc-dhcp-server v.4.1.1) - vlan управления (tag 2) транзитом через DGS-3627G - (DES-3526 25-й порт тегированный - DES-3526 12-й порт не тегированный) - Подопытный роутер.
Предполагаю, что DGS-3627G к проблеме не причастен, так как исследуемый трафик проходит через него в одном и том же vlan'е и в конфигурации коммутатора отключено все, что касается dhcp.
Пробовали версии прошивок на DES-3526: 6.00-B60, 6.20-B10 и 6.20-B18.
Тут приведу работу с прошивками 6.00-B60 и 6.20-B18, то есть с последними из опубликованных.
Вообще же на всех коммутаторах DES-3526 у нас установлена прошивка 6.20-B10, поведение релея, на сколько мы увидели, не отличается между прошивками серии 6.20 начиная с 6.20-B10 и более новыми.
Часть конфига DES-3526 (для всех прошивок один и тот же):
Код:
config vlan default delete 1-26
create vlan vlan2 tag 2
config vlan vlan2 add tagged 25-26
create vlan vlan133 tag 133
config vlan vlan133 add tagged 25-26
config vlan vlan133 add untagged 1-24
config ipif System ipaddress 172.16.0.45/24 vlan vlan2
create iproute default 172.16.0.1
config dhcp_relay add ipif System 172.16.0.1
config dhcp_relay option_82 state enable
config dhcp_relay option_82 policy drop
enable dhcp_relay
enable dhcp_local_relay
config filter dhcp_server ports 1-24 state enable
config address_binding ip_mac ports 1-24 state enable
config address_binding ip_mac ports 1-24 allow_zeroip enable
config address_binding ip_mac ports 1-24 forward_dhcppkt disable
disable address_binding acl_mode
disable address_binding trap_log
config address_binding dhcp_snoop inactive_ageout_time dhcp_lease_time
config address_binding dhcp_snoop max_entry ports 1-24 limit 5
enable address_binding dhcp_snoop
Роутеры настроены в качестве DHCP клиента.
Конфигурацией DHCP сервера задано время аренды адреса в 600 секунд (10 минут).
Суть проблемы заключается в том, что проблемные роутеры не могут корректно продлить аренду адреса.
Спустя ровно пять минут после получения адреса роутер делает попытку продлить аренду отправляя пакеты DHCP-Request (unicast). C этого места поведение агента dhcp-relay на DES-3526 различается в зависимости от прошивки. В случае работы с прошивкой 6.00-B60 эти пакеты релеем не перенаправляются на DHCP сервер. В случае же работы с прошивкой 6.20-B18 эти пакеты пересылаются на DHCP сервер, сервер в свою очередь отвечает DHCP-ACK'ом, роутер получает данный пакет, однако игнорирует его.
Через некоторое время (но еще до истечения аренды) роутер начинает отправлять пакеты DHCP-Request (broadcast), эти пакеты при работе с обеими прошивками DES-3526 перенаправляются релеем на DHCP сервер, тот как обычно отвечает DHCP-ACK'ом, роутер получает данный пакет, но так же игнорирует его.
В конце концов время аренды адреса истекает. Роутер вынужден снова посылать пакеты DHCP-Discover, и вот с этого момента все проходит как надо - DHCP сервер шлет DHCP-Offer, роутер в свою очередь шлет DHCP-Request и сервер отвечает DHCP-ACK, роутер успешно получает адрес и "молчит" следующие пять минут, затем цикл повторяется как описано выше.
Данная проблема порождает жалобы абонентов - владельцев проблемных роутеров:
"Часто пропадает Интернет".
К слову сказать беспроблемные роутеры продлевают аренду успешно каждые пять минут, поэтому не "теряют" адрес.
Это касается только работы с прошивками DES-3526 серии 6.20. С прошивкой 6.00-B60 мы так же видим, что роутер вынужден отправлять DHCP-Request Broadcast'ом с адреса 0.0.0.0.
Для проблемных и беспроблемных роутеров сняты дампы DHCP-трафика как на стороне роутера, так и на стороне DHCP сервера при работе с прошивками DES-3526 6.00-B60 и 6.20-B18. Дампы отправил
Колпакову Артему на имэйл.
Готов предоставить всю необходимую информацию для прояснения причины такого поведения.
Надеюсь на помощь.