Шлейф распознаётся как шлейф. что не так?
Внезапно выяснилось, что cisco 3350 слишком умная и распознаёт наш GbE-дивайс (Беркут-ЕТ и Беркут-ETL), работающий в режиме loopback, как loopback device. И ничего удивительного в этом нет. Я, например, когда вижу на улице автомобиль, идентифицирую его как автомобиль, а не как бешеную бродячую собаку. То есть, на первый взгляд циска ведёт себя адекватно. Но…
Всё бы ничего, но она (циска) при этом напрочь отключает порт, к которому дивайс подключён. Внимание, вопрос: что не так и как должен вести себя прибор в этом случае?
Ну, если loopback первого уровня, то всё понятно: фреймы, уходящие с порта, возвращаются обратно без изменений. Следовательно, роутер может легко принять решение о зацикливании трафика и блокировать порт.
На самом деле, loopback 1-го уровня не использовался (это мы завтра узнаем ;), а в случае петли второго и третьего уровней пакеты при прохождении через наш дивайс изменяются (mac1<->mac2, ip1<->ip2). Беглое чтение документации на маршрутизатор серии Cisco3400 дало понять, что это особенность реализации протокола STP (Spanning Tree Protocol, см.) в роутерах и свичах от Cisco, которые блокируют порт, на котором обнаружен loopback.
В общем, есть подозрение, что проблема в том, что наш loopback заворачивает BPDU (Bridge Protocol Data Unit), которыми свичи обмениваются в процессе работы как раз для определения «левых» петель.
Увы, это пока лишь гипотеза и требует как теоретического, так и экспериментального подтверждения, чем мы завтра и займёмся.
Подробно и доступно алгоритм STP и BPDU описаны в википедии.
Литература: IEEE 802.1D-2004 и документация Cisco.
а ещё, как выяснилось, существуют спецпакеты с ethertype 0x9000, которые тоже могут мешать нормальной работе порта, к которому подключён наш loopback. некоторые называют эти пакеты keepalive-сообщения, некоторые loopback-frames, некоторые говорят о Enet Configuration Test Protocol (ECTP) из стандарта Ethernet II. точно сказать никто не может. есть отсканированная документация на предмет ECTP, довольно бестолковая.
как выяснилось, петля конкурент
ABCDEFGH(зашифровано) все эти пакеты успешно заворачивает обратно. так что и его циска должна блокировать. а, говорят, что нет. врут, наверное? Лёша, что скажешь?Да, ABCDEFGH (зашифровано) rstp BPDU и keepalive успешно заворачивает, может быть дело было и не в этих протоколах. В пятницу поигрались с mstp и даже при некоторых условиях порт переходил в состояние BLOCKING или LEARNING, но в обоих случаях пакеты на порту не проходили, нужно еще поиследовать.
Пока ясно, что keepalive сообщения нужно фильтровать, это не сложно. А вот сказать наверника без циски сложно.