STP

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Spanning Tree Protocol (STP, протокол связующего дерева) — сетевой протокол. Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, связанных избыточными соединениями. STP решает эту задачу, автоматически блокируя соединения, которые в данный момент для полной связности коммутаторов являются избыточными.

Необходимость устранения топологических петель в сети Ethernet следует из того, что их наличие в реальной сети Ethernet с коммутатором с высокой вероятностью приводит к бесконечным повторам передачи одних и тех же кадров Ethernet одним и более коммутатором, отчего пропускная способность сети оказывается почти полностью занятой этими бесполезными повторами; в этих условиях, хотя формально сеть может продолжать работать, на практике её производительность становится настолько низкой, что может выглядеть как полный отказ сети.

STP относится ко второму уровню модели OSI. Протокол описан в стандарте IEEE 802.1d. STP основан на одноимённом алгоритме, который разработала Радья Перлман (англ. Radia Perlman).

Пример сети. Квадратами обозначены коммутаторы, цифры в квадратах — идентификаторы мостов (Bridge ID). Облака с латинскими буквами обозначают сегменты сети

Принцип действия[править | править вики-текст]

  1. Выбирается один корневой мост (англ. Root Bridge).
  2. Далее каждый, отличный от корневого, мост просчитывает кратчайший путь к корневому. Соответствующий порт называется корневым портом (англ. Root Port). У любого некорневого коммутатора может быть только один корневой порт.
  3. После этого для каждого сегмента сети, к которому присоединён более чем один порт моста, просчитывается кратчайший путь к корневому порту. Мост, через который проходит этот путь, становится назначенным для этой сети (англ. Designated Bridge), а соответствующий порт — назначенным портом (англ. Designated port).
  4. Далее во всех сегментах, с которыми соединены более одного порта моста, все мосты блокируют все порты, не являющиеся корневыми и назначенными. В итоге получается древовидная структура (математический граф) с вершиной в виде корневого коммутатора.

Основные понятия[править | править вики-текст]

  • 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;
  • 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

Важные правила[править | править вики-текст]

  1. Корневым (root) портом назначается порт с самой низкой стоимостью пути (path cost).
  2. Возможны случаи, когда стоимость пути по двум и более портам коммутатора будет одинакова, тогда выбор корневого (root) порта будет происходить на основании приоритета и порядкового номера порта, например fa0/1, fa0/2, fa0/3 и корневым (root) станет порт с наименьшим номером.
  3. Коммутаторы, по умолчанию, не измеряют состояние загрузки сети в реальном времени и работают в соответствии со стоимостью (cost) интерфейсов в момент построения дерева STP.
  4. Каждый порт имеет свою стоимость (cost), обратно пропорциональную пропускной способности (bandwidth) порта и которую можно настраивать вручную.

Алгоритм действия 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 секунды.

Порты[править | править вики-текст]

  • Root Port
  • Designated Port
  • Non-designated Port
  • Disabled Port

Эволюция и расширения[править | править вики-текст]

Rapid Spanning Tree Protocol (RSTP)[править | править вики-текст]

Rapid STP (RSTP) является значительным усовершенствованием STP. В первую очередь необходимо отметить уменьшение времени сходимости и более высокую устойчивость. В немалой степени это достигнуто за счет идей, использованных Cisco Systems в качестве проприетарных расширений STP. RSTP описан в стандарте IEEE 802.1w (впоследствии включен в 802.1D-2004).

Rapid STP совместим с STP — если некое устройство использует STP, то RSTP тоже будет использовать STP с этим устройством, но в этом режиме может оказаться, что наличие RSTP на остальных устройствах не дает преимуществ по сравнению с STP.

Per-VLAN Spanning Tree Protocol (PVSTP)[править | править вики-текст]

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.

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). В один экземпляр MST могут входить несколько виртуальных сетей, при условии, что их топология одинакова (в смысле входящих в VLAN коммутаторов и соединений между ними). Минимальное количество экземпляров MSTP соответствует количеству уникальных топологически групп VLAN в домене второго уровня (опять же на уровне коммутаторов и соединений между ними). MSTP налагает важное ограничение: все коммутаторы, участвующие в MSTP, должны иметь одинаково сконфигурированные группы VLAN (MST instances), что ограничивает гибкость при изменении конфигурации сети.

MSTP описан в стандарте IEEE 802.1s (впоследствии включен в 802.1Q-2003).

Shortest Path Bridging (SPB)[править | править вики-текст]

Shortest Path Bridging (SPB) IEEE 802.1aq преодолевает ограничения блокировки.

История создания[править | править вики-текст]

Алгоритм, заложенный в основу STP, был разработан в 1985 году Радией Перлман. Ей дали 1 неделю на разработку алгоритма. Она сделала это за 1 день, а в оставшееся время описала алгоритм в виде стихотворения[1]

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]