Основные ошибки коммутации и способы их устранения
В результате роста и расширения предприятий возникла потребность в
использовании нескольких коммутаторов для обеспечения
взаимодействия оконечных систем и служб, необходимых для
повседневной работы. Однако соединение нескольких коммутаторов
создает дополнительные проблемы. Между коммутаторами можно
установить отдельные двухточечные каналы связи, по которым
оконечные системы могут пересылать кадры на узлы назначения,
обнаруженные другими коммутаторами в широковещательном домене.
Однако отказ любого такого канала приводит к немедленной изоляции
нижестоящего коммутатора и всех оконечных систем, к которым
подключен канал. Для решения данной проблемы рекомендуется
обеспечить резервирование каналов в коммутационной сети.
Резервные каналы используются в сети коммутации Ethernet для
резервирования каналов и повышения надежности сети. Однако
использование резервных каналов может привести к возникновению
петель, что, в свою очередь, приводит к резкому ухудшению качества
связи и возникновению серьезных перебоев в работе сети.

Одним из начальных эффектов избыточных коммутационных петель
является передача широковещательных штормов. Это происходит, когда
оконечная система пытается обнаружить пункт назначения, о котором не
знают ни сама система, ни коммутаторы на пути переключения.
Следовательно, широковещательная передача генерируется оконечной
системой, которая подвергается лавинной рассылке от принимающего
коммутатора.
Эффект лавинной рассылки означает, что кадр передается через все
интерфейсы, за исключением интерфейса, по которому кадр был
получен. В этом примере хост A генерирует кадр, который принимает
коммутатор B, который впоследствии пересылается по всем другим
интерфейсам. Подключенные коммутаторы A и C принимают экземпляр
кадра, и лавинно рассылают кадр по всем другим интерфейсам. Эффект
непрерывной лавинной рассылки приводит к тому, что коммутаторы A и
C лавинно рассылают экземпляры кадра от одного коммутатора к
другому, которые затем возвращаются на коммутатор B, и, таким
образом, цикл продолжается. Повторяющийся эффект лавинной
рассылки приводит к тому, что оконечные станции принимают множество
экземпляров кадра, что вызывает прерывания и резкое снижение
производительности коммутатора.

Коммутаторы должны вести записи пути, по которым пункт назначения
является доступным. Это можно идентифицировать с помощью
ассоциации MAC-адреса источника, указанного в кадре, с интерфейсом,
по которому был получен кадр. Только один экземпляр MAC-адреса
может быть сохранен в таблице MAC-адресов коммутатора, и в случае
приема второго экземпляра MAC-адреса приоритетной будет считаться
более свежая информация.
В этом примере коммутатор B обновляет таблицу MAC-адресов
информацией о MAC-адресе хоста A и связывает этот источник с
интерфейсом G0/0/3, — интерфейсом порта, по которому был получен
кадр. Поскольку в коммутируемой сети происходит неуправляемая
лавинная рассылка кадров, выполняется повторный прием кадра с тем
же MAC-адресом источника, что и у хоста А, однако на этот раз прием
кадра осуществляется по интерфейсу G0/0/2. Поэтому коммутатор B
должен сделать вывод, что хост, который был первоначально доступен
по интерфейсу G0/0/3, теперь доступен по G0/0/2, и будет
соответственно обновлять таблицу MAC-адресов. Результат этого
процесса приводит к нестабильности MAC-адресов и продолжает
происходить бесконечное число раз между интерфейсами портов
коммутатора, соединяющими коммутатор A и коммутатор C, поскольку
происходит лавинная рассылка кадров в обоих направлениях как часть
эффекта широковещательного шторма

Задача коммутационной сети заключается в способности поддерживать
резервирование с переключением, чтобы избежать изоляции оконечных
систем в случае сбоя системы коммутации или канала, и в способности
не допускать разрушительного воздействия коммутационных петель в
топологии коммутации, которая реализует избыточность. В результате
многолетних разработок было реализовано решение протокола
связующего дерева (STP), позволяющее предотвратить влияние
коммутационных петель. Связующее дерево работает по принципу,
согласно которому резервные (избыточные) каналы должны быть
логически отключены, чтобы гарантировать топологию без петель, а
вторичные каналы должны включаться динамически в случае отказа
первичного тракта коммутации, тем самым удовлетворяя требование
резервирования сети в рамках топологии, свободной от петель.
Коммутаторы, на которых работает STP, в процессе обмена
информацией друг с другом обнаруживают петли в сети и блокируют
определенные интерфейсы для отключения петель. STP продолжает
оставаться важным протоколом для локальных сетей уже более 40 лет

Удаление любой потенциальной возможности возникновения петель
служит основной целью связующего дерева, для которого сформирована
инвертированная древовидная архитектура. В основе этого логического
дерева лежит корневой мост/коммутатор. Корневой мост представляет
собой логический центр, но не обязательно физический центр сети с
поддержкой STP. Выделенный корневой мост способен динамически
изменяться в зависимости от топологии сети, как в случае, когда
существующий корневой мост не может продолжать работать в качестве
корневого моста. Некорневые мосты считаются нижестоящими по
отношению к корневому мосту, и связь с некорневыми мостами
осуществляется в направлении от корневого ко всем некорневым
мостам. В любой фиксированный момент времени в конвергентной сети
с поддержкой STP может существовать только один корневой мост.

Обнаружение корневого моста для сети STP является основной задачей,
выполняемой для формирования связующего дерева. Протокол STP
работает на основе выборов, посредством которых определяется роль
всех коммутаторов. Идентификатор моста является средством
обнаружения корневого моста. Он состоит из двух частей: первая – это
16-битный приоритет моста, а вторая – 48-битный MAC-адрес.
Устройство, которое содержит самый высокий приоритет (наименьший
идентификатор моста), выбирается в качестве корневого моста для сети.
При сравнении идентификаторов мостов первоначально учитывается
приоритет моста, а там, где значение приоритета не может однозначно
идентифицировать корневой мост, в качестве прерывателя связи
используется MAC-адрес. Идентификатором моста можно управлять
путем изменения приоритета как средства для выбора данного
коммутатора в качестве корневого моста, часто в поддержку
оптимизированной сети.

Топология связующего дерева основана на передаче конкретной
информации для определения роли и статуса каждого коммутатора в
сети. Блок данных протокола моста (BPDU) упрощает связь в сети
связующего дерева. В STP используются два типа кадров BPDU.
Конфигурационный (Configuration) BPDU изначально создается корневым
узлом и распространяется в нисходящем направлении, чтобы
гарантировать, что все некорневые мосты осведомлены о состоянии
топологии связующего дерева и, что важно, корневого моста. BPDU TCN
является вторым типом BPDU, который распространяет информацию об
изменении топологии в восходящем направлении к корневому узлу.
Блоки данных протокола моста непосредственно не передаются
коммутаторами, вместо этого информация, которая передается в BPDU,
часто используется для генерирования собственного BPDU коммутатора.
Конфигурационный BPDU передает ряд параметров, которые
используются мостом, чтобы сначала определить наличие корневого
моста и гарантировать, что этот корневой мост имеет наивысший
приоритет. Считается, что каждый сегмент LAN имеет назначенный
коммутатор, который отвечает за распространение BPDU в нисходящем
направлении на неназначенные коммутаторы.
Поле идентификатора моста используется для определения текущего
назначенного коммутатора, от которого ожидается получение BPDU.
BPDU генерируется и пересылается корневым мостом на основе
таймера Hello, который по умолчанию равен 2 секундам. Поскольку
BPDU принимаются нижестоящими коммутаторами, новый BPDU
генерируется с параметрами, определенными локально, и отправляется
всем неназначенным коммутаторам сегмента LAN.

Еще одна особенность BPDU – распространение двух параметров,
связанных со стоимостью пути. Стоимость корневого пути (RPC)
используется для измерения стоимости пути к корневому мосту с целью
определения кратчайшего пути связующего дерева и, таким образом,
создания топологии без петель. Когда мост является корневым мостом,
стоимость корневого пути равна 0.
Стоимость пути (PC) – это значение, связанное с корневым портом,
являющимся портом нижестоящего коммутатора, который подключается
к сегменту LAN, в котором находится назначенный коммутатор или
корневой мост. Значение используется для генерирования стоимости
корневого пути для коммутатора путем добавления стоимости пути к
значению RPC, полученному от назначенного коммутатора в сегменте
LAN, для того чтобы определить новое значение стоимости корневого
пути. Это новое значение стоимости корневого пути передается в BPDU
назначенного коммутатора и используется для предоставления
стоимости пути корневому узлу.

Современные коммутаторы поддерживают ряд альтернативных стандартов стоимости пути, которые могут быть реализованы на основе
требований предприятия, например, в тех случаях, когда используется мультивендорная сеть. Традиционно используется стандартная стоимость пути 802.1t по умолчанию, обеспечивая более
высокую метрическую точность для расчета стоимости пути.
Сеть связующего дерева определяет роли порта. Роли портов
используются для определения поведения интерфейсов,
задействованных в активной топологии связующего дерева. Для
протокола связующего дерева определены три роли порта: назначенный,
корневой и альтернативный.
Назначенный порт связан с корневым мостом или назначенным мостом
сегмента LAN и определяет нисходящий путь, по которому
пересылаются Конфигурационные BPDU. Корневой мост отвечает за
генерирование конфигурационных BPDU для всех нижестоящих
коммутаторов, и поэтому интерфейсы портов корневого моста всегда
принимают роль назначенного порта.
Корневой порт идентифицирует порт, который предлагает путь к
корневому каталогу с наименьшей стоимостью. Данный пример
демонстрирует ситуацию, когда к корневому устройству имеется два
возможных обратных пути, однако в качестве корневого порта
назначается только тот порт, который предлагает самую низкую
стоимость корневого пути. Если два или более портов предлагают
одинаковую стоимость корневого пути, решение о том, какой интерфейс
порта будет выбран в качестве корневого, определяется путем
сравнения идентификатора моста в конфигурационном BPDU, который
получает каждый порт.
Любой порт, которому не присвоена роль назначенного или корневого
порта, считается альтернативным портом и может принимать BPDU от
назначенного коммутатора для сегмента LAN с целью мониторинга
состояния резервного канала, но обрабатывать полученный BPDU не
будет. Первоначально данная роль была определена в стандарте IEEE
802.1D-1990 для STP как роль резервного порта, однако в процессе
пересмотра стандартов IEEE 802.1D-1998 она была изменена на роль
альтернативного порта.

Идентификатор порта представляет собой окончательное средство для
определения ролей порта наряду с идентификатором моста и
механизмом стоимости корневого пути. В сценариях, где два или более
порта предлагают одинаковую стоимость корневого пути обратно к
корневому узлу, и в которых вышестоящий коммутатор и мост имеют
одинаковые идентификаторы, главным образом из-за того, что
вышестоящий коммутатор также является коммутатором для обоих
путей, для определения ролей порта должен применяться ID порта.
Идентификатор порта привязан к каждому порту и содержит приоритет и
номер порта, который связан с интерфейсом порта. Приоритет порта –
это значение в диапазоне от 0 до 240, присваиваемое с шагом 16 и
представленное значением 128 по умолчанию. Если оба интерфейса
портов имеют одинаковое значение приоритета порта, то для
определения роли порта используется уникальный номер порта. Самый
высокий идентификатор порта (самый низкий номер порта) представляет
порт, назначенный в качестве корневого порта, а для оставшегося порта
по умолчанию используется роль альтернативного порта

Корневой мост отвечает за генерирование конфигурационных BPDU на
основе интервала BPDU, который определяется таймером Hello. Таймер
Hello по умолчанию имеет значение 2 секунды. Конвергентная сеть
связующего дерева должна гарантировать, что в случае сбоя сети
коммутаторы в сети с поддержкой STP будут осведомлены о сбое.
Таймер Max Age связан с каждым BDPU и описывает жизненный цикл
BPDU с точки зрения корневого моста и в конечном итоге контролирует
срок действия BDPU, прежде чем он будет считаться устаревшим.
Таймер MAX Age по умолчанию имеет значение 20 секунд.
После получения конфигурационного BPDU от корневого моста,
считается, что нижестоящему коммутатору требуется приблизительно 1
секунда для генерирования нового BPDU и передачи сгенерированного
BPDU в нисходящем направлении. Чтобы компенсировать это время,
значение MSG Age применяется к каждому BPDU, чтобы показать
смещение между MAX Age и задержкой распространения, и для каждого
коммутатора это значение увеличивается на 1.
Когда BPDU распространяется от корневого моста к нижестоящим
коммутаторам, таймер MAX Age обновляется. Таймер MAX Age начинает
обратный отсчет и истекает, когда значение MAX Age превышает
значение возраста сообщения, чтобы гарантировать, что время жизни
BPDU ограничено значением MAX Age, определенным корневым мостом.
В случае, если BPDU не получен до истечения таймера MAX Age,
коммутатор будет рассматривать информацию BPDU как устаревшую на
данный момент и сделает вывод, что в сети STP произошел сбой.

Процесс схождения (конвергенции) связующего дерева – это
автоматизированная процедура, которая запускается в момент запуска
коммутатора. Все коммутаторы при запуске принимают на себя роль
корневого моста в сети коммутации. Поведение корневого моста по
умолчанию заключается в присвоении роли назначенного порта всем
интерфейсам портов, чтобы включить пересылку BPDU через все
подключенные интерфейсы портов. Поскольку BPDU принимают
одноранговые коммутаторы, то появляется необходимость сравнить
идентификаторы моста, чтобы определить наилучшего кандидата на
роль корневого моста. В случае, если полученный BPDU содержит
идентификатор моста нижестоящего по отношению к корневому
устройству, принимающий коммутатор продолжит анонсировать
собственный конфигурационный BPDU на соседний коммутатор.
Если BDPU содержит идентификатор вышестоящего устройства, то
коммутатор признает наличие лучшего кандидата на роль корневого
моста, и прекращает распространять BPDU в направлении, по которому
был получен BPDU с ID вышестоящего устройства. Коммутатор также
изменит поле root ID в своем BPDU, чтобы анонсировать идентификатор
моста кандидата на корневой мост в качестве текущего нового корневого
моста.

Выбранный корневой мост генерирует конфигурационный BPDU для
других некорневых коммутаторов. BPDU содержит стоимость корневого
пути, которая будет сообщена нисходящим коммутаторам для
определения кратчайшего пути. Стоимость корневого пути, переносимая
в BPDU, который генерируется корневым мостом, всегда имеет значение
0. Затем получающие нижестоящие коммутаторы добавят эту стоимость
к стоимости пути интерфейсов портов, на которых был получен BPDU, и
с которых коммутатор может идентифицировать корневой порт.
В случае, если в двух или более сегментах локальной сети существует
один и тот же восходящий коммутатор, для определения ролей порта
используется одинаковая стоимость корневого пути. Если между двумя
коммутаторами существует равная стоимость корневого пути, как в
данном примере, идентификатор моста используется для определения
того, какой коммутатор представляет собой назначенный коммутатор для
сегмента LAN. Если порт коммутатора не является ни корневым портом,
ни назначенным портом, порту назначается роль альтернативного порта.

В качестве элемента корневого моста и при определении роли порта каждый
коммутатор проходит через несколько состояний. Любой порт, который отключен
администратором, будет считаться отключенным. Включение порта в
отключенном состоянии приведет к переходу в состояние блокировки ①.
Порт в состоянии блокировки не может пересылать пользовательский трафик, но
может принимать кадры BPDU. Любой BPDU, полученный по интерфейсу порта в
состоянии блокировки, не будет использоваться для заполнения таблицы MACадресов коммутатора, но будет использоваться, чтобы определить
необходимость перехода в состояние прослушивания. Состояние
прослушивания позволяет передавать информацию BPDU после согласования
роли порта в STP ②, но имеет ограничение на заполнение таблицы MACадресов информацией о соседних устройствах.
Переход в состояние блокировки из состояния прослушивания или других
состояний может произойти в том случае, если роль порта изменится на роль
альтернативного порта. Переход из состояния прослушивания к состоянию
изучения и от состояния изучения к состоянию пересылки в значительной
степени зависит от таймера forward delay, который должен гарантировать, что
любое распространение информации BDPU на все коммутаторы в топологии
связующего дерева возможно до того, как произойдет переход между
состояниями.
Состояние изучения поддерживает ограничение пересылки пользовательского
трафика, чтобы гарантировать предотвращение образования любых
коммутационных петель, но допускает заполнение таблицы MAC-адресов по
всей топологии связующего дерева для обеспечения стабильной работы сети
коммутации. После периода forward delay происходит переход в состояние
пересылки. Состояние отключения применимо в любое время в течение периода
перехода между состояниями с помощью ручного вмешательства (т. е. команды
shutdown) (5)

События, которые вызывают изменение установленной топологии
связующего дерева, могут происходить различными способами, на
которые протокол связующего дерева должен реагировать, чтобы
быстро восстановить стабильную и свободную от петель топологию.
Сбой корневого моста — это основной пример того случая, где
необходима повторная сходимость (конвергенция). Некорневые
коммутаторы используют прерывистый импульс BPDU от корневого
моста, чтобы поддерживать свои индивидуальные роли в качестве
некорневых коммутаторов в топологии STP. В случае отказа корневого
моста нижестоящие коммутаторы не смогут получить BPDU от корневого
моста и, следовательно, также прекратят распространение BPDU в
нисходящем направлении. Таймер MAX Age обычно сбрасывается до
установленного значения (по умолчанию 20 секунд) после получения
каждого BPDU в нисходящем направлении.
В случае потери BPDU таймер MAX Age начинает отсчитывать время
жизни текущей информации BPDU каждого некорневого коммутатора на
основе формулы (MAX Age – MSG Age). В тот момент, когда значение
MSG Age больше значения таймера MAX Age, информация BPDU,
полученная от корневого устройства, становится недействительной, и
некорневые коммутаторы начинают выполнять роль корневого моста.
Конфигурационные BPDU снова перенаправляются из всех активных
интерфейсов в попытке обнаружить новый корневой мост. Сбой
корневого моста приводит к продолжительности восстановления
приблизительно 50 секунд из-за периода сходимости (конвергенции) Max
Age + 2x Forward Delay

В случае сбоя непрямого канала коммутатор теряет соединение с
корневым мостом из-за сбоя порта или носителя или из-за ручного
отключения интерфейса, выполняющего роль корневого порта.
Коммутатор узнает о сбое, и, поскольку он получает BPDU только от
корневого узла в одном направлении, он сразу же теряет корневой мост
и занимает положение нового корневого моста.
В этом примере коммутатор B начинает пересылать BPDU на
коммутатор C, чтобы уведомить о положении коммутатора B как нового
корневого моста, однако коммутатор C продолжает получать BPDU от
исходного корневого моста и поэтому игнорирует любой BPDU от
коммутатора B. Начинается старение состояния альтернативного порта
по таймеру MAX Age, так как интерфейс больше не получает BPDU,
содержащий корневой идентификатор корневого моста.
По истечении таймера MAX Age коммутатор C изменяет роль
альтернативного порта на роль назначенного порта и переходит к
пересылке BPDU от корневого устройства к коммутатору B. В результате
коммутатор признает себя как корневое устройство и переводит
интерфейс порта в роль корневого порта. Это является частичным
сбоем, но из-за необходимости ожидания периода, эквивалентного MAX
Age + 2x forward delay, для полного восстановления топологии STP
требуется приблизительно 50 секунд.

Окончательный сценарий, включающий восстановление конвергенции
связующего дерева, происходит, когда несколько сегментов LAN
подключены между двумя коммутаторами, один из которых в данный
момент является активным каналом, а другой обеспечивает
альтернативный путь к корневому устройству. В случае возникновения
события, которое приводит к тому, что коммутатор, который получает
BPDU, обнаруживает потерю соединения на своем корневом порту,
например, в случае сбоя корневого порта или сбоя канала, о чем
незамедлительно узнает нижестоящий коммутатор, коммутатор может
мгновенно перейти на альтернативный порт.
Переход выполняется через состояния прослушивания, изучения и
пересылки и обеспечивает восстановление в течение периода 2x forward
delay. В случае любого сбоя, когда активируется канал, обеспечивающий
наилучший путь, топология связующего дерева должна быть
преобразована для применения оптимальной топологии связующего
дерева.

В конвергентной сети связующего дерева коммутаторы поддерживают
базы данных фильтров или таблицы MAC-адресов для управления
распространением кадров по топологии связующего дерева. Записи,
которые обеспечивают связь между MAC-адресатом и интерфейсом
порта пересылки, сохраняются в течение ограниченного периода
времени – 300 секунд (5 минут) по умолчанию. Изменение топологии
связующего дерева означает, что любые существующие записи таблицы
MAC-адресов, вероятно, станут недействительными из-за изменения
тракта коммутации и, следовательно, должны быть обновлены.
В этом примере показана существующая топология связующего дерева,
для которой коммутатор B имеет записи, позволяющие получить доступ к
хосту A через интерфейс Gigabit Ethernet 0/0/3 и хосту B через интерфейс
Gigabit Ethernet 0/0/2. На коммутаторе C смоделирован сбой, при котором
текущий корневой порт становится неактивным. Этот сбой вызывает
перерасчет топологии связующего дерева и активирует избыточную
линию связи между коммутатором C и коммутатором B.
Однако, после повторной конвергенции обнаруживается, что кадры
между хостами A и B не достигают пункта назначения. Поскольку записи
таблицы MAC-адресов еще не истекли по правилу 300 секунд, кадры,
достигающие коммутатора B, предназначенные для хоста B, продолжают
передаваться через интерфейс порта Gigabit Ethernet 0/0/2 и фактически
становятся «черными дырами», поскольку кадры пересылаются на
неактивный интерфейс порта коммутатора C.

Для решения проблемы таймаута для записей таблицы MAC-адресов,
который приводит к сохранению записей о недействительных маршрутах
после конвергенции связующего дерева, необходим дополнительный
механизм. Реализованный процесс называется процессом уведомления
об изменении топологии (TCN) и представляет новую форму BPDU для
работы протокола связующего дерева.
Этот новый BPDU называется BPDU TCN и отличается от
конфигурационного BPDU настройками значения 128 (0x80) для типа
BPDU. Функция BPDU TCN состоит в том, чтобы сообщать корневому
мосту восходящего потока о любых изменениях в текущей топологии,
тем самым позволяя корневому устройству отправлять уведомление в
конфигурационном BPDU всем нижестоящим коммутаторам, чтобы
сократить период таймаута для записей таблицы MAC-адресов до
эквивалентного значения таймера forward delay или до 15 секунд по
умолчанию.
Поле flags в конфигурационном BPDU содержит два поля Topology
Change (TC) – Изменение топологии и Topology Change Acknowledgement
(TCA) - Подтверждение изменения топологии. После получения BPDU
TCN корневой мост генерирует BPDU с наборами битов TC и TCA, чтобы
соответственно и уведомить об изменении топологии и
проинформировать нижестоящие коммутаторы о том, что корневой мост
принял BPDU TCN и, следовательно, передача TCN BPDU должна быть
прекращена.
Бит TCA должен оставаться активным в течение периода, равного
таймеру Hello (2 секунды), после чего конфигурация BPDU,
сгенерированная корневым мостом, будет поддерживать только бит TC в
течение периода (MAX Age + forward delay) или 35 секунд по умолчанию

Влияние BPDU TCN на процесс изменения топологии гарантирует, что
корневой мост будет уведомлен о любом сбое в топологии связующего
дерева, для которого корневой мост может генерировать необходимые
флаги для сброса записей текущей таблицы MAC-адресов на каждом
коммутаторе. Данный пример демонстрирует результаты изменения
топологии и влияния на таблицу MAC-адресов. Записи, относящиеся к
коммутатору B, были сброшены, далее обнаружены обновленные
записи, определяющие, что хост B теперь доступен через интерфейс
порта Gigabit Ethernet 0/0/1.
В случае отказа корневого моста в сети STP в качестве корневого моста
выбирается следующий лучший кандидат. В случае, если исходный
корневой мост снова становится активным, процесс выбора корневого
моста повторяется. Это приводит к простоям в сети коммутации, когда
выполняется конвергенция.
Стоимость корневого пути – это стоимость, связанная с путем к
корневому мосту, тогда как стоимость пути – это значение стоимости,
определенное для интерфейса на коммутаторе, которое добавляется к
стоимости корневого пути, чтобы определить стоимость корневого пути
для нижестоящего коммутатора.
Этот тест был открыт Пятница, 10 Июнь 2022, 16:22
Тестирование будет окончено в Суббота, 10 Ноябрь 2035, 16:22
Метод оценивания: Высшая оценка