Поймал баг.
Есть свитч DES-3200 C1 на нем включено STP(RSTP) + dhcp_local_relay
и это свитч разрывает петлю т.е. он переводит порт 26 STP в режим - Discarding Alternate
Так вот когда на этот свитч приходит пакет с двойным тегом (QinQ) DHCP Discovery -из-за включеной опции dhcp_local_relay - этот пакет отсылается в заблокированный порт 26 - и тем самым создает петлю в этом влане (ну и так как этот пакет широковещательный, то также рассылается во все порты где есть 119 влан)
Вложение:
deg-3200-c1-bag.png [ 24.12 KiB | Просмотров: 1870 ]
на DGS-3000-28SC в 8 порт приходят два влана: 1й (админ влан DES-3200-10) и 101 в котором абонентский роутер DIR-300 посылает DHCP Discovery
включено QinQ , на 8 порту влан 119 как untag, т.е. 1 и 101 влане должны попасть в 119 влан.
Код:
DGS-3000-28SC:admin#show qinq
Command: show qinq
QinQ Status : Enabled
DGS-3000-28SC:admin#show qinq ports 8
Command: show qinq ports 8
Port ID: 8
---------------------------------------------------------
Role: UNI
Miss Drop: Disabled
Outer Tpid: 0x8100
Use Inner Priority: Disabled
Add Inner Tag: Disabled
VLAN Translation Profile:
DGS-3000-28SC:admin#show vlan port 8
Command: show vlan ports 8
Port VID Untagged Tagged Dynamic Forbidden
----- ---- -------- ------ ------- ---------
8 119 X - - -
DGS-3000-28SC:admin#show port_vlan 8
Command: show port_vlan 8
Port PVID GVRP Ingress Checking Acceptable Frame Type
------- ---- -------- ---------------- ---------------------------
8 119 Disabled Enabled All Frames
Так вот когда на DES-3200-C1 приходит запрос DHCP создается петля-штом,
но почему то не большой, всего 34 пакета
Код:
Frame Type Total Total/sec
--------------- ---------------------- -----------
RX Bytes 13130866 19857
RX Frames 23651 35
TX Bytes 13039550 20306
TX Frames 22258 34
у меня такой запрос влетел в админ влан(1), (на порту qinq прописал 1 влан по ошибке вместо 119), и на 12 часов положил часть сети, клиенты не могли получить ip по DHCP и подкл. PPPoE - в разных вланах
но в тех свитчах где был админ влан vid = 1.
после того как отключили порт 8 на DGS-3000-28SC вылечили несколькими способами:
- разорвали все петли, методом перезагрузки коммутаторов на домах.
- НО сначала прописали вот такую запись в FDB на DGS-3000-28SCcreate fdb vlanid 119 28-10-7B-F2-08-61 port 8 ( 8 или любой другой порт где есть 119 влан, успел попробовать многое)
Объясните пожалуйста почему шторм прекратился, пакет ведь идет на броадкатс адрес FF:FF:FF:FF:FF:FF. а мы прописали
28-10-7B-F2-08-61 к 8 порту там где он и должен быть , там где клиент.
Допустим пакет пришел на DGS-3000-28S в 24 порт с маком источника 28-10-7B-F2-08-61, но с маком назначение FF:FF:FF:FF:FF:FF
значит он снова должен пойти во все порты кроме того с которого пришел, т.е он уходит обратно в 8 и 21 порты - так оно и есть, но после создания
статический записи -
create fdb vlanid 119 28-10-7B-F2-08-61 port 8 шторма нет, петли нет.
Самое еще интересное если на проблемном DES-3200-26-C1 - убрать с 26 порта 119 - ничего не меняется, пакет все равно туда уходит, петля остается.
на почту
switch@dlink.ru на всяк сулчай высылаю конфиги свитчей и дамп tcpdumpа
PS
Проверил несколько раз на С1, A1,B1 - повторяется только на С1 ревизии.
проверил прошивки начиная с 4.38.B000
4.48.B007 - есть баг
4.48.B004 - есть баг
4.48.B003 - есть баг
4.46.B008 - есть баг
4.42.B007 - есть баг
4.42.B003 - нету
4.42.B002 - нету
4.42.B001 - нету
4.39.B015 - нету
(но в 4.39.B015 - команда show fdb - маков вообще не показывает в 119 влане,
но и tcpdump пакетов не видет DHCP они вообще не проходят)
в 4.42.B001, 4.42.B002, 4.42.B003 - мак на свитче уже есть в 119 влане, но пакеты DHCP также не проходят