Концепции протокола STP
Создана 21.02.2025
Отредактирована 22.02.2025
Отредактирована 22.02.2025
Протокол распределённого связующего дерева (Spanning Tree Protocol - STP) представляет локальным сетям Ethernet дополнительные преимущества по установке избыточных каналов связи в локальной сети, а также помогает преодолеть известные проблемы, связанные с дополнительными каналами связи. Использование избыточных каналов связи в проекте позволяет сети LAN продолжать работу не только при отказе некоторых каналов связи, но даже некоторых коммутаторов. В надлежащем проекте сети LAN должно быть достаточно избыточности, чтобы никакая единая точка отказа не нарушила её работу. Протокол STP позволяет проекту использовать избыточность, не создавая других проблем.
В этом обзоре рассматриваются концепции протокола STP. В частности, обсуждается, почему локальные сети нуждаются в протоколе STP, что он делает для решения определённых проблем в локальных сетях с избыточными каналами связи и как осуществляет свою работу. Обзор состоит из двух основных разделов: в первом рассматриваются базовые функции протокола STP, во втором - его дополнительные средства.
Но прежде чем перейти к протоколу STP, уделим внимание краткому озору тем по сетям LAN, чтобы, читая о протоколе STP, не пришлось припоминать детали сетей Ethernet.
Обзор коммутации LAN
Современные локальные сети состоят из проводных и беспроводных соединений со множеством устройств. Эти соединения обеспечивают любому устройству средства передачи и получения данных от других устройств в сети. Совместно с соединениями WAN и Интернетом, подключённые к локальной сети устройства могут общаться с другими устройствами в других частях корпоративной сети и во всём мире.
Проводные части современных локальных сетей используют стандарты Ethernet и коммутаторы LAN. Стандарты Ethernet определяют характеристики кабельной проводки, а также правила канального уровня, включая фреймирование и адреса. Физически локальная сеть Ethernet может быть маленькой или большой, но она включает три основных компонента:
- устройства с платой сетевого интерфейса Ethernet (NIC);
- коммутаторы LAN Ethernet;
- соединяющие устройства кабели (сетевые платы - с портами коммутатора, порты коммутатора - друг с другом и т.д.)
На рис. 1 приведён пример с шестью компьютерами, подключёнными к одному коммутатору LAN.
Рис. 1. Небольшая локальная сеть Ethernet с сетями VLAN
Логика перенаправления коммутатора LAN
Протокол STP ограничивает выбор направлений перенаправления коммутатором фреймов с целью предотвращения проблем с петлями (loop). Это проблема возникает потому, что в некоторых случаях базовая логика коммутатора LAN буквально перенаправляет фрейм в сети LAN по бесконечному кругу, если нет такого внешнего метода, как протокол STP, позволяющего предотвратить это. Таким образом, чтобы понять логику протокола STP, необходимо вспомнить базовую логику коммутатора LAN, особенно логику перенаправления. Тогда станет понятно, почему без протокола STP фреймы могут передаваться по кругу и как он предотвращает петли.
Ниже описаны этапы перенаправления фреймов коммутатором LAN при игнорировании роли протокола STP.
Этап 1
Определить сеть VLAN, в которую должен быть перенаправлен фрейм, следующим образом:
A. Если фрейм поступает на интерфейс доступа, использовать сеть доступа VLAN интерфейса
B. Если фрейм поступает на магистральный интерфейс, использовать сеть VLAN, указанную в магистральном заголовке фрейма
Этап 2
Добавить MAC-адрес отправителя в таблицу MAC-адресов, указав входящий интерфейс и идентификатор VLAN
Этап 3
Найти MAC-адрес получателя фрейма в таблице MAC-адресов, но только среди записей о VLAN, выявленных на этапе 1. Использовать один из следующих этапов, в зависимости от того, найден ли MAC-адрес получателя.
A. Найден. Перенаправить фрейм через единственный интерфейс, указанный в найденной записи таблицы адресов
B. Не найден. Разослать фрейм на все остальные порты доступа в той же сети VLAN и на все порты магистрального канала, для которых эта сеть VLAN указана как полностью поддерживаемая (активная, в списке разрешённых, не сокращена, маршрутизируется STP)
Предположим, например, что фрейм в сети на рис. 1 послан компьютером A. Согласно рисунку, порт Fa0/11 коммутатора находится в сети VLAN 100, поэтому на этапе 1 коммутатор определяет фрейм как находящийся в сети VLAN 100. Коммутатор не перенаправил бы фрейм на порты в сети VLAN 200 (интерфейсы Fa0/13 и Fa0/14) или сети VLAN 300 (интерфейсы Fa0/15 и Fa0/16). Затем коммутатор нашёл бы MAC-адрес получателя в таблице MAC-адресов, но поиск осуществляется только среди записей для сети VLAN 100.
Примечание
Термины "порт коммутатора" и "интерфейс коммутатора" являются синонимами.
Далее обсуждается, как протокол STP вмешивается в эту логику, ограничивая интерфейсы, используемые коммутатором как при получении, так и при перенаправлении фреймов, предотвращая таким образом петли.
Проверка коммутатора
Логика коммутатора LAN очень проста, для её описания действительно достаточно лишь нескольких строк, поскольку потенциально коммутаторы должны быть способны перенаправлять миллионы фреймов в секунду. Получить фрейм, определить сеть VLAN, соотнести MAC-адрес получателя с MAC-адресом в таблице, выбрать исходящий интерфейс и перенаправить фрейм. Однако смысл команд show может быть трудно понять, особенно если использовать их в реальных сетях не каждый день. Далее будут показаны несколько ключевых команд show, которые окажутся полезными при рассмотрении протокола STP.
Просмотр таблицы MAC-адресов
На рис. 2 показан вывод таблиц MAC-адресов на двух коммутаторах, sw1 и sw2. Рисунок демонстрирует концепцию таблиц MAC-адресов на примере двух компьютеров и одного маршрутизатора, находящихся в сети VLAN 100. Команда ниже, отображает все динамические изученные записи таблицы MAC-адресов на коммутаторе для всей сети VLAN.
show mac address-table dynamic
Рис. 2. Пример сети LAN с таблицами MAC-адресов
Обратите внимание, что вывод каждой команды на каждом коммутаторе повторяет в основном ту же информацию таблицы MAC-адресов. Оба коммутатора изучили все три MAC-адреса, поэтому каждое из этих трёх устройств может получать фреймы, которые достигнут обоих коммутаторов. Но у каждого коммутатора разная информация перенаправления (порт). Например, в таблице MAC-адресов MAC-адресу компьютера PC2 (0200.1111.1111) на коммутаторе sw1 соответствует порт Fa0/9, а на коммутаторе sw2 - порт Gi0/2. Эта графа в таблице указывает локальному коммутатору, на какой из его локальных портов перенаправить фрейм.
Протокол STP не оставляет никаких пометок или примечаний в выводе этой команды. Но он влияет на выбор портов, для которых коммутатор может изучать MAC-адреса, таким образом, протокол STP косвенно изменяет то, что выводит команда show mac address-table. Как будет отмечено далее, протокол STP блокирует порт, в результате чего коммутатор игнорирует фреймы, поступающие на интерфейс. В результате коммутатор не будет изучать MAC-адреса этих фреймов, что повлияет на записи таблицы, выводимые командой show mac address-table