Spanning tree protocol включить или выключить

Обновлено: 05.07.2024

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


STP (Spanning Tree Protocol) — сетевой протокол (или семейство сетевых протоколов) предназначенный для автоматического удаления циклов (петель коммутации) из топологии сети на канальном уровне в Ethernet-сетях. Первоначальный протокол STP описан в стандарте 802.1D. Позже появилось несколько новых протоколов (RSTP, MSTP, PVST, PVST+), отличающихся некоторыми особенностями в алгоритме работы, в скорости, в отношении к VLANам и ряде других вопросов, но в целом решающих ту же задачу похожими способами. Все их принято обобщённо называть STP-протоколами.

Протокол STP в своё время был разработан мамой Интернета Радией Перлман (Radia Perlman), а позже, в начале 90х превратился в стандарт IEEE 802.1D.

В настоящее время протокол STP (или аналогичный) поддерживается почти всеми Ethernet-коммутаторами, как реальными, так и виртуальными, за исключением самых примитивных.

Содержание

Петли в коммутируемой сети могут возникнуть по нескольким причинам:

  • Отключен STP;
  • PVST BPDU передает идентификатор VLAN. Если на access-интерфейсе полученный идентификатор VLAN'а не совпадает с VLAN ID в котором было получено BPDU, то порт переводится в заблокированное состояние для этого VLAN;
  • Различные версии STP;
  • Разные native VLAN'ы на концах транка;
  • Слишком маленькие таймеры STP;
  • Большое количество хопов в топологии STP.

Настройки STP по умолчанию (для коммутатора 3550):

Hello time: 2 секунд

Forward-delay time: 15 секунд

Maximum-aging time: 20 секунд

Transmit hold count: 6 BPDU

Включить PVST+ в VLAN (по умолчанию включен):

Включение Rapid PVST:

Задачи по настройке MST:

  1. Создать нужные VLAN'ы и назначить порты в соответствующие VLAN.
  2. Настроить параметры IST:
    • IST Bridge Priority
    • IST Port Priority
  3. Глобально включить MST и зайти в режим настройки MST выполнив команду spanning-tree mode mst
  4. Из режима настройки MST настроить параметры, которые обязательно должны совпадать у всех коммутаторов в регионе:
    • Имя региона MST
    • MST revision number
    • Соответствие MST instance -- VLAN'ы
  5. Настроить параметры, которые обычно (но не обязательно) уникальны для коммутатора:
    • Bridge Priority для instance
    • Port Priority для instance
  • Loop Guard
  • BPDU Guard
  • Root Guard
  • PortFast
  • BPDU Filter
  • UDLD

Функции PortFast, BPDU guard, BPDU filtering, EtherChannel guard, root guard или loop guard могут быть настроены в режиме PVST+, rapid PVST+ или MSTP.

Функции UplinkFast, BackboneFast или cross-stack UplinkFast могут быть настроены в режиме rapid PVST+ или MSTP, но они будут оставаться выключенными (inactive) до тех пор пока режим не будет изменен на PVST+.

Portfast — функция, которая позволяет порту пропустить состояния listening и learning и сразу же перейти в состояние forwarding. Настраивается на портах уровня доступа, к которым подключены пользователи или сервера.

Фактически, PortFast меняет две вещи в стандартной работе STP:

Когда на интерфейсе включен PortFast, он все равно отправляет BPDU.

Но, если включить PortFast на портах, которые соединены с другими коммутаторами, то есть риск создания петли. Так как, после получения BPDU порт остается в состоянии Forwarding. За это время, уже может образоваться петля.

Поэтому, в связке с PortFast, как правило, используется BPDUGuard (хотя и это, конечно же, не даст 100% гарантии, что не будет петли).

Синтаксис команды для настройки Port Fast на интерфейсе:

Настройка Port Fast на access-интерфейсе:

Настройка Port Fast на интерфейсе, который работает в режиме trunk (тегированый порт):

Если на интерфейсе, который работает в режиме транка выполнить команду без параметра trunk, то функция Port Fast не будет применена.

Функцию Port Fast можно настроить глобально на всех интерфейсах в режиме access:

Отключить Port Fast на интерфейсе:

Просмотр информации о статусе функции Port Fast на интерфейсе:

Просмотр информации о настройках spanning-tree на интерфейсе:

Если Port Fast была включена глобально на всех access-портах, то это можно посмотреть в суммарной информации о настройках STP на коммутаторе:

Проприетарное усовершенствование протокола 802.1D сделанное Cisco. В RSTP эта функция не используются, так как улучшения уже встроены в протокол.

После включения UplinkFast на коммутаторе:

Если основной RP выходит из строя, то коммутатор сразу переключается на запасной и переводит его в состояние forward.

Кроме того, UplinkFast позволяет коммутаторам обновить записи в таблицах коммутации, без использования TCN. Вместо TCN коммутатор находит MAC-адреса всех локальных устройств и отправляет один multicast фрейм с каждым MAC-адресом в поле отправитель. Удаляются также остальные записи в таблицы коммутации самого коммутатора.

Проприетарное усовершенствование протокола 802.1D сделанное Cisco. В RSTP эта функция не используются, так как улучшения уже встроены в протокол.

Позволяет быстрее найти альтернативный путь, после изменения топологии. Для того чтобы функция работала, необходимо включить её на всех коммутаторах в сети.

BPDU Guard — функция, которая позволяет выключать порт при получении BPDU.

Может быть включена глобально на коммутаторе или на интерфейсе, у этих режимов есть некоторые отличия:

  • Если BPDU Guard включена глобально на коммутаторе, то для портов с включенной функцией Port Fast:
    • при корректной настройке, порты с включенным Port Fast не должны получать BPDU,
    • получение BPDU на портах с Port Fast говорит о неправильных настройках или о том, что подключено неавторизованное устройство,
    • при получении BPDU на интерфейсе, функция BPDU Guard переведет его в состояние error-disabled,
    • при получении BPDU на интерфейсе, функция BPDU Guard переведет его в состояние error-disabled.

    Включение BPDU Guard глобально на коммутаторе, на портах с включенной функцией Port Fast:

    Хотя в команде, которая включает BPDU Guard глобально на коммутаторе, есть параметр portfast, применение этой команды не включает функцию Port Fast. Она должна быть настроена отдельно.

    Настройка BPDU Guard на интерфейсе:

    Просмотр информации о настройках spanning-tree на интерфейсе:

    Если функция BPDU Guard была включена глобально на коммутаторе, то это можно посмотреть в суммарной информации о настройках STP на коммутаторе:

    BPDU Filtering — после включения функции, порт не принимает и не отправляет BPDU.

    Может быть включена глобально на коммутаторе или на интерфейсе, у этих режимов есть некоторые отличия:

    • Если BPDU filtering включена глобально на коммутаторе, то для портов с включенной функцией Port Fast:
      • функция работает только для портов на которых включена функция Port Fast, но не включена функция BPDU Filtering (не применена на интерфейсе),
      • порт не принимает и не отправляет BPDU,
      • при включении порта отправляются несколько BPDU (10 BPDU) если порт на протяжении этого времени получает любой BPDU пакет то PortFast или PortFast + BPDU filtering отключается.
      • порт не принимает и не отправляет BPDU,
      • применение этой функции на интерфейсе равносильно отключению spanning-tree на нем и может привести к образованию петель.

      Возможные комбинации при включении BPDU Filtering глобально или на интерфейсе:

      Настройка на интерфейсе Глобальная настройка Состояние PortFast Состояние PortFast BPDU Filtering
      По умолчанию Включена Включена Включена
      По умолчанию Включена Отключена Отключена
      По умолчанию Отключена Не применимо Отключена
      Отключена Не применимо Не применимо Отключена
      Включена Не применимо Не применимо Включена

      Включение BPDU Filtering глобально на коммутаторе, на портах с включенной функцией Port Fast:

      Хотя в команде, которая включает BPDU Filtering глобально на коммутаторе, есть параметр portfast, применение этой команды не включает функцию Port Fast. Она должна быть настроена отдельно.

      Настройка BPDU Filtering на интерфейсе:

      Просмотр информации о настройках spanning-tree на интерфейсе:

      Если функция BPDU Filtering была включена глобально на коммутаторе, то это можно посмотреть в суммарной информации о настройках STP на коммутаторе:

      Root Guard -- если функция включена на интерфейсе, то при получении на нём BPDU лучшего, чем текущий корневой коммутатор, порт переходит в состояние root-inconsistent (эквивалентно состоянию listening). После того как порт перестает получать BPDU, он переходит в нормальное состояние.

      Включение Root Guard на интерфейсе (переводит порт в роль designated):

      Посмотреть какие порты в состоянии inconsistent:

      Одна из проблем с STP в том, что само оборудование, которое его использует, может быть причиной сбоя и создания петли. Для предотвращения подобных сбоев и была создана функция Loop Guard.

      Описание Loop Guard


      На каких портах следует включать Loop Guard? Наиболее очевидный ответ blocking. Однако это не всегда правильно. Loop guard должен быть включен на non-designated портах (более точно root и alternate портах).

      По умолчанию Loop guard выключен. Для того что бы его включить используйте следующие команды:

      Что бы включить Loop guard глобально:

      Команда для проверки статуса Loop Guard:

      • Root Guard и Loop Guard не могут быть включены одновременно.
      • Root Guard не должен быть включен на интерфейсах, которые используются функцией UplinkFast. UplinkFast позволяет запасным интерфейсам (которые находятся в заблокированном состоянии) заменять корневой порт, если он вышел из строя. Однако, если на запасных интерфейсах включен Root Guard, то порты будут переведены в состояние root-inconsistent и не перейдут в состояние forward.

      Функции Loop Guard и UDLD (Unidirectional Link Detection) частично совпадают друг с другом. Обе эти функции предназначены для борьбы с последствиями сбоев в функциональности STP. Однако есть небольшие отличия в функциональности.

      Алгоритм действия STP (Spanning Tree Protocol)

      • После включения коммутаторов в сеть, по умолчанию каждый коммутатор считает себя корневым (root).
      • Каждый коммутатор начинает посылать по всем портам конфигурационные Hello BPDU пакеты раз в 2 секунды, максимальный промежуток 20 секунд.
      • Если мост получает BPDU с идентификатором моста (Bridge ID) меньшим, чем свой собственный, он прекращает генерировать свои BPDU и начинает ретранслировать BPDU с этим идентификатором. Таким образом в конце концов в этой сети Ethernet остаётся только один мост, который продолжает генерировать и передавать собственные BPDU. Он и становится корневым мостом (root bridge).
      • Остальные мосты ретранслируют BPDU корневого моста, добавляя в них собственный идентификатор и увеличивая счетчик стоимости пути (path cost).
      • Для каждого сегмента сети, к которому присоединены два и более портов мостов, происходит определение designated port — порта, через который BPDU, приходящие от корневого моста, попадают в этот сегмент.
      • После этого все порты в сегментах, к которым присоединены 2 и более портов моста, блокируются за исключением root port и designated port.
      • Корневой мост продолжает посылать свои Hello BPDU раз в 2 секунды.

      BPDU кадр

      Bridge Protocol Data Unit

      • Protocol Identifier размер 2 байта
      • Protocol Version Identifier размер 1 байт
      • BPDU Type размер 1 байт
      • Flags размер 1 байт
      • Root Identifier размер 8 байт
      • Root Path Cost размер 4 байт
      • Bridge Identifier размер 8 байт
      • Port Identifier размер 2 байт
      • Message Age размер 2 байт
      • Max Age размер 2 байт
      • Hello Time размер 2 байт
      • Forward Delay размер 2 байт

      Вот как выглядит BPDU кадр STP

      STP BPDU

      Состояния портов:

      1. Блокировка (blocking)

      2. Прослушивание (listening)

      3. Обучение (learning)

      4. Передача (forwarding)

      Содержание

      Для того чтобы определить какие порты заблокировать, а какие будут передавать данные, STP выполняет следующее:

      1. Выбор корневого моста (Root Bridge)
      2. Определение корневых портов (Root Port)
      3. Определение выделенных портов (Designated Port)

      Корневым становится коммутатор с наименьшим идентификатором моста (Bridge ID).

      В итоге только один коммутатор останется корневым и будет передавать BPDU.

      Изначально Bridge ID состоял из двух полей:

      • Приоритет — поле, которое позволяет административно влиять на выборы корневого коммутатора. Размер — 2 байта,
      • MAC-адрес — используется как уникальный идентификатор, который, в случае совпадения значений приоритетов, позволяет выбрать корневой коммутатор. Так как MAC-адреса уникальны, то и Bridge ID уникален, так что какой-то коммутатор обязательно станет корневым.

      Порт коммутатора, который имеет кратчайший путь к корневому коммутатору, называется корневым портом. У любого не корневого коммутатора может быть только один корневой порт. Корневой порт выбирается на основе меньшего Root Path Cost - это общее значение стоимости всех линков до корневого коммутатора. Если стоимость линков до корневого коммутатора совпадает, то выбор корневого порта происходит на основе меньшего Bridge ID коммутатора. Если и Bridge ID коммутаторов до корневого коммутатора совпадает, то тогда корневой порт выбирается на основе Port ID.

      Коммутатор в сегменте сети, имеющий наименьшее расстояние до корневого коммутатора, называется назначенным коммутатором (мостом). Порт этого коммутатора, который подключен к рассматриваемому сегменту сети называется назначенным портом. Так же как и корневой порт выбирается на основе:

      • Меньшего Root Path Cost.
      • Меньшего Bridge ID.
      • Меньшего Port ID.



      Изменениями топологии считается изменения ролей DP и RP.

      Коммутатор, который обнаружил изменения в топологии отправляет Topology Change Notification (TCN) BPDU корневому коммутатору:

      Если порт изменяет состояние с Blocking в Forwarding, то он должен пройти через два промежуточных состояния: Listening и Learning. Переход из Forwarding в Blocking может выполняться сразу.

      • Root Port — корневой порт коммутатора
      • Designated Port — назначенный порт сегмента
      • Nondesignated Port — неназначенный порт сегмента
      • Disabled Port — порт который находится в выключенном состоянии.
      • Blocking — блокирование
      • Listening — прослушивание
      • Learning — обучение
      • Forwarding — пересылка

      Bridge Protocol Data Unit (BPDU) —

      Название поля Размер поля Описание
      Protocol Identifier 2 байта
      Protocol Version Identifier 1 байт
      BPDU Type 1 байт
      Flags 1 байт
      Root Identifier 8 байт
      Root Path Cost 4 байта стоимость пути к корневому устройству. Чем меньше значение, тем выше приоритет
      Bridge Identifier 8 байт идентификатор устройства. Чем меньше значение, тем больше приоритет
      Port Identifier 2 байта идентификатор порта. Чем меньше значение, тем выше приоритет
      Message Age 2 байта Specifies the amount of time elapsed since the Root Bridge (Root Switch) sent the configuration message on which the current configuration message is based.
      Max Age 2 байта Indicates when the current configuration message should be deleted.
      Hello Time 2 байта Provides the time period between Root Bridge (Root Switch) configuration messages
      Forward Delay 2 байта Provides the length of time that bridges should wait before transitioning to a new state after a topology change.

      • Root
      • Designated
      • Alternate — альтернативный путь к корневому коммутатору. Путь отличается от того, который использует корневой порт.
      • Backup — запасной путь в сегмент.
      • Learning
      • Forwarding
      • Discarding

      Соответствие между состояниями портов в STP и RSTP:

      Состояние в STP (802.1d) Состояние в RSTP (802.1w)
      Blocking Discarding
      Listening Discarding
      Learning Learning
      Forwarding Forwarding

      В RSTP нет отдельного BPDU для анонсирования изменений в топологии (topology change notification (TCN)). Протокол использует флаг topology change (TC) для того чтобы указать на изменения. Однако, для совместимости с коммутаторами, которые используют 802.1D, коммутаторы использующие RSTP обрабатывают и генерируют TCN BPDU.

      Per-VLAN Spanning Tree (PVST) — проприетарный протокол компании Cisco Systems, который для каждого VLAN строит отдельное дерево. Он предполагает использование ISL для создания транков (тегированных портов) и позволяет порту быть заблокированным для одних VLAN и разблокированным для других.

      Per-VLAN Spanning Tree Plus (PVST+) — проприетарный протокол компании Cisco Systems, с функциональностью аналогичной PVST. Однако, вместо ISL он использует 802.1Q.

      Различают два вида протокола PVST+:

      • PVST+ — основан на протоколе STP, с некоторыми проприетарными усовершенствованиями Cisco,
      • Rapid PVST+ — основан на протоколе RSTP.

      Проприетарные усовершенствования Cisco:

      • Backbone Fast Convergence — функция улучшает сходимость топологии spanning-tree из-за непрямых изменений топологии;
      • Loop Guard — функция проверяет, что корневой порт или альтернативный корневой порт получает BPDU. Если порт не получает BPDU, то loop guard переводит порт в состояние inconsistent, изолируя таким образом проблему и позволяя топологии spanning-tree перейти в другое состояние, до тех пор пока порт не начнет опять получать BPDU;
      • Portfast — функция позволяет порту пропустить состояния listening и learning и сразу же перейти в состояние forwarding. Настраивается на портах уровня доступа (там где подключены пользователи);
      • Portfast BPDU Guard — функция позволяет выключать порт при получении BPDU;
      • Root Guard — функция не позволяет порту стать корневым портом или заблокированным. Если порт получит BPDU от корневого коммутатора, то он перейдет в специальное заблокированное состояние, которое называется root-inconsistent;
      • Uplink Fast Convergence — функция позволяет быстро переключаться на избыточный uplink, в случае, если корневой порт выключился или пересчитывается топология spanning-tree;
      • Uplink Load Balancing — функция позволяет балансировать нагрузку между uplink-портами, непосредственно контролируя стоимость портов для VLAN на транковых (тегированых) портах.

      Rapid PVST+ в каждом VLAN строит дерево. В каждом VLAN работает RSTP.

      • Root
      • Designated
      • Alternate — альтернативный путь к корневому коммутатору. Путь отличается от того, который использует корневой порт.
      • Backup — запасной путь в сегмент.
      • Master — provides connectivity from the Region to a CIST Root that lies outside the Region. The Bridge Port that is the CIST Root Port for the CIST Regional Root is the Master Port for all MSTIs.

      Каждая MSTI работает на всех интерфейсах в регионе, независимо от того разрешен ли соответствующий VLAN на интерфейсе.

      PVST несовместим с MSTP и при одновременной работе устройств Cisco с этими протоколами вызывает проблемы в сети, в частности, отключение downlink'овского порта корневого MSTP.

      Для блокировки PVST на большинстве сетевых устройств других производителей приходится создавать MAC фильтр, поскольку в их BPDU фильтрах пакеты PVST неизвестны и могут проходить через эти устройства даже при отключенных STP.

      настройка stp

      STP (Spanning Tree Protocol) — сетевой протокол (или семейство сетевых протоколов) предназначенный для автоматического удаления циклов (петель коммутации) из топологии сети на канальном уровне в Ethernet-сетях. Первоначальный протокол STP описан в стандарте 802.1D. Позже появилось несколько новых протоколов (RSTP, MSTP, PVST, PVST+), отличающихся некоторыми особенностями в алгоритме работы, в скорости, в отношении к VLANам и ряде других вопросов, но в целом решающих ту же задачу похожими способами. Все их принято обобщённо называть STP-протоколами.

      Протокол STP в своё время был разработан мамой Интернета Радией Перлман (Radia Perlman), а позже, в начале 90х превратился в стандарт IEEE 802.1D.

      В настоящее время протокол STP (или аналогичный) поддерживается почти всеми Ethernet-коммутаторами, как реальными, так и виртуальными, за исключением самых примитивных.

      Настройка stp

      Обща схема примера работы и настройки STP. Два коммутатора соединенных двумя линками, видно то STP уже работает и один порт у второго коммутатора погашен чтобы не было петли

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-01

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-01

      Посмотрим на первом коммутаторе настройки stp. Логинимся и вводим команду

      Видим, что это рутовый коммутатор и все порты в состоянии передача.

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-02

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-02

      Смотрим, тоже на втором коммутаторе.

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-03

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-03

      Видим, что это не рутовый коммутатор. Интерфейс Fa0/2 является рутовым портом. Fa0/3 ждет в запасе.

      Теперь предположим, что интерфейс Fa0/2 упал, что будет. Для примера выключим его. Заходим на 1 коммутатор.

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-04

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-04

      Видим, что линк пропал

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-05

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-05

      Зайдем в этот момент на второй коммутатор и посмотрим состояние портов.

      Видим, что порт Fa0/3 в состоянии обучения

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-06

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-06

      теперь в состоянии передачи, прошло около 20 секунд и линк поднялся.

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-07

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-07

      Восстановим на первом коммутаторе Fa0/2 командой

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-08

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-08

      И видим, что все мгновенно восстановилось.

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-09

      Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-09

      Все же переключение в 20 секунд очень нехорошо, поэтому уже придуманы улучшенные версии протокола rstp и lacp, но о них в следующих публикациях.

      Как настроить RSTP на коммутаторах Cisco

      RSTP или как его еще называют в более развернутом виде Rapid spanning tree protocol, по сути тот же STP но более быстрый где время сходимости мгновение, вы потеряете один пакет.

      Включить RSTP можно командой с режиме глобального конфигурирования, где нужно изменить режим на rapid-pvst.

      Все теперь при падении одного линка, время схождения между коммутаторами будет 1 секунда, очень быстро, как видите RSTP, гораздо лучше STP и настраивается одной командой.

      Кому-то в голову пришло, что spanning-tree можно использовать не только для построения кольцевых топологий, но и для обнаружения потенциальных петель на пользовательских портах. Возможно, тогда это казалось нормальным. Да и сейчас обладателям коммутаторов cisco и juniper настраивать spanning-tree придется в любом случае. Зато другие производители подсуетились и решили слать в пользовательские порты Loopback Detection (LBD) фреймы, но сейчас не об этом.

      Условно коммутаторы можно поделить на три типа:
      1. Ничего, кроме spanning-tree нет и spanning-tree на порту отключить нельзя. Это cisco.
      2. Ничего, кроме spanning-tree нет, можно отключить spanning-tree глобально или на порту. Это juniper networks.
      3. Можно использовать spanning-tree, можно LBD, можно отключить spanning-tree глобально или на порту. Это eltex, dlink, qtech (dcn). Про хуавей не помню, не настраивал stp на них.

      Коммутаторы с отключенным глобально или на порту spanning-tree могут принимать BPDU-фреймы и передавать их дальше как обычный мультикастовый трафик с адресом назначения 01:80:C2:00:00:00. Это обязательно произойдет при передаче "нестандартных" BPDU от Cisco PVST на адрес 01:00:0C:CC:CC:CD. Был случай как-то, когда я не мог настроить MSTP между коммутаторами cisco и juniper. Оказалось, что коммутатор cisco получал через порт juniper'а помимо BPDU от MSTP еще и BPDU от Cisco PVST, которые juniper принимал на порту, где stp был отключен. Таким образом, на коммутаторах недостаточно отключить spanning-tree глобально или на порту, необходимо еще и фильтровать BPDU на адреса 01:80:C2:00:00:00 и 01:00:0C:CC:CC:CD.
      На всех коммутаторах есть такой функционал "bpdufilter", но реализация у всех разная.

      cisco bpdufilter и bpduguard

      Bdpufilter фильтрует в обе стороны, т.е. коммутатор отбрасывает все входящие BPDU и не отправляет BPDU в порт. Логично фильтр повесить на порты, которые никак не участвуют в кольцевой топологии, с которых никогда не придет BPDU, например, на порт подключения сервера, на порт подключения маршрутизатора, на стык с провайдером. Особо странный провайдер включает на порту клиента bpduguard и отключит порт при получении bpdu от вашего коммутатора. Поэтому на операторских стыках необходимо вешать фильтр всегда.
      Чтобы при изменении топологии данные порты не проходили все возможные фазы blocking, listening, learning, а переходили сразу в forwarding, необходимо включать portfast. Да, этой дури бы не было, если можно было бы просто отключить spanning-tree на порту. Необходимо учесть, что включенный spanning-tree portfast на транковом порту работать не будет. Тут нужен spanning-tree portfast trunk или spanning-tree portfast edge trunk как в этом примере.
      Очень часто видел вот такую вот конструкцию:
      В этом примере bpduguard - лишняя команда, так как она работать не будет по причине отработавшего ранее фильтра. Но так только в cisco.
      Вот самый распространенный пример, когда используется bpduguard.
      Для автоматического включения порта необходимо настроить errdisable.
      Нужен ли spanning-tree на порту пользователя? Нет не нужен. Но в данном примере протокол spanning-tree циской используется для того чтобы послать BPDU в порт и при получении его по какой-то причине обратно отключить порт. В случае, когда на пользовательской стороне BPDU фильтруются или потерялись, bpduguard не отработает. Увы, никакой другой альтернативы циска не предлагает, поэтому возможна такая ерундистика, когда колец нет в принципе и на всех транках настроен portfast и bpdufilter, а в сторону пользователей - bpduguard. Нормальное такое применение протокола. Круче только ситуация, когда из-за невозможности глобального отключения stp приходится настроить mstp, включить везде bpdufilter и portfast.

      juniper bpdufilter и bpduguard

      Я не знаю, фильтруют ли производители своими bpdufilter'ами цисковский 01:00:0C:CC:CC:CD или нет. В общем случае, рекомендуется написать фильтр с указанием двух мак-адресов и повесить по входу, например, такой:
      Согласно документации, на мелких коммутаторах, кроме ex9200, можно глобально включить фильтр для портов, где spanning-tree отключен. В примере ниже для всех интерфейсов отключен spanning-tree и включена фильтрация bpdu.
      Настроить bpduguard на ex2200 можно прописав пользовательские порты диапазоном, в настройках используемого протокола stp указать для созданного диапазона портов тип edge и там же включить функционал bpdu-block-on-edge. Ниже аналог цисковского конфига.
      На juniper'е настройка spanning-tree получилась более гуманной. Там, где необходимости настраивать stp, его можно вовсе отключить, но не забыть зафильтровать возможные bpdu.


      На этой странице описывается процедура настройки различных версий протокола Spanning Tree на коммутаторах Cisco.

      Читайте также: