Избавляемся от широковещательного шторма с помощью STP

NetCloud

Простыми словами о сетевых технологиях

Избавляемся от широковещательного шторма с помощью STP

Широковещательный шторм — передача большого количества пакетов в сети, часто с последующим увеличением их количества. Причины широковещательного шторма:

Петля коммутации — состояние в сети, при котором происходит бесконечная пересылка фреймов между коммутаторами, подключенными в один и тот же сегмент сети.

cv_31c

Единственной возможностью перекрыть циркулирование фрейма между сегментами сети является включение одного из каналов связи между ними. Данную функцию реализует протокол STP, который оставляет между сегментами только один возможный канал связи.

STP (Spanning Tree Porotocol) — сетевой протокол, предназначенный для автоматического удаления циклов (петель коммутации) из топологии на канальном уровне в Ethernet сетях. Протокол работает на канальном уровне. STP позволяет сделать топологию избыточной на физическом уровне, но при этом логически блокировать петли. Достигается это за счет того, что STP отправляет сообщения BPDU и обнаруживает фактическую топологию сети. А затем, определяя роли коммутаторов и портов, часть портов блокирует так, чтобы в итоге получить топологию без петель.

Для того, чтобы определить какие порты заблокировать, а какие будут передавать данные, STP выполняет следующее:

В итоге получается древовидная структура (математический граф) с вершиной в виде корневого коммутатора. Ранее было упомянуто, что коммутаторы обмениваются между собой пакетами BPDU. BPDU (Bridge Protocol Data Unit) — фрейм протокола управления сетевыми мостами.

250px-g0803_configuration-bpdu

Рассмотрим формат пакета:

Познакомившись с форматом пакета BPDU, рассмотрим две ситуации: первая — процесс построения дерева после включения STP на коммутаторах, вторая — изменение топологии сети после обрыва одного из линков.

Построение дерева:

Изменение топологии:

 

Настройка STP на управляемом коммутаторе Dlink DES-3528 

В коммутационном шкафу была собрана схема для изучения протокола STP.

net

После сборки схемы была замечена высокая интенсивность мигания индикаторов портов, обусловленная тем что через порты коммутатора проходит большой трафик. На компьютере PC5 в диспетчере задач отмечалась высокая загрузка ЦП.

cp1

Предполагалось, что причиной такой нагрузки на коммутаторы и ЦП компьютеров является широковещательный шторм, связанный с намеренно созданными петлями коммутации.

Протокол STP, поддерживаемый используемыми коммутаторами, устраняет данные петли и приводит топологию сети к древовидной структуре.

На коммутаторе SW5 командой show stp проверялся статус протокола STP – включен или выключен.

disable_stp

Выяснилось, что протокол STP на коммутаторах SW1 – SW5 был выключен. Командой enable stp включаем протокол STP на всех коммутаторах и проверяем загрузку ЦП компьютера.

enable_stp

cp2

Загрузка ЦП упала после включения протокола STP. Отсюда можно сделать вывод, что высокая нагрузка на процессор была связана с широковещательным штормом, а протокол STP устранил эту проблему.
При просмотре статуса STP show stp была выведена следующая информация:

С помощью команды show stp instance 0 выведем информацию о дереве протокола STP.

show_stp_instance

Команда выводит следующие поля:

С помощью команды show stp port 1-7 просмотрим информацию по всем портам коммутатора.

port1

port4

port5

port6

Информация о портах

По полученным данным можно построить логическую топологию сети. Из рисунков выше видно, что порт 1 и 6 являются назначенным (Designed), порт 5 альтернативный (Alternative), порт 4 корневой (Root). Помимо ролей портов, можно также узнать их состояние. Порты 1,4,6 находятся в состоянии пересылки (Forwarding) — то есть в данный момент они в работе. Порт 5 находится в состоянии блокировки (Discarding). Получается альтернативный порт в данный момент заблокирован и через него не будут передаваться кадры. Порты 2, 3, 6, 7 не показаны на скриншотах так как они находятся в состоянии Disabled — выключены. Иными словами, данные порты не задействованы в схеме.

В итоге, получив аналогичную информацию со всех остальных коммутаторов SW1, SW2, SW3, SW4, мы можем воспроизвести текущую топологию сети и построить дерево STP.

network_stp

tree

Обрыв кабеля и перерасчет маршрутов в схеме

В собранной схеме в нескольких местах был произведен обрыв. Место обрыва определялось с помощью команды show stp port 1-7. В том случае если рабочий порт находился в состоянии Disabled (Выключено) делался вывод о том, что на этом месте произошел обрыв. Например, для коммутатора SW5 четвертый корневой порт находился в состоянии Disabled. Кроме того выяснилось, что
второй порт коммутатора SW2 также находился в состоянии Disabled.

port4_sw5_error

В результате проверки, было локализовано место обрыва. Как видно из рисунка выше на SW5 порт 4, который ранее был корневым (Root), в данный момент выключен (Disabled). Также на SW1 корневой порт 2 также находится в состоянии disabled.

network_after_break

В результате обрыва произошло перенаправление маршрутов к Root Bridge (корневому коммутатору). Для перенаправления использовались Alternative Port (альтернативные порты). В итоге поменялось дерево сети.

tree_after_break

 

Настройка приоритетов на коммутаторах Dlink DES-3528

Настроим приоритеты на коммутаторах таким образом, чтобы при отключении корневого коммутатора SW2 корневым стал SW4. После чего при отключении SW4 корневым стал SW3. При настройке приоритетов учитывалось два обстоятельства: во-первых чем ниже приоритет коммутатора, тем выше вероятность того, что он станет корневым; во-вторых приоритетность коммутатора должны быть кратна 4096. Исходя из поставленной задачи и учитывая тот факт, что на всех коммутаторах стоит приоритетность по умолчанию, равная 32768, было сделано следующее.

Настроим приоритет коммутатора командой  config stp priority. Для SW2 зададим самый низкий приоритет, для SW4 приоритет 8192, для SW3 оставим приоритет по-умолчанию 16384.

SW2 > config stp priority 4096

SW4 > config stp priority 8192

Выведем информацию о приоритете коммутаторов SW2, SW4.

priority_sw2

priority_sw4

 

В результате отключения коммутатора SW2 произошло перенаправление корневых портов в соответствии с приоритетами коммутаторов. Корневым коммутатором стал SW4. На SW5 корневым портом был назначен порт 6.

sw2-death

redirect-from-sw5-sw2-enable-sw4-root

 

Протокол RSTP

RSTP (Rapid Spanning Tree Protocol) — быстрый протокол покрывающего дерева. Версия протокола STP с ускоренной реконфигурацией дерева, использующего для исключения петель в соединениях коммутаторов.

По сравнению с STP уменьшилось время построения топологии, а также время восстановления работоспособности сети. Что позволило уменьшить это время? В протоколе RSTP есть только три состояния порта (в отличие от STP — 4 состояния). Состояния «отключен», «блокирован», «прослушивание» портов STP были заменены в одно состояние «сбрасывание».


 

Обсуждение закрыто.