Table of Contents | ||||
---|---|---|---|---|
|
Определение
Loopback-detection – это механизм, предотвращающий появление в сети зацикленных путей передачи пакетов
Как работает алгоритм LBD?
- Для начала необходимо настроить механизм Loopbackloopback-detection на портах (см.раздел 3)
- После минимальной настройки коммутатор начинает отправлять в настроенные порты с определённым интервалом по два служебных пакета за цикл. Loopback-detection работают работает поверх канального уровня и имеет структуру кадра: Ethernet - [802.1q - метка появляется в зависимости от настройки порта] – loopback-detection Data. Основные поля кадра:
- Source MacMAC-address (в Ethernet-заголовке). Коммутатор устанавливает свой CPU MAC-address
- Destination MacMAC-address (в Ethernet-заголовке). Коммутатор отправляет по 2 пакета за один цикл, в одном пакете в качестве Destination MacMAC-address вставляется multicast macMAC-address (01:80:c2:00:00:05), в другом – неиспользуемый macMAC-adress (f8:f0:82:10:00:03 - первая часть мак-адреса обозначает принадлежность адреса Nagtech), который бродкастого распространится по сети .бродкастом
- Номер vlanVLAN, с которым коммутатор ассоциирует пакет (тэгтег, с которым пришёл пакет, если режим порта trunk, или native/access vlan, если пакет без тега), далее для удобства буду называть номер этого vlan VLAN "внешним тэгомтегом"
- Номер vlanVLAN, помещённый в полезной нагрузке пакета, т.е. в Loopbackloopback-detection Data, далее для удобства буду называть номер этого vlan VLAN "внутренним тэгомтегом" - Если в сети, в которой находится коммутатор, есть кольцо, то служебный пакет вернётся на коммутатор
- В заголовке Ethernet коммутатор видит:
- EtherType 0xdc09
- Собственный MAC-address в поле Source MAC-address
Коммутатор узнаёт свой служебный пакет loopback-detection, по кадру по кадру и настройке порта коммутатор определяет:
- Внутренний тэгтег
- Внешний тэгтег Если выполняются оба следующих условия:
тэг
1) Внутреннийтег совпадает с внешним
тэгомтегом
-
2) На порту, на который пришёл пакет, выполнена команда "loopback-detection control (block | shutdown)"
то коммутатор применяет соответствующее ограничение: shutdown или block
.
1-ое условие не выполняется иInfo Если внутренний тег не совпадает с внешним, то в debug'е ("debug loopback-detection" + "ter mon") можно увидеть такие сообщения:
Port Ethernet1/0/17 a loopback-detection packet, tag is 100, inner-vlan is 200 (Внешний тег - 100, внутренний - 200)
Однако коммутатор в таком случае ничего не делаетНеполадки в сети, образовавшие петлю, могли быть исправлены и поэтому необходим механизм, который бы снимал ограничения с порта:
а) Если применено ограничение shutdown, то порт будет разблокирован через время таймера control-recovery timeout
, а после придёт в нормальное состояние. Далее работа loopback-detection возвращается ко 2-му шагуInfo title Внимание control-recovery timeout по умолчанию присвоено значение 0, при этом значении коммутатор не будет пытаться поднять линк и потребуется ручное включение порта
,
б) Если применено ограничение block, то коммутатор отсчитает таймер для режима blockи снимет ограничение с порта
и отправит в него пакет Loopback-detection и работа возвращается на 2-ой шаг
...
- Алгоритм работы возвращается к шагу 2
Настройка LBD
В режиме глобальной конфигурации:
- loopback-detection control-recovery timeout <timeout 0-3600s>
Таймер, который запускается после того, как loopback-detection обнаружил аварийную ситуацию, кольцо, и применил ограничение shutdown. По истечению таймера ограничение с порта снимается и порт поднимается. Настройка таймера производится в Global режиме, нельзя настроить отдельно для каждого порта - loopback-detection interval-time <Loopback interval time range 5-300s> <No loopback interval time range 1-30s>
Два таймера, означающие интервал времени отправки спец.сообщений механизма loopback-detection. Описание таймеров:
- Loopback interval time range 5-300s - таймер запускается тогда, когда механизм loopback-detection обнаружил проблему и применил ограничение block на порт, и порт находится в состоянии block. Аналог control-recovery timeout, но для режима block
- No loopback interval time range 1-30s - таймер используется в том случае, когда на порту нет ограничений со стороны механизма loopback-detection, т.е. таймер для отправки обычных служебных сообщений loopback-detection, когда порт не заблокирован - loopback-detection trap enable
Разрешаем отправку SNMP Trap сообщений для loopback-detection. При обнаружении петли за каким-либо портом отправляется SNMP Trap с OID 1.3.6.1.4.1.40418.7.101.112.1
В режиме конфигурации интерфейса:
Info |
---|
Важно! Минимальные настройки выделены зеленом цветом. |
loopback-detection control (block
Режим| shutdown)
, при котором
Выбор режима ограничения для порта:
и не отправляютсяloopback-detection control shutdown
block - работает для VLAN, в котором обнаружена петля, входящие пакеты отбрасываются
Режим ограничения для порта, при котором порт переходит в режим shutdown, исходящие не отправляются (чтобы ограничение работало корректно для одного VLAN, см.раздел "Проблема отброса всех пакетов в режиме block")
shutdown - порт переходит в режим shutdownInfo Если на порт пришёл loopback-detection пакет и внешний тег и внутренний тег совпадают, то будет применено ограничение. При этом вторая команда минимальной настройки с указанием VLAN (команда под номером 3) не обязательна, т.к. она ответственна за отправку пакетов, а за приём и последующие действия ответственна исключительно команда loopback-detection control. - loopback-detection send packet number <Detection packet number 1-10>
Число пар служебных пакетов loopback-detection, которые за один раз отправляются в порт. По умолчанию установлено значение 1 - будет отправлено 2 LDB-пакета, при значении 2 - 4 LBD-пакета и т.д. - loopback-detection specified-vlan <Vlan <VLAN ID>
VlanКоманда указывает VLAN, в котором запускается служба loopback-detection. Применённый на порту режим block должен отбрасывать пакеты в настроенных vlan'ах, но для этого необходимы дополнительные настройки, см.раздел 4. Т.е. команда отвечает за отправку служебных пакетов loopback-detection в порт в настроенных VLAN.
Проблема отброса всех пакетов в режиме block
Существует проблема, возникающая в условиях, когда loopback-detection наложил ограничение на порт в виде block, обнаружив проблему во vlan VLAN N, но при этом перестают коммутатор перестаёт через порт пропускать кадры и других vlan’овVLAN’ов. Что делать в таком случае?
Для решения проблемы необходимо:
- Разделить vlan’ы VLAN’ы на MST Instance:
spanning-tree mst configuration
instance <instance num 1> vlan <VID 1>
instance <instance num 2> vlan <VID 2> - Перезагрузить коммутатор
Пример:
- На верхнем коммутаторе порты eth1/0/1 и eth1/0/3 настроены в режиме trunk
- На оба порта в режиме trunk добавлены vlan VLAN 100 и 200
- На обоих портах настроен loopback-detection для vlan VLAN 100 и 200 с режимом ограничения block:
Interface Ethernet1/0/1
loopback-detection specified-vlan 100,200
loopback-detection control block
...
Interface Ethernet1/0/3
loopback-detection specified-vlan 100,200
loopback-detection control block
...
- На порт eth1/0/3 вернулся служебный пакет loopback-detection во vlan VLAN 100
- Коммутатор перевёл порт eth1/0/3 в режим block
Через порт перестали проходить пакеты, принадлежащие и vlan VLAN 100, и vlan VLAN 200. Однако пакеты во vlan VLAN 200 должны пропускаться
- Разделяем vlan VLAN на mst instance:
spanning-tree mst configuration
Instance 0 vlan <остальные vlan>VLAN>
instance 1 vlan 100
instance 2 vlan 200
- Сохраняемся и перезагружаем коммутатор
- Теперь, если на коммутаторе сработает Loopbackloopback-detection, будут блокироваться пакеты только во vlanVLAN, в котором обнаружена проблема, остальные пакеты будут пропускаться