Беркут-ETL и Cisco. Да будет шлейф!
Так почему же Cisco «роняла» линк порта, когда к нему подключали Беркут-ET/Беркут-ETL в режиме шлейфа?
Как мы и предполагали, дело оказалось в keepalive фреймах. Для обнаружения петель на канальном уровне, Cisco периодически шлёт такие фреймы. Если на порту был принят keepalive с mac-адресом данного порта, то cisco определяет петлю на порту и опускает линк.
Как оказалось, в cisco’вских keepalive фреймах mac-адреса источника и получателя совпадают и равны mac-адресу порта с котрого были отправлены (у dlink, zyxel не так), вот и понятно почему при шлейфах 2 и 3 уровней блокировался порт (опускался линк).
Поэтому решение довольно простое: отфильтровывать фреймы с ethertype 0x9000 (он используется для cisco keepalive). Так что теперь все будет в порядке.
есть подозрение, что в режиме loopback вообще не нужно заворачивать фреймы, у которых совпадает source и destination MAC’и.
Скорее всего так и сделаем, но вначале надо посмотреть, что говорят стандарты.