Maxim Klyus писал(а):
2 AlexL1969
можно подробно проблему рассказать (схема), как что включено и как непредсказуемо DHCP discovery размножается и на каких устройствах?
Схема у нас собрана вот такая:

Где коммутатор А - DGS-3200-24, Коммутатор B - DGS-3200-10. В нетэгированный порт 1 коммутатора А и нетегированный порт 3 коммутатора B подключены клиенты Customer A и Customer B соответственно. На указанных портах установлен PVID=28, соответственно пакеты тегируются VID=28. 10-й порт коммутатора B подключен к 23-му порту коммутатора А. На этих портах поднят Сustomer VLAN с VID=28. Такой же VLAN поднят на 24-м порту коммутатора А, который смотрит на уровень аггрегации сети.
Соответствующая конфигурация для коммутатора A:
create vlan Clients tag 28
config vlan Clients add tagged 23-24
config gvrp 1-22 state disable ingress_checking enable acceptable_frame admit_all pvid 28
Для коммутатора B:
create vlan Clients tag 28
config vlan Clients add tagged 10
config gvrp 1-8 state disable ingress_checking enable acceptable_frame admit_all pvid 28
Далее, на обоих коммутаторах выключен dhcp_relay и включен dhcp_local_relay. А именно:
disable dhcp_relay
enable dhcp_local_relay
config dhcp_local_relay vlan Clients state enable
Такая конфигурация приследует следующие цели:
- Вставлять соответствующую Option 82 в DHCP пакеты клиентов включенных в порты 1-22 коммутатора А и порты 1-8 коммутатора B.
- Передавать эти пакеты в VLAN-е с VID=28 на уровень аггрегации сети для осуществления там DHCP relay на необходимый DHCP сервер.
Для чего это нужно и почему не воспользоваться dhcp_relay на коммутаторах A и B? Дело в том, что в клиентские порты (1-22 на коммутаторе А и 1-8 на коммутаторе В) могут быть включены корпоративные клиенты для которых пробрасывается отдельный VLAN через aggregation и distribution уровни сети и которые имеют свои DHCP сервера. Конечно помогла бы возможность разрешить dhcp_relay в определенном VLAN-е (VLAN-ах), но к сожалению она отсутствует в коммутаторах DGS-3200-XX.
Теперь собственно описание проблемы. На уровне аггрегации mirror-ится порт в который включен порт 24 коммутатора А. Смотрим в этот порт tcpdump-ом. При разорваном соединении между коммутаторами А и В, Customer A (порт 1 коммутатора А) посылает DHCP discovery пакет. Наблюдаем следующую картину:
13:48:32.591893 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
с включенной опцией -e:
13:48:11.779767 00:15:17:61:7e:f3 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 28, p 7, ethertype IPv4, 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
Т.е. в этом случае все нормально. Клиент посылает один DHCP discovery пакет, этот пакет приходит на коммутатор аггрегации и нормально релеится на необходимый сервер.
Поднимаем соединие между коммутаторами A и B и наблюдаем:
13:52:46.679399 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:52:46.701815 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:52:46.709302 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:52:46.724229 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:52:46.739056 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
с включенной опцией -e:
13:53:52.402684 00:15:17:61:7e:f3 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 28, p 7, ethertype IPv4, 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:53:52.417661 00:15:17:61:7e:f3 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 28, p 7, ethertype IPv4, 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:53:52.425100 00:15:17:61:7e:f3 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 28, p 7, ethertype IPv4, 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:53:52.440076 00:15:17:61:7e:f3 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 28, p 7, ethertype IPv4, 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
13:53:52.447414 00:15:17:61:7e:f3 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 28, p 7, ethertype IPv4, 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:15:17:61:7e:f3, length: 300
А вот тут начинается проблема. клиент так же посылает один DHCP discovery пакет, но он начинает "размножаться". частота видна из приведенного выше dump-a. Причем процесс этот продолжается до бесконечности. Такая же проблема наблюдается и при посылке DHCP discovery пакета Customer B (3-й порт коммутатора В)
На обоих коммутаторах используется прошивка 1.62.B017.
Вот такая проблема. Просим помочь в ее решении. Нам так же помогла бы возможность включать dhcp relay в определенных VLAN-ах и беспрепятственно пропускать DHCP пакеты в остальных.
Спасибо.