BPDU (Bridge Protocol Data Unit).
Пакеты BPDU (рис.5.18.)содержат основную информацию, необходимую для построения топологии сети без петель:
• Идентификатор коммутатора, на основании которого выбирается корневой коммутатор;
• Расстояние от коммутатора-источника до корневого коммутатора (стоимость корневого маршрута);
• Идентификатор порта;
• Пакеты BPDU помещаются в поле данных кадров канального уровня, например, кадров Ethernet.
Коммутаторы обмениваются BPDU через равные интервалы времени (обычно 1-4с). В случае отказа корневого моста (что сигнализирует об изменении топологии) соседние коммутаторы, не получив пакет BPDU в течение заданного времени (Max Age), начинают пересчет cвязующего дерева.
Пакет BPDU имеет следующие поля (рис.5.18.)
• Идентификатор (ID) версии протокола STA - 2 байта. Коммутаторы должны поддерживать одну и ту же версию протокола STA, иначе может установиться активная конфигурация с петлями;
ID версии протокола STA | Версия | Тип BPDU | Флаг | ID корневого коммутатора | Расстояние до корня | ID коммутатора | ID порта | Время жизни сообщения | Максимальное время жизни сообщения | Интервал hello | Задержка смены состояния |
Рисунок 5.18. Формат конфигурационного BPDU
• Версия протокола STP – 1 байт;
• Тип BPDU - 1 байт. Существует два типа BPDU - конфигурационный BPDU, то есть заявка на возможность стать корневым коммутатором, на основании которой происходит определение активной конфигурации, и BPDU уведомления о реконфигурации, которое посылается коммутатором, обнаружившим событие, требующее проведения реконфигурации - отказ линии связи, отказ порта, изменение приоритетов коммутатора или портов;
• Флаги - 1 байт. Один бит содержит флаг изменения конфигурации, второй бит - флаг подтверждения изменения конфигурации;
• Идентификатор (ID корневого коммутатора - 8 байтов;
• Расстояние до корня - 2 байта;
• Идентификатор (ID) коммутатора - 8 байтов;
• Идентификатор порта - 2 байта;
• Время жизни сообщения - 2 байта. Измеряется в единицах по 0.5 с, служит для выявления устаревших сообщений. Когда пакет BPDU проходит через коммутатор, тот добавляет ко времени жизни пакета время его задержки данным коммутатором;
• Максимальное время жизни сообщения - 2 байта. Если пакет BPDU имеет время жизни, превышающее максимальное, то он игнорируется коммутаторами;
• Интервал hello (время приветствия), через который посылаются пакеты BPDU корневым коммутатором;
• Задержка смены состояний - 2 байта. Минимальное время перехода портов коммутатора в активное состояние. Такая задержка необходима, чтобы исключить возможность временного возникновения альтернативных маршрутов при неодновременной смене состояний портов во время реконфигурации.
Пакет BPDU уведомления о реконфигурации (см. Рис.5.19) имеет следующие поля:
• Идентификатор версии протокола STA - 2 байта;
• Версия протокола STP – 1 байт;
• Тип BPDU - 1 байт с установленным флагом реконфигурации топологии.
1…2 | ||
Идентификатор версии протокола STA | Версия протокола STP | Тип BPDU |
Рисунок 5.19.Формат пакета BPDU уведомления о реконфигурации
Пример работы STP
Для примера рассмотрены 3 коммутатора, подключенные с образованием петли (см. Рис. 5.20.). Таким образом, в сети могут возникнуть проблемы с зацикливанием пакетов. Например, пусть какой-либо компьютер в сети LAN1 посылает широковещательный пакет. В соответствии с логикой работы коммутаторов, коммутатор А передаст этот пакет во все
подключенные к нему сегменты, за исключением того, из которого он пришел. Коммутатор B получит этот пакет и передаст его коммутатору С. Коммутатор С, также получит широковещательный пакет от коммутатора А и передаст его коммутатору В. Тот в свою очередь, вернет его коммутатору A и так далее. Пакеты могут ходить по сети бесконечно долго, что может привести к нарушению работоспособности сети. В этом примере с помощью STP блокируется соединение между коммутаторами С и B.
Итак, после включения питания и загрузки каждый коммутатор начинает считать себя корневым. Когда он генерирует BPDU (через интервал hello), он помещает свой идентификатор в поле «идентификатор корневого коммутатора», расстояние до корня устанавливается в 0, а в качестве идентификатора порта указывается идентификатор того порта, через который будет передаваться BPDU.
Рисунок 5.20. - Схема перед применением Spanning Tree
Как только коммутатор получает BPDU, в котором имеется идентификатор корневого коммутатора, меньше его собственного, он перестает генерировать свои собственные кадры BPDU, и начинает ретранслировать только кадры нового претендента на звание корневого коммутатора. При ретрансляции кадров он наращивает расстояние до корня, указанное в пришедшем BPDU, на условное время сегмента, через который принят данный кадр. При ретрансляции кадров каждый коммутатор для каждого своего порта запоминает минимальное расстояние до корня. При завершении процедуры установления конфигурации покрывающего дерева, каждый коммутатор находит свой корневой порт - это порт, который ближе других портов находится по отношению к корню дерева.
Рассмотрим выборы корневых портов коммутаторов на примере (см. Рисунок 4). Когда коммутатор A (корневой мост) посылает BPDU, они содержат стоимость пути к корневому мосту равную 0. Когда коммутатор B получает эти BPDU, он добавляет стоимость пути Port 1 (4) к стоимости, указанной в полученном BPDU (0). Коммутатор B затем использует значение 4 и посылает BPDU со стоимостью пути к корню равной 4 через Port 3 и Port 2.
Когда коммутатор C получает BPDU от коммутатора B, он увеличивает стоимость пути к корню до 23 (4 + 19). Однако коммутатор C также получает BPDU от корневого коммутатора А через Port 1. Стоимость пути к корню в этом BPDU равна 0 и коммутатор C увеличивает ее стоимость до 4 (стоимость его Port 1 равна 4). Теперь коммутатор C должен выбрать единственный корневой порт. Коммутатор C выбирает Port 1 в качестве корневого, поскольку его стоимость пути к корню меньше. После этого коммутатор C начинает объявлять стоимость пути до корня равную 4 нижележащим коммутаторам.
Выборы корневого порта коммутатора В происходят аналогично и корневым портом для него становится Port 1 со стоимостью 4.
Итак, после включения питания и загрузки каждый коммутатор начинает считать себя корневым. Когда он генерирует BPDU (через интервал hello), он помещает свой идентификатор в поле «идентификатор корневого коммутатора», расстояние до корня устанавливается в 0, а в качестве идентификатора порта указывается идентификатор того порта, через который будет передаваться BPDU.
Рисунок 5.21. – После применения Spanning Tree
Кроме этого, коммутаторы выбирают для каждого сегмента сети назначенный порт. Для этого они исключают из рассмотрения свой корневой порт, а для всех своих оставшихся портов сравнивают принятые по ним минимальные расстояния до корня с расстоянием до корня своего корневого порта. Если у своего порта это расстояние меньше принятых, то это значит, что он является назначенным портом. Когда имеется несколько портов с одинаковым кратчайшим расстоянием до корневого коммутатора, то для выбора назначенного порта сегмента STP принимает решение на основе последовательного сравнения идентификаторов мостов и идентификаторов портов. Все порты, кроме назначенных переводятся в заблокированное состояние и на этом построение покрывающего дерева заканчивается. На коммутаторе В корневым портом является Port 1 (стоимость 4). Поэтому для сегмента коммутатор А – коммутатор В, назначенным портом будет Port 1 коммутатора А. На коммутаторе С корневым портом является Port 1 (стоимость 4). Поэтому для сегмента коммутатор А – коммутатор С, назначенным портом будет Port 2 коммутатора А. В сегменте коммутатор В – коммутатор С оба порта Port 3 и Port 2 имеют одинаковую стоимость пути, равную 23. В этом случае STP выберет назначенный порт сегмента на основе сравнения идентификаторов мостов. Поскольку идентификатор коммутатора С (20) меньше идентификатора коммутатора В (30), то назначенным портом для этого сегмента станет Port 2 коммутатора С. Port 3 на коммутаторе В заблокируется (см. Рис. 5.21).
Таким образом, в процессе построения топологии сети каждый порт коммутатора проходит несколько стадий (см. Рис.5.22.):
1. Порт активен или инициализация порта;
2. Порт отключен администратором или сбой порта;
3. Порт выбран в качестве корневого или назначенного порта;
4. Порт заблокирован;
5. Истек таймер смены состояний.
Blocking- При инициализации коммутатора все порты (за исключением отключенных) автоматически переводятся в состояние «Заблокирован». В этом случае порт принимает и обрабатывает только пакеты BPDU. Все остальные пакеты отбрасываются.
Рисунок 5.22. – Состояние портов в STP
Listening(прослушивание) - в этом состоянии порт продолжает принимать, обрабатывать и ретранслировать только пакеты BPDU. Из этого состояния порт может перейти в состояние «Заблокирован», если получит BPDU с лучшими параметрами, чем его собственные (расстояние, идентификатор коммутатора или порта). В противном случае, при истечении таймера смены состояний, порт перейдет в следующее состояние «Обучение».
Learning(обучение) – порт начинает принимать все пакеты и на основе адресов источника строить таблицу коммутации. Порт в этом состоянии все еще не продвигает пакеты. Порт продолжает участвовать в работе алгоритма STA, и при поступлении BPDU с лучшими параметрами переходит в состояние «Заблокирован». В противном случае, при истечении таймера смены состояний, порт перейдет в следующее состояние «Продвижение».
Forwarding(продвижение) - в этом состоянии порт может обрабатывать пакеты данных в соответствии с построенной таблицей коммутации. Также продолжают приниматься, передаваться и обрабатываться пакеты BPDU.
Disable(отключен) – в это состояние порт переводит администратор. Отключенный порт не участвует ни в работе протокола STP, ни в продвижении пакетов данных. Порт можно также вручную включить и он сначала перейдет в состояние Blocking. В процессе нормальной работы корневой коммутатор продолжает генерировать служебные пакеты BPDU, а остальные коммутаторы продолжают их принимать своими корневыми портами и ретранслировать назначенными. Если по истечении максимального времени жизни сообщения (по умолчанию — 20 с) корневой порт любого коммутатора сети не получит служебный пакет BPDU, то он инициализирует новую процедуру построения покрывающего дерева. Коммутаторы D-Link также поддерживают протокол Rapid STP (IEEE 802.1w), который обладает лучшим u1074 временем сходимости по сравнению с STP (меньше 1 секунды).
Ограничения в сетях с использованием повторителей, мостов и коммутаторов.
1. Не должно быть петель, т. е. между отправителем и получателем должен быть единственный путь.
2. Сегменты слабо изолированы друг от друга, т. е. не защищены от широковещательных сообщений со стороны отдельных ПК в сети.
3. Нельзя управлять трафиком (т. е. обменом данными) на основании информации, содержащейся в этих данных.
Эти недостатки можно устранить в случае применения маршрутизатора, они используется в больших сетях, которые в свою очередь могут состоять из более мелких составных частей (подсетей).
С применением маршрутизаторов используется специальная адресация, которая позволяет однозначно идентифицировать любой узел (т. е. РС) составной сети. Для этого применяется уникальная нумерация всех подсетей и нумерация всех узлов в пределах каждой подсети. Этот адрес помещается в заголовок пакета данных.
Дата добавления: 2018-11-25; просмотров: 3176;