Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

Определение

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

Как работает?

  1. Для начала необходимо настроить механизм Loopback-detection на портах (см.раздел 3)
  2. После минимальной настройки коммутатор начинает отправлять в настроенные порты с определённым интервалом по два служебных пакета за цикл. Loopback-detection работают поверх канального уровня и имеет структуру: Ethernet - [802.1q - метка появляется в зависимости от настройки порта] – Data. Основные поля кадра:
    - Source Mac-address (в Ethernet-заголовке). Коммутатор устанавливает свой CPU MAC-address
    - Destination Mac-address (в Ethernet-заголовке). Коммутатор отправляет по 2 пакета за один цикл, в одном пакете в качестве Destination Mac-address вставляется multicast mac-address (01:80:c2:00:00:05), в другом – неиспользуемый mac-adress (f8:f0:82:10:00:03 - первая часть мак-адреса обозначает принадлежность адреса Nagtech), который бродкастого распространится по сети.
    - Номер vlan, с которым коммутатор ассоциирует пакет (тэг, с которым пришёл пакет, если режим порта trunk, или native/access vlan, если пакет без тега), далее для удобства буду называть номер этого vlan "внешним тэгом"
    - Номер vlan, помещённый в полезной нагрузке пакета, т.е. в Loopback-detection Data, далее для удобства буду называть номер этого vlan "внутренним тэгом"
  3. Если в сети, в которой находится коммутатор, есть кольцо, то служебный пакет вернётся на коммутатор
  4. В заголовке Ethernet коммутатор видит:
    - EtherType 0xdc09
    - Собственный MAC-address в поле Source MAC-address
    Коммутатор узнаёт свой служебный пакет, по кадру и настройке порта коммутатор определяет:
    - Внутренний тэг
    - Внешний тэг
  5. Если выполняются оба следующих условия:
    1) Внутренний тэг совпадает с внешним тэгом
    2) На порту, на который пришёл пакет, выполнена команда "loopback-detection control (block | shutdown)"
    то коммутатор применяет соответствующее ограничение - shutdown или block.
    Если 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, а после придёт в нормальное состояние. Далее работа loopback-detection возвращается ко 2-му шагу
    б) Если применено ограничение block, то коммутатор отсчитает таймер для режима block, снимет ограничение с порта и отправит в него пакет Loopback-detection и работа возвращается на 2-ой шаг

Настройка

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

  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

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

  1. loopback-detection control block
     
    Режим ограничения для порта, при котором входящие пакеты отбрасываются и не отправляются
  2. loopback-detection control shutdown
     Режим ограничения для порта, при котором порт переходит в режим shutdown
  3. loopback-detection send packet number <Detection packet number 1-10>
     Число пар служебных пакетов loopback-detection, которые за один раз отправляются в порт
  4. loopback-detection specified-vlan <Vlan ID>
     Vlan, в котором запускается служба loopback-detection. Применённый на порту режим block должен отбрасывать пакеты в настроенных vlan'ах, но для этого необходимы дополнительные настройки, см.раздел 4

Проблема отброса всех пакетов в режиме block

Существует проблема, возникающая в условиях, когда loopback-detection наложил ограничение на порт в виде block, обнаружив проблему во vlan N, но при этом перестают через порт пропускать кадры и других vlan’ов. Что делать в таком случае?

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

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


Пример:

  • На верхнем коммутаторе порты eth1/0/1 и eth1/0/3 настроены в режиме trunk
  • На оба порта в режиме trunk добавлены vlan 100 и 200
  • На обоих портах настроен loopback-detection для 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 100
  • Коммутатор перевёл порт eth1/0/3 в режим block

Через порт перестали проходить пакеты, принадлежащие и vlan 100, и vlan 200 Однако пакеты во vlan 200 должны пропускаться

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



  • No labels