Добавить в закладки

AddThis Social Bookmark Button

Последние комментарии

Авторизация



  
Home Технология FCoE 2.3.4 Протокол Spanning Tree Protocol (STP)
2.3.4 Протокол Spanning Tree Protocol (STP)
Данный раздел разбит на следующие секции:
2.3.4.1 Введение
Достаточно важной технологией для 2-го сетевого уровня, является протокол STP. Данная технология была изобретена Радиа Перлманом. Данный протокол используется при соединении между собой, двух и более коммутаторов дублирующимися соединениями или при построении сети по топологии «mesh» (связь всех со всеми). Протокол Spanning Tree, обеспечивает стабильную работу сети, путем анализа топологии и устранения петель (forwarding loops) между коммутаторами, создавая граф (дерево) передачи пакетов между коммутаторами.
 
Петля (forwarding loop), может возникать в тех случаях, когда топология сети содержит дублирующиеся пути передачи пакетов, а STP не используется. Пример такой топологии изображен на рисунке 16.
 
 Рисунок 16. Forwarding loop
Рисунок 16. Forwarding loop
 
Как показано на рисунке 16, сервер отправляет пакет на MAC адрес 00:11:11:11:11:11. Когда коммутатор Ethernet-switch-A получит этот пакет, он не распознает адреса получателя (DA) и выполнит unicast flood, т.е. разошлет пакет через все имеющиеся порты (см. Раздел 2.3.3, ”Одноадресный поток пакетов (unicast flood)”). Таким образом, пакет попадет на коммутаторы B и C, которые также не распознают адреса получателя и выполнят unicast flood. Данный процесс будет повторяться бесконечно долго, и достаточно быстро займет всю пропускную способность между коммутаторами A, B и C.
 
Важно понимать, как протокол Spanning Tree, работает в конвергентных сетях Glossary Link FCoE. Если на сетевых адаптерах CNA включено использование протокола Spanning Tree, то время установления сетевого соединения между адаптером и коммутатором, значительно увеличивается. По этой причине, компания EMC рекомендует отключать поддержку протокола Spanning Tree, на тех интерфейсах коммутатора, к которым подключаются адаптеры CNA.

 
Протокол Spanning Tree (STP) работает следующим образом:
◆ STP – протокол управления соединениями, он позволяет осуществлять дублирование сетевых соединений и не допускает возникновения петель, между коммутаторами. При нормальном функционировании сети Ethernet, между двумя коммутаторами может быть активно лишь одно соединение, другие не будут использоваться.
◆ Т.к. несколько активных соединений между коммутаторами, создают петлю, STP блокирует одно или несколько таких соединений.
◆ Для обеспечения возможности резервирования соединений, протокол STP определяет граф (дерево) из сетевых коммутаторов. Протокол STP, вычислив дублирующиеся пути для данных, блокирует их, переводя в режим ожидания. В случае, если сегмент сети становится недоступным, или меняется вес пути графа STP (например, при изменении скорости соединения), алгоритм STP перестраивает дерево и если требуется, активирует резервные соединения.
◆ Работа протокола STP незаметна для оконечных узлов в сети, и неважно, подключены ли они к одному сегменту Glossary Link LAN, или к LAN со множеством сегментов.
 
 
2.3.4.2 Определение корневого коммутатора
Все коммутаторы в сети LAN, работающие с STP, обмениваются между собой информацией, через специальные сообщения. Данные сообщения называются Bridge Protocol Data Units (BPDUs). Данные сообщения выполняют следующие функции:
◆ Выбор корневого коммутатора, для формирования топологии STP.
◆ Назначение основного коммутатора в каждом сегменте сети LAN.
◆ Удаление петлей, отключая передачу данных через дублирующиеся пути.
 
 
2.3.4.3 Пакеты BPDU
BPDUs (Bridge Protocol Data Units) – представляют из себя пакеты данных, предназначенные для обмена информацией между коммутаторами, например идентификаторами коммутаторов (Switch ID) и весом путей до корневого коммутатора (root path costs). STP использует BPDUs, для выбора корневого порта и коммутатора, а также для выбора основного порта и коммутатора для каждого сегмента сети.
 
Отправляя BPDU пакет, в качестве MAC адреса отправителя, коммутатор ставит свой собственный MAC адрес, а MAC адресом получателя пакета, является многоадресный, зарезервированный STP адрес 01:80:C2:00:00:00.
 
Существуют три типа пакетов BPDUs:
◆ Конфигурационные BPDU (Configuration BPDU (CBPDU)) — Используется для расчета графа STP
◆ Информирование об изменении топологии сети (Topology Change Notification (TCN)) — Используется для анонсирования изменений в топологии сети
◆ Подтверждение изменения топологии сети (Topology Change Acknowledgement (TCA)) — Используются для подтверждения TCNs
Пакеты BPDU регулярно посылаются по сети (по умолчанию, каждые 2 секунды), что позволяет коммутаторам постоянно отслеживать изменения в сети и немедленно реагировать на изменения.
 
 
Стабильность работы активной сетевой конфигурации, определяется следующими факторами:
◆ Уникальный идентификатор коммутатора (MAC адрес), ассоциируется с каждым коммутатором.
◆ Вес пути до корневого коммутатора, присваивается каждому порту.
◆ Идентификатор порта (MAC адрес), ассоциируется с каждым портом коммутатора.
 
 
Каждый конфигурационный BPDU содержит следующую информацию:
Уникальный идентификатор коммутатора (MAC адрес), который переправляется корневому коммутатору.
Вес пути до корневого коммутатора от отправившего пакет порта.
Идентификатор порта (MAC адрес), отправившего пакет порта.
 
 
Обмен пакетами BPDU приводит к следующим результатам:
Выбирается единственный корневой коммутатор. Если такой коммутатор не настроен вручную, то корневым выбирается коммутатор, с наименьшим MAC адресом.
Высчитывается кратчайшее расстояние, от корневого коммутатора, до каждого коммутатора сети.
◆ Также определяются коммутаторы, расположенные близ корневого, они будут переправлять пакеты на корневой коммутатор.
Выбираются порты коммутаторов, которые менее всего удалены от корневого коммутатора. Если есть несколько эквивалентных путей, то будет выбран порт с наименьшим MAC адресом.
 ◆ Выбираются порты, отключенные протоколом STP.
 
Если все коммутаторы сети настроены по умолчанию, то корневым коммутатором будет выбран коммутатор с наименьшим MAC адресом (ID шлюза). Однако, в зависимости от топологии сети, количества портов, типов и скоростей соединений, автоматический выбор корневого коммутатора по наименьшему MAC адресу, не всегда является оптимальным. Можно запустить перерасчет топологии STP заново, чтобы выбрать более подходящий корневой коммутатор, путем повышения его приоритета в сети.
На рисунке 17 отображен формат пакета BPDU.
 
Рисунок 17. Формат пакета BPDU
Рисунок 17. Формат пакета BPDU
 
 
2.3.4.4 Статусы портов в протоколе Spanning Tree
Когда топология сети еще не определена и сеть находится в неопределенном статусе, порт коммутатора, передавая данные, создает временные петли пакетов. Порты коммутаторов должны подождать некоторое время, пока не получат информацию о топологии сети, чтобы начать передавать пакеты по сети LAN. Также, они должны подождать, пока не истечет время жизни пакетов старой топологии.
Каждый порт коммутатора, который использует протокол STP, может находиться в одном из пяти состояний:
Blocking — Порт находится в заблокированном состоянии. В данном состоянии, порт не передает пакеты, но получает и отвечает на служебные сообщения.
Listening — Порт сканирует сеть. В данном состоянии, порт не имеет MAC адреса и не передает других MAC адресов, порт принимает и передает пакеты BPDU, а также получает и отвечает на служебные сообщения.
Learning – Порт изучает топологию сети. В данном состоянии, порт не передает никаких пакетов, кроме пакетов BPDU. Порт находится в режиме заполнения таблицы MAC адресов, и готовится к началу передачи данных, а также он получает и отвечает на служебные сообщения.
Forwarding – Порт находится в режиме передачи. В данном состоянии, порт принимает и передает все пакеты сети.
Disabled – (Выключен – обычно переведен в такое состоянии вручную). Отключенный порт не принимает и получает никаких типов пакетов в сети.
 
После перезагрузки коммутатора или изменения топологии сети, порт, использующий STP, четырежды меняет свое состояния. Коммутаторы с резервными соединениями, и правильно настроенные коммутаторы, также могут иметь порты в статусах blocking или forwarding.
Этапы инициализации порта:
◆ С initializing в blocking
◆ С blocking в listening
◆ С listening в learning
◆ С learning в forwarding
◆ С Forwarding в disabled (при ручной настройке) — Не является обязательным шагом.
 
 
2.3.4.5 Таймеры протокола Spanning Tree
Таймеры в протоколе Spanning Tree, используются для обеспечения стабильности собранной топологии сети, а также для устранения дублирующихся пакетов в сети, перед началом передачи данных по сети. Существует несколько видов таймеров:
Hello — Это время, между отправками на порт пакетов BPDU. По умолчанию, установлен интервал в 2 секунды, но на коммутаторе можно установить значение от 1 до 10 секунд.
Forward delay — Это время, в течение которого порт коммутатора будет находиться в состояниях listening и learning. По умолчанию, установлено значение в 15 секунд, но на коммутаторе можно установить значение от 4 до 30 секунд.
Max age — Таймер, контролирующий период времени, через которое порт сохраняет свою конфигурацию BPDU. По умолчанию, установлен интервал в 20 секунд, но на коммутаторе можно установить значение от 6 до 40 секунд.
По умолчанию, значения таймеров, используемые в протоколе Spanning Tree, достаточно велики для современных сетей. Например, посчитаем время инициализации порта коммутатора:
 (20 секунд для Max age + 2 x forward delay (15 секунд на listening/learning)) = 50 секунд 
 
 
2.3.4.6 Вес пути в Spanning Tree
Вес пути напрямую зависит от скорости соединения. Коммутаторы используют путь с наименьшим весом, как основной путь передачи данных. Если существует дублирующий путь, с более высоким весом, то путь не будет использоваться, до тех пор, пока путь с меньшим весом остается доступным. На следующей таблице показано соответствие скорости соединения и веса пути интерфейса.
 
Скорость передачи
Вес пути (802.1D)
10 Mb/s
100
100 Mb/s
19
1 Gb/s
4
10 Gb/s
2
 
 
 
2.3.4.7 Пример изменения топологии в STP
На рисунке 18 изображен пример изначальной STP. Данная топология STP уже построена, и все порты ведут передачу данных.
Легенда к рисунку18:
◆ SW 1 - корневой коммутатор
◆ BPDUs отправлены от корневого коммутатора и спускаются вниз по дереву
 
Рисунок 18. Пример изначальной топологии STP
Рисунок 18. Пример изначальной топологии STP
 
На рисунке 19 изображен пример изменения топологии STP. Как видно на рисунке, соединение между коммутаторами SW 3 и SW 5 оборвалось, и теперь нет прямого соединения меду коммутаторами SW 3 и SW 5.
 
Рисунок 19. Пример обрыва соединения
Рисунок 19. Пример обрыва соединения
 
Шаги по восстановлению соединения с коммутатором SW 5:
1. Соединение между коммутаторами SW 3 и SW 5 оборвалось.
2. Коммутатор SW 5 прекратил получать BPDUs от коммутатора SW 3.
3. Коммутатор SW 5 ожидает Max age (20 секунд) и начинает обновлять топологию.
4. Коммутатор SW 3 отправляет пакет TCN через RP порт, чтобы информировать корневой коммутатор (SW 1) об изменении в топологии сети.
5. Коммутатор SW 1 подтверждает получение TCN, отправкой TCA.
6. Коммутатор SW 1 отправляет всем коммутаторам пакет BPDU, с выставленным битом TC (Topology Change), чтобы информировать все коммутаторы об изменении топологии сети.
После получения пакета BPDU с битом TC, каждый коммутатор удаляет из своей базы MAC адреса, которые старше 15 секунд. Это делается для того, чтобы в базе остались только активные MAC адреса, а остальные адреса будет собирать алгоритм протокола STP.
7. Коммутатор SW 5 обновляет топологию STP и начинает передавать данные через коммутатор SW 4.
 
На рисунке 20 показан пример восстановления топологии STP. В этом примере, соединение между коммутаторами SW3 и SW 5, было восстановлено.
 
Рисунок 20. Пример восстановления топологии STP
Рисунок 20. Пример восстановления топологии STP
 
Шаги по восстановлению соединения между коммутаторами SW 3 и SW 5:
1. Коммутатор SW 5 получает BPDU от коммутатора SW 3.
2. Коммутаторы SW 3 и SW 5 отправляют TCN на корневой коммутатор (SW 1).
3. Коммутатор SW 5 блокирует оба RP порта и недавно подключенный порт, чтобы можно было начать процесс обновления топологии STP.
4. Коммутатор SW 1 отправляет TCA, подтверждая получение TCN.
6. Коммутатор SW 1 отправляет всем коммутаторам пакет BPDU, с выставленным битом TC (Topology Change), чтобы информировать все коммутаторы об изменении топологии сети.
После получения пакета BPDU с битом TC, каждый коммутатор удаляет из своей базы MAC адреса, которые старше 15 секунд. Это делается для того, чтобы в базе остались только активные MAC адреса, а остальные адреса будет собирать алгоритм протокола STP.
6. Коммутатор SW 5 завершает построение топологии STP и восстанавливает путь к корневому коммутатору SW 1, через коммутатор SW 3. Также он отключает путь через SW 4.
 
 
2.3.4.8 Rapid Spanning Tree (802.1w)
Протокол Rapid Spanning Tree (RSTP), был разработан для быстрого изменения топологии. В отличие от стандартного STP, использующего временные интервалы для сбора топологии сети, RSTP использует двухстороннюю передачу данных между активными портами. Коммутаторы сохраняют таблицы MAC адресов активных портов, участвующих в формировании Spanning Tree, что делает возможным обновление конфигурации более быстрым.
 
RSTP был построен на основе стандартного протокола STP, и он использует такие же механизмы определения топологии и корневого коммутатора. Также он создан с поддержкой обратной совместимости со стандартным STP (802.1d), где используется Common Spanning Tree (CST) для VLAN сетей. Однако у него есть собственные методы, позволяющие создавать несколько вариантов Spanning Tree, при использовании VLAN сетей.
Стандарты IEEE, основанные на RSTP, позволяют создавать единственное дерево для всех VLAN, работающих в одном STP домене.
 
 
Как работает Rapid Spanning Tree
Первоначальное построение архитектуры сети, у RSTP занимает столько же времени, как и у STP. Однако, когда топология сети построена, и все коммутаторы подключены, любые операции с сегментами сети (например добавление порта, восстановление соединения), происходят мгновенно, и не требуют такого количества времени, как при использовании стандартного протокола Spanning Tree. В зависимости от размеров сети, время, которое требуется на обновление топологии, варьируется от десяти миллисекунд, до нескольких секунд.
 
Когда коммутаторы обнаруживают изменения в топологии сети, они очищают свои таблицы MAC адресов и отправляют пакет TCN (Topology Change Notification), на другие коммутаторы, пропуская таймауты STP. Быстрота изменения топологии сети, в случае сбоев элементов сети, достигается за счет отсутствия таймаутов. Для обеспечения быстрого восстановления топологии, RSTP выполняет следующие действия:
◆ Отслеживает статусы MAC адресов и отключения нефункционирующих портов.
◆ Использует пакеты BPDU, для определения изменений в топологии сети.
◆ Отслеживает статусы портов, которые предоставляют альтернативные пути к корневому коммутатору.
Если пропадает путь к порту корневого коммутатора, RSTP быстро находит альтернативный порт и моментально отправляет пакеты через резервный путь.
◆ Использует соединения точка-точка, которое требует меньшее время на синхронизацию, в отличие от переназначения порта.
 
 
Статусы портов протокола Rapid Spanning Tree
Rapid Spanning-Tree использует метод быстрого переключения между статусами STP. Для этого, в место пяти статусов оригинального протокола Spanning Tree, он использует четыре.
Discarding
Learning
Forwarding
Disabled – Также как и в оригинальном протоколе Spanning Tree, данный статус устанавливается вручную.
На таблице 2 показано соответствие статусов портов, между 802.1D и 802.1w.
 
Table 2 Port states and function
Статус порта в STP (802.1D)
Статус порта в RSTP (802.1w)
Порт включен в активную топологию?
Порт ищет MAC адреса?
Disabled
Discarding
Нет
Нет
Blocking
Discarding
Нет
Нет
Listening
Discarding
Да
Нет
Learning
Learning
Да
Да
Forwarding
Forwarding
Да
Да
 
 
Функции портов в протоколе Rapid Spanning Tree
В сети, порт может выполнять различные функции. Функции корневого и ближайшего к корневому порту остаются, а функция заблокированного порта, в этом протоколе, разбивается на резервный и альтернативный порты. Функция порта в STP, основывается на BPDUs.
Root Port (корневой порт) — это порт, который ближе всего к корневому коммутатору, с точки зрения веса пути.
Designated Port (определенный порт) — Это порт, который получает BPDU от корневого порта.
Alternate Port (альтернативный порт) — порт коммутатора, который получает BPDU от корневого коммутатора, но по второму пути.
Glossary Link Backup Port (резервный порт) — данный порт схож с альтернативным портом, но получает BPDU от самого себя. В данном случае, это может быть порт коммутатора, который переправляет BPDU от корневого коммутатора, и получает BPDU, через другой порт.
Edge Port (Крайний порт) — Настраиваемый порт, который подсоединяется к конечному устройству и не может создавать межкоммутаторную петлю. Этот порт пропускает все этапы инициализации и сразу переходит в статус Forwarding.
 
 

2.3.4.9 Multiple Spanning Tree (802.1s)
Стандартом IEEE, определен протокол Multiple Spanning Tree Protocol (MSTP), предназначенный для использования STP в VLAN.
До этого, каждая сеть VLAN, использовала свой протокол STP, и были проблемы с совместимостью протоколов между разными производителями оборудования. Протокол Multiple Spanning Tree Protocol, является расширением протокола RSTP и предназначен для расширения возможностей использования VLAN сетей. MSTP используется для настройки различных Spanning Tree, для каждой VLAN. Также его называют Multiple Spanning-Tree Instances (MSTI).
 

Добавить комментарий


Защитный код
Обновить