Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2
minLevel2

Определение

Loopback-detection – это механизм, предотвращающий появление в сети зацикленных путей передачи пакетов

Как работает алгоритм LBD?

  1. Для начала необходимо настроить механизм Loopbackloopback-detection на портах (см.раздел 3)
  2. После минимальной настройки коммутатор начинает отправлять в настроенные порты с определённым интервалом по два служебных пакета за цикл. 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 "внутренним тэгомтегом"
  3. Если в сети, в которой находится коммутатор, есть кольцо, то служебный пакет вернётся на коммутатор
  4. В заголовке Ethernet коммутатор видит:
    - EtherType 0xdc09
    - Собственный MAC-address в поле Source MAC-address
    Коммутатор узнаёт свой служебный пакет loopback-detection, по кадру по кадру и настройке порта коммутатор определяет:
    - Внутренний тэгтег
    - Внешний тэгтег
  5. Если выполняются оба следующих условия:
    1) Внутренний

    тэг

    тег совпадает с внешним

    тэгом

    тегом
    2) На порту, на который пришёл пакет, выполнена команда "loopback-detection control (block | shutdown)"
    то коммутатор применяет соответствующее ограничение

    -

    : shutdown или block

    .

    Info
    Если
    1-ое условие не выполняется и
    внутренний тег не совпадает с внешним, то в debug'е ("debug loopback-detection" + "ter mon") можно увидеть такие сообщения: 
    Port Ethernet1/0/17 a loopback-detection packet, tag is 100, inner-vlan is 200 (Внешний тег - 100, внутренний - 200)
    Однако коммутатор в таком случае ничего не делает


  6. Неполадки в сети, образовавшие петлю, могли быть исправлены и поэтому необходим механизм, который бы снимал ограничения с порта:
    а) Если применено ограничение shutdown, то порт будет разблокирован через время таймера control-recovery timeout

    Info
    titleВнимание
    control-recovery timeout
    , а после придёт в нормальное состояние. Далее работа loopback-detection возвращается ко 2-му шагу
    по умолчанию присвоено значение 0, при этом значении коммутатор не будет пытаться поднять линк и потребуется ручное включение порта


    б) Если применено ограничение block, то коммутатор отсчитает таймер для режима block

    ,

    и снимет ограничение с порта

    и отправит в него пакет Loopback-detection и работа возвращается на 2-ой шаг

...

  1. Алгоритм работы возвращается к шагу 2

Настройка LBD

В режиме глобальной конфигурации:

  1. loopback-detection control-recovery timeout <timeout 0-3600s>
     
    Таймер, который запускается после того, как loopback-detection обнаружил аварийную ситуацию, кольцо, и применил ограничение shutdown. По истечению таймера ограничение с порта снимается и порт поднимается. Настройка таймера производится в Global режиме, нельзя настроить отдельно для каждого порта
  2. 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, когда порт не заблокирован
  3. loopback-detection trap enable
     
    Разрешаем отправку SNMP Trap сообщений для loopback-detection. При обнаружении петли за каким-либо портом отправляется SNMP Trap с OID 1.3.6.1.4.1.40418.7.101.112.1

В режиме конфигурации интерфейса:

Info
Важно! Минимальные настройки выделены зеленом цветом.
  1. loopback-detection control (block


     
    Режим

    | shutdown)
    Выбор режима ограничения для порта

    , при котором

    :
      block - работает для VLAN, в котором обнаружена петля, входящие пакеты отбрасываются

    и не отправляютсяloopback-detection control shutdown
     Режим ограничения для порта, при котором порт переходит в режим shutdown

    , исходящие не отправляются (чтобы ограничение работало корректно для одного VLAN, см.раздел "Проблема отброса всех пакетов в режиме block")
      shutdown - порт переходит в режим shutdown

    Info
    Если на порт пришёл loopback-detection пакет и внешний тег и внутренний тег совпадают, то будет применено ограничение. При этом вторая команда минимальной настройки с указанием VLAN (команда под номером 3) не обязательна, т.к. она ответственна за отправку пакетов, а за приём и последующие действия ответственна исключительно команда loopback-detection control.


  2. loopback-detection send packet number <Detection packet number 1-10>
     Число пар служебных пакетов loopback-detection, которые за один раз отправляются в порт. По умолчанию установлено значение 1 - будет отправлено 2 LDB-пакета, при значении 2 - 4 LBD-пакета и т.д.
  3. 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’ов. Что делать в таком случае?

Для решения проблемы необходимо:

  1. Разделить vlan’ы VLAN’ы на MST Instance:
    spanning-tree mst configuration
      instance <instance num 1> vlan <VID 1>
      instance <instance num 2> vlan <VID 2>
  2. Перезагрузить коммутатор


Пример:

Image RemovedImage Added

  • На верхнем коммутаторе порты 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 должны пропускаться

Image RemovedImage Added


  • Разделяем vlan VLAN на mst instance:
    spanning-tree mst configuration
      Instance 0 vlan <остальные vlan>VLAN>
      instance 1 vlan 100
      instance 2 vlan 200                                                                                           
  • Сохраняемся и перезагружаем коммутатор
  • Теперь, если на коммутаторе сработает Loopbackloopback-detection, будут блокироваться пакеты только во vlanVLAN, в котором обнаружена проблема, остальные пакеты будут пропускаться

Image RemovedImage Added