Протокол Spanning Tree(STP). Избыточные топологии второго уровня. Разновидности STP. Spanning tree внутри VLAN. Rapid Spanning Tree.
Spanning Tree Protocol (STP) (протокол остовного дерева) — сетевой протокол. Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, связанных избыточными соединениями. STP решает эту задачу, автоматически блокируя соединения, которые в данный момент для полной связности коммутаторов являются избыточными.
Необходимость устранения топологических петель в сети Ethernet следует из того, что их наличие в реальной сети Ethernet с коммутатором с высокой вероятностью приводит к бесконечным повторам передачи одних и тех же кадров Ethernet одним и более коммутатором, отчего пропускная способность сети оказывается почти полностью занятой этими бесполезными повторами; в этих условиях, хотя формально сеть может продолжать работать, на практике её производительность становится настолько низкой, что может выглядеть как полный отказ сети.
STP относится ко второму уровню модели OSI.
1. В сети выбирается один корневой мост (англ. Root Bridge).
2. Далее каждый, отличный от корневого, мост просчитывает кратчайший путь к корневому. Соответствующий порт называется корневым портом (англ. Root Port). У любого некорневого коммутатора может быть только один корневой порт.
3. После этого для каждого сегмента сети, к которому присоединён более чем один порт моста, просчитывается кратчайший путь к корневому порту. Мост, через который проходит этот путь, становится назначенным для этой сети (англ. Designated Bridge), а соответствующий порт — назначенным портом (англ. Designated port).
4. Далее во всех сегментах, с которыми соединены более одного порта моста, все мосты блокируют все порты, не являющиеся корневыми и назначенными. В итоге получается древовидная структура (математический граф) с вершиной в виде корневого коммутатора.
· Bridge ID = Bridge priority + MAC;
· Bridge priority = vlan xxx + 32768 (default cost);
· Cost — «стоимость портов»;
· Pathcost — стоимость линка в STP;
· Hello BPDU = root ID + bridge ID + cost;
· Root port (корневой порт) — это порт, который имеет минимальную стоимость до любого порта корневого коммутатора.
· Designated port (назначенный порт) — это порт, который имеет кратчайшее расстояние от назначенного коммутатора до корневого коммутатора.
1. Корневым (root) портом назначается порт с самой низкой стоимостью пути (path cost).
2. Возможны случаи, когда стоимость пути по двум и более портам коммутатора будет одинакова, тогда выбор корневого (root) порта будет происходить на основании порядкового номера порта, например fa0/1, fa0/2, fa0/3 и корневым (root) станет порт с наименьшим номером.
3. Коммутаторы, по умолчанию, не измеряют состояние загрузки сети в реальном времени и работают в соответствии со стоимостью (cost) интерфейсов в момент построения дерева STP.
4. Каждый порт имеет свою стоимость (cost), обратно пропорциональную пропускной способности (bandwidth) порта и которую можно настраивать вручную.
· После включения коммутаторов в сеть, по умолчанию каждый коммутатор считает себя корневым (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 секунды.
RSTP (Rapid STP, англ. Rapid spanning tree protocol, быстрый протокол разворачивающегося дерева), он же IEEE 802.1W-2001 и IEEE 802.1D-2004— версия протокола STP c ускоренной реконфигурацией дерева, использующегося для исключения петель (исключения дублирующих маршрутов) в соединениях коммутаторов Ethernet с дублирующими линиями.
По сравнению с STP уменьшилось время построения топологии, а также время восстановления работоспособности сети.
Принцип работы в общих чертах похож на STP: выбирается корневой коммутатор (англ. root switch), к которому, каждый из участвующих в построении дерева коммутатор, ищет кратчайший маршрут (с учётом пропускной способности канала) через соседние коммутаторы (или напрямую). Линии, не попавшие в маршрут, переводятся в режим ожидания и не используются для передачи данных пока работают основные линии. В случае выхода из строя основных линий, ожидающие линии используются для построения альтернативной топологии, после чего одна из линий становится активной, а остальные продолжают находиться в режиме ожидания.
· Discarding
· Learning
· Forwarding
· Root — беспрепятственная коммуникация не корневого коммутатора по порту, имеющий наименьшую стоимость линка к корневому коммутатору.
· Designated — беспрепятственная коммуникация по порту на весь LAN сегмент, не содержащий корневой коммутатор.
· Alternate — альтернативный линк к корневому коммутатору, отличный от используемого «Root» порта. Регулярный трафик на порту блокируется.
· Backup — запасной/резервный линк к LAN сегменту предоставляющий LAN сегменту линк к корневому коммутатору, большей стоимости, чем «Designated» порт. Регулярный трафик на порту блокируется.
· Disabled — Не определён строго стандартом STP, администратор может отключить порт вручную.
· Shared — порт, работающий в режиме Half Duplex
· Point-to-Point — порт, работающий в режиме Full Duplex.
Edge Port — подключенный к конечному устройству порт на котором отсутствует возможность создания петлевой структуры. Особенностями данного порта являются:
· Переход из состояния Discarding в Forwarding пропуская состояние Learning;
· Порт должен работать в режими Full Duplex и быть Point-to-Point.
Для активации данного режима порта на оборудовании Cisco используется комманда spanning-tree portfast
Per-VLAN STP (PVSTP) в соответствии с названием расширяет функционал STP для использования VLAN. В рамках данного протокола в каждом VLAN работает отдельный экземпляр STP. Является проприетарным расширением Cisco. Изначально протокол PVST работал только через ISL-транки, потом было разработано расширение PVST+, которое позволяло работать через гораздо более распространённые 802.1Q-транки. Существуют реализации, объединяющие свойства PVST+ и RSTP, поскольку эти расширения затрагивают независимые части протокола, в результате получается (в терминологии Cisco) Rapid PVST+. PVST+ совместим с STP, и даже коммуницирует «через» коммутаторы, не поддерживающие ни PVST+, ни Rapid PVST+, за счёт использования мультикастовых фреймов. Но Cisco Systems рекомендует не смешивать в одной сети коммутаторы различных производителей, чтобы избежать проблем совместимости разных имплементаций и вариаций STP.
Вышеописанные вариации протоколов STP можно разделить классифицировать по количеству экземпляров STP в случае, когда число VLAN более единицы. Имеются вариации протоколов, у которых на все VLAN приходится единственный экземпляр STP (собственно STP, RSTP), и вариации, у которых каждому VLAN соответствует свой экземпляр STP (PVST, PVST+, Rapid PVST+).
Некоторая избыточность вариаций с отдельным экземпляром STP для каждой VLAN состоит в том, что если топология нескольких VLAN совпадает, то соответствующие им экземпляры STP полностью повторяют работу друг друга. В таком случае в принципе ненужная работа по сути дублирующих друг друга экземпляров STP оборачивается ненужной дополнительной нагрузкой на процессор коммутатора, и в конечном счете может вынудить конструкторов оборудования для обеспечения его устойчивой работы выбирать более мощный процессор с большим энергопотреблением, что может повлечь за собой дополнительные затраты на электропитание и охлаждение, как при изготовлении оборудования, так и эксплуатации.
В этом отношении особняком стоит Multiple STP (MSTP). В один экземпляр MST могут входить несколько виртуальных сетей, при условии, что их топология одинакова (в смысле входящих в VLAN коммутаторов и соединений между ними). Минимальное количество экземпляров MSTP соответствует количеству уникальных топологически групп VLAN в домене второго уровня (опять же на уровне коммутаторов и соединений между ними). MSTP налагает важное ограничение: все коммутаторы, участвующие в MSTP, должны иметь одинаково сконфигурированные группы VLAN (MST instances), что ограничивает гибкость при изменении конфигурации сети.
MSTP описан в стандарте IEEE 802.1s (впоследствии включен в 802.1Q-2003).
Shortest Path Bridging (SPB) IEEE 802.1aq преодолевает ограничения блокировки.