STP
STP | |
---|---|
Название | Протокол покрывающего дерева |
Уровень (по модели OSI) | Канальный |
Создан в |
1985 |
Назначение протокола | Устранение петель в топологии сети |
Спецификация | RSTP, MSTP, SPB |
![]() |
Spanning Tree Protocol (STP, протокол остовного дерева) — канальный протокол. Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, связанных избыточными соединениями. STP решает эту задачу, автоматически блокируя соединения, которые в данный момент для полной связности коммутаторов являются избыточными.
Необходимость устранения топологических петель в сети Ethernet следует из того, что их наличие в реальной сети Ethernet с
STP относится ко второму уровню
Если в сети с мостовыми подключениями (в сегменте сети из коммутаторов) имеется несколько путей, могут образоваться циклические маршруты, и следование простым правилам пересылки данных через мост (коммутатор) приведёт к тому, что один и тот же пакет будет бесконечно передаваться с одного моста на другой (передаваться по кольцу из коммутаторов).
Алгоритм связующего (в текущей статье остовного - отсылка к графам) дерева позволяет по мере необходимости автоматически отключать передачу через мост (в современных сетях коммутаторы) в отдельных портах (блокировать порты коммутатора), чтобы предотвратить зацикливание в топологии маршрутов пересылки пакетов. Для использования алгоритма остовного дерева в сетевом мосте никакой дополнительной настройки не требуется[1].
Описание
Суть работы протокола заключается в том, что поддерживающие его коммутаторы сети Ethernet обмениваются друг с другом информацией «о себе». На основании определённых условий (обычно в соответствии с настройками) один из коммутаторов выбирается «корневым» (или «root»), после чего все остальные коммутаторы по алгоритму остовного дерева выбирают для работы порты, «ближайшие» к «корневому» коммутатору (учитывается количество посредников и скорость линий). Все прочие сетевые порты, ведущие к «корневому» коммутатору, блокируются. Таким образом образуется дерево с корнем в выбранном коммутаторе.
В коммутаторах Cisco с поддержкой VLAN протокол STP по умолчанию выполняется независимо для каждой виртуальной сети.
Кроме STP, в коммутаторах могут применяться другие методики обнаружения и устранения петель — например, сравнением таблиц коммутации (списков MAC-адресов) разных портов, или сравнением контрольных сумм проходящих пакетов (совпадение указывает на одинаковые пакеты, которые появляются из-за петель). По сравнению с описанными методами, случайным образом (или основываясь на каких-то догадках) блокирующими «дублирующие» порты, протокол STP обеспечивает древовидную структуру всего сегмента, при любом количестве резервных линий между произвольными коммутаторами, поддерживающими STP.
Принцип действия
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Spanning_tree_protocol_at_work_1.svg/300px-Spanning_tree_protocol_at_work_1.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Spanning_tree_protocol_at_work_2.svg/300px-Spanning_tree_protocol_at_work_2.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Spanning_tree_protocol_at_work_3.svg/300px-Spanning_tree_protocol_at_work_3.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Spanning_tree_protocol_at_work_4.svg/300px-Spanning_tree_protocol_at_work_4.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Spanning_tree_protocol_at_work_5.svg/300px-Spanning_tree_protocol_at_work_5.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Spanning_tree_protocol_at_work_6.svg/300px-Spanning_tree_protocol_at_work_6.svg.png)
- Выбирается один корневой мост (англ. Root Bridge).
- Далее каждый коммутатор просчитывает кратчайший путь к корневому. Соответствующий порт называется корневым портом (англ. Root Port). У любого некорневого коммутатора может быть только один корневой порт.
- После этого для каждого сегмента сети, к которому присоединён более чем один мост (или несколько портов одного моста), просчитывается кратчайший путь к корневому мосту(порту). Мост, через который проходит этот путь, становится назначенным для этой сети (англ. Designated Bridge), а соответствующий порт — назначенным портом (англ. Designated port).
- Далее во всех сегментах, с которыми соединено более одного порта моста, все мосты блокируют все порты, не являющиеся корневыми и назначенными. В итоге получается древовидная структура (математический граф) с вершиной в виде корневого коммутатора.
Основные понятия
- Bridge ID = Bridge priority + MAC;
- Bridge priority = vlan xxx + 4096xN, N-множитель, назначается администратором сети (4096х8=32768 default cost);
- Cost — «стоимость портов»;
- Pathcost — стоимость линка в STP;
- Hello BPDU = root ID + bridge ID + cost; (англ. Bridge Protocol Data Unit)
- Root port (корневой порт) — это порт, который имеет минимальную стоимость до любого порта корневого коммутатора;
- Designated port (назначенный порт) — это порт, который имеет кратчайшее расстояние от назначенного коммутатора до корневого коммутатора.
Скорость передачи и стоимость пути
Скорость передачи | Стоимость (802.1D-1998) | Стоимость (802.1W-2001) |
---|---|---|
4 Мбит/с | 250 | 5 000 000 |
10 Мбит/с | 100 | 2 000 000 |
16 Мбит/с | 62 | 1 250 000 |
100 Мбит/с | 19 | 200 000 |
1 Гбит/с | 4 | 20 000 |
2 Гбит/с | 3 | 10 000 |
10 Гбит/с | 2 | 2 000 |
Важные правила
- Корневым (root) портом назначается порт с самой низкой стоимостью пути (path cost).
- Возможны случаи, когда стоимость пути по двум и более портам коммутатора будет одинакова, тогда выбор корневого (root) порта будет происходить на основании полученных от соседей приоритета и порядкового номера порта (Lowest Sender Port ID)[2], например fa0/1, fa0/2, fa0/3 и корневым (root) станет порт с наименьшим номером.
- Коммутаторы, по умолчанию, не измеряют состояние загрузки сети в реальном времени и работают в соответствии со стоимостью (cost) интерфейсов в момент построения дерева STP.
- Каждый порт имеет свою стоимость (cost), обратно пропорциональную пропускной способности (bandwidth) порта и которую можно настраивать вручную.
- Все порты в STP последовательно проходят 4 состояния: blocking (прослушивают BPDU без передачи данных), listening (прослушивают и ретранслируют BPDU), learning (получают данные, обновляют MAC-таблицы), forwarding (рабочее состояние порта). С интервалами по умолчанию работа порта (forwarding) начинается через 30 сек.
Алгоритм действия STP (Spanning Tree Protocol)
- После включения коммутаторов в сеть по умолчанию каждый коммутатор считает себя корневым (root).
- Каждый коммутатор начинает посылать по всем портам конфигурационные Hello BPDU пакеты раз в 2 секунды.
- Если мост получает BPDU с идентификатором моста (Bridge ID) меньшим, чем свой собственный, он прекращает генерировать свои BPDU и начинает ретранслировать BPDU с этим идентификатором. Таким образом, в конце концов в этой сети Ethernet остаётся только один мост, который продолжает генерировать и передавать собственные BPDU. Он и становится корневым мостом (root bridge).
- Остальные мосты ретранслируют BPDU корневого моста, добавляя в них собственный идентификатор и увеличивая счётчик стоимости пути (path cost).
- Для каждого сегмента сети, к которому присоединено два и более портов мостов, происходит определение designated port — порта, через который BPDU, приходящие от корневого моста, попадают в этот сегмент.
- После этого все порты в сегментах, к которым присоединено 2 и более портов моста, блокируются за исключением root port и designated port.
- Корневой мост продолжает посылать свои Hello BPDU раз в 2 секунды.
Порты
Каждый порт, задействованный в STP, может работать в одном из следующих режимов (ролей):
- Root Port (корневой) — порт для передачи трафика корневому коммутатору. Каждый некорневой коммутатор имеет только один корневой порт, выбранный из соображений минимальной стоимости пути.
- Designated Port (назначенный) — некорневой порт моста между сегментами сети, принимающий трафик из соответствующего сегмента. Сам мост также называется назначенным. В каждом сегменте сети может быть только один назначенный порт. У корневого коммутатора все порты — назначенные.
- Non-designated Port (неназначенный) — порт, не являющийся корневым, или назначенным. Передача фреймов данных через такой порт запрещена.
- Disabled Port (отключённый) — порт, не участвующий в STP, либо выключенный административно (командой shutdown).
Эволюция и расширения
Rapid Spanning Tree Protocol (RSTP)
Rapid STP (RSTP) является значительным усовершенствованием STP. В первую очередь необходимо отметить уменьшение времени сходимости и более высокую устойчивость. В немалой степени это достигнуто за счет идей, использованных Cisco Systems в качестве проприетарных расширений STP. RSTP описан в стандарте
Rapid STP совместим с STP — если некое устройство использует STP, то RSTP тоже будет использовать STP с этим устройством, но в этом режиме может оказаться, что наличие RSTP на остальных устройствах не дает преимуществ по сравнению с STP.
Per-VLAN Spanning Tree Protocol (PVSTP)
Per-VLAN STP (PVSTP) в соответствии с названием расширяет функциональность STP для использования
Multiple Spanning Tree Protocol (MSTP)
Вышеописанные вариации протоколов STP можно классифицировать по количеству экземпляров STP в случае, когда число VLAN более единицы. Имеются вариации протоколов, у которых на все VLAN приходится единственный экземпляр STP (собственно STP, RSTP), и вариации, у которых каждому VLAN соответствует свой экземпляр STP (PVST, PVST+, Rapid PVST+).
Некоторая избыточность вариаций с отдельным экземпляром STP для каждой VLAN состоит в том, что если топология нескольких VLAN совпадает, то соответствующие им экземпляры STP полностью повторяют работу друг друга. В таком случае в принципе ненужная работа по сути дублирующих друг друга экземпляров STP оборачивается ненужной дополнительной нагрузкой на процессор коммутатора, и в конечном счёте может вынудить конструкторов оборудования для обеспечения его устойчивой работы выбирать более мощный процессор с большим энергопотреблением, что может повлечь за собой дополнительные затраты на электропитание и охлаждение как при изготовлении оборудования, так и эксплуатации.
В этом отношении особняком стоит Multiple STP (MSTP). В один экземпляр MSTP могут входить несколько виртуальных сетей при условии, что их топология одинакова (в смысле входящих в VLAN коммутаторов и соединений между ними). Минимальное количество экземпляров MSTP соответствует количеству топологически уникальных групп VLAN в домене второго уровня (опять же на уровне коммутаторов и соединений между ними). MSTP налагает важное ограничение: все коммутаторы, участвующие в MSTP, должны иметь одинаково сконфигурированные группы VLAN (MST instances), что ограничивает гибкость при изменении конфигурации сети.
MSTP описан в стандарте
Shortest Path Bridging (SPB)
История создания
Алгоритм, заложенный в основу STP, был разработан в 1985 году Радией Перлман. Ей дали 1 неделю на разработку алгоритма. Она сделала это за 1 день, а в оставшееся время описала алгоритм в виде стихотворения[3]:
I think that I shall never see
A graph more lovely than a tree.
A tree whose crucial property
Is loop-free connectivity.
A tree that must be sure to span
So packets can reach every LAN.
First, the root must be selected.
By ID, it is elected.
Least-cost paths from root are traced.
In the tree, these paths are placed.
A mesh is made by folks like me,
Then bridges find a spanning tree.
— Radia Joy Perlman
Примечания
- ↑ Сетевой мост . Дата обращения: 18 января 2015. Архивировано 18 января 2015 года.
- ↑ 802.1d – STP . Дата обращения: 17 марта 2015. Архивировано 2 апреля 2015 года.
- ↑ An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN (недоступная ссылка), Radia Perlman (DEC), 1985
Ссылки
- CCNP TSHOOT 642—832 Quick Reference // Brent Steward // Cisco Press 2010 ISBN 1-58714-012-8 (англ.)
- IEEE Std 802.1D™- 2004 (англ.)
- IEEE Std 802.1Q™- 2005 Архивная копия от 6 июля 2010 на Wayback Machine (англ.)
- Understanding Spanning-Tree Protocol Архивная копия от 18 декабря 2008 на Wayback Machine (англ.)
![]() | В статье не хватает ссылок на источники (см. рекомендации по поиску). |