Протокол STP – знакомство
В этой статье мы рассмотрим работу протокола, используемого на многих маршрутизаторах верхнего ценового диапазона, тем не менее, знакомы с ним не все. Речь пойдёт о STP (Spanning Tree Protocol, Протокол связующего дерева).
STP (Spanning Tree Protocol) — канальный протокол, предназначенный для устранения петель в топологии произвольной сети Ethernet. В ней есть один или более сетевых мостов, связанных избыточными соединениями.
Суть работы протокола заключается в том, что поддерживающие его коммутаторы сети Ethernet обмениваются друг с другом информацией «о себе». На основании определённых условий один из коммутаторов выбирается «корневым». После этого все остальные коммутаторы выбирают для работы порты, «ближайшие» к «корневому» коммутатору (учитывается количество посредников и скорость линий). Все прочие сетевые порты, ведущие к «корневому» коммутатору, блокируются. Таким образом образуется дерево с корнем в выбранном коммутаторе. Протокол описан в стандарте IEEE 802.1D.
Поддерживается почти всеми Ethernet-коммутаторами, как реальными, так и виртуальными, за исключением самых примитивных.
Топология, содержащая резервные каналы
Изучать, как функционирует протокол STP мы будет на примере приведенной схемы сети. Построим закольцованную сеть с резервными путями распространения фреймов. Компьютер PC0 рассылает по сети в сеть широковещательные кадры. Данный фрейм поступает на порт коммутатор switch0, который разошлет его дальше через все порты, кроме того, на который он его принял (gig0/1, gig0/2). Далее коммутатор switch1 отправит фрейм по портам fast0/1, gig0/1, а коммутатор switch1 по портам gig0/1 и fast0/1. Что будет дальше с фреймами, дошедшими до конечных целей PC1 и PC2 нас, в рамках данного кейса, заботить не должно. Сосредоточим внимание на том, что будет дальше с фреймами, отправленными к коммутатору switch2.
Возникнет ситуация, где switch2 принимает на два порта копии оного фрейма. Копии фрейма с порта gig0/1 будет отправлена далее через порты fast0/1 и gig0/2, а копия фрейма с порта gig0/2 на fast0/1 и gig0/1 соответственно. На следующем шаге коммутаторы фрейм вернется на switch0 и отправится далее по кольцу нашей сети. Этот круговорот фреймов с сети будет продолжаться бесконечно или до тех пор, пока не откажет оборудование, постольку поскольку фрейм не IP пакет, и у него нету заголовка TTL, где указано, сколько маршрутизаторов еще может пройти пакет (каждый следующий маршрутизатор уменьшает этот параметр на 1).
Циркуляция фреймов в топологии с резервными каналами
Такое поведение фрейма грозит вызывает сразу несколько неприятностей.
- Первая - само собой разумеется, что создаётся лишний трафик, который уменьшает общую полезную пропускную способность сети. Причём проблема эта с течением времени непрерывно усугубляется.
- Вторая – создаются ошибки построения таблицы коммутации. Так как коммутаторы анализируют МАС-адрес в поле отправителя, и если он отсутствует в таблице коммутации, то он дописывается в неё, создавай соответствие между MAC-адресом фрейма и портом, на который он пришел. Если запись с таким MAC-адресом уже была, то новая запись просто заменит её.
Проанализируем данную ситуацию.
Допустим, у нас есть PC0 с адресом адрес MAC0. От PC0 на порт Fast0/1 коммутатора Switch0 приходит широковещательный пакет. Соответственно, в таблицу коммутации будет добавлена пара MAC0 - Fast0/1. Как мы наблюдали ранее, Switch0 отправит копию фрейма далее, по кольцу коммутаторов, и через некоторое время фрейм вернется к нему на порты gig0/1 и gig0/2.
Допустим, что первым вернулась копия фрейма на порт gig0/1. В поле отправителя значится компьютер PC0. Коммутатор меняет в записи MAC0 значение с Fast0/1 на Gig0/1 и таблица коммутации не будет отображать реальное положение дел. И когда коммутатору придёт от switch1 фрейм для компьютера PC0, то он ошибочно будет передан не ему, через на закрепленный за ним порт (Fast0/1), а на порт Gig0/1 коммутатора switch3 и фрейм таким образом просто не попадет к получателю.
Что бы решить данную проблему, для сетей с резервными маршрутами разработали протокол STP (Spanning Tree Protocol) - протокол связующего дерева. Работает он так – при обнаружении кольца, один из его маршрутов блокируется, хосты образуют топологию типа «дерево».
Если вы когда-то соединяли коммутаторы в кольцевую сеть, то могли заметить, что на одном из коммутаторов индикатор порта, задействованного для построения сети горит оранжевым цветом, несмотря на то, что в порт вставлен кабель, ведущий к другому коммутатору. Вся странность этого явления объясняется работой протокола STP.
Само собой, STP блокирует порт не на всё время, а до изменения её структуры. Если в нашем примере из сети отключить один из связующих коммутаторов, то ранее отключенный порт будет задействован, чтобы восстановить работу сети.
Добавим, что порт блокируется, а не отключается. Выполните команду «show ip interface brief». Поля status и protocol будут в состоянии UP, и это обозначает, что порт включен и работает исправно. Но если запустить команду «show spanning-tree interface
/ Обмен ссылками / Неизвестные сети /