Протокол SPT для мостов и коммутаторов

Функции обучения, фильтрации и передачи основаны на существовании одного логического пути между любыми двумя узлами сети. Наличие нескольких путей между устройствами, известных также как «активные петли», создает проблемы для сетей, построенных на основе мостов и коммутаторов. Под «активными петлями» понимаются логические и физические петли. Логические петли могут создаваться администратором сети специально для образования резервных связей.

Протокол STP [2] (в некоторых технических документах может встретиться название Spanning Tree Algorithm - STA) был разработан Digital Equipment Corporation, а впоследствии опубликован комитетом IEEE 802 в спецификации IEEE 802.1d. Основная цель разработки протокола была в устранении логических и физических петель в сетях, построенных с использованием мостов. Кроме того, протокол автоматически переконфигурирует сетевую топологию в случае обрывов линий связи или при аппаратных ошибках оборудования.

Принцип действия протокола STP рассмотрим на примере сети на рис. 5.6. Предположим, что станция А генерирует широковещательное сообщение. Оно будет получено коммутаторами Б и В и передано соответственно друг другу, как показано стрелками. После получения сообщения эти коммутаторы вновь перешлют его коммутатору А, и весь цикл повторится вновь. Похожая проблема возникает и в случае не широковещательного трафика, если коммутаторы еще не построили своих адресных таблиц. Решением проблемы является удаление всех петель из сетевой топологии с сохранением только одного пути между каждыми двумя станциями.

Для того чтобы протокол STP построил свободную от петель сетевую топологию, необходима поддержка стандарта IEEE 802.1d всеми коммутаторами и мостами, работающими в сети. Для функционирования протокола STP должен существовать способ обмена информацией между коммутаторами. Это достигается с помощью специальных пакетов Bridge Protocol Data Unit (BPDU), которые помещаются внутрь кадров канального уровня, например кадров Ethernet или FDDI. При этом желательно, чтобы все коммутаторы могли поддерживать общий групповой адрес, с помощью которого кадры, содержащие пакет BPDU, могут одновременно передаваться всем заинтересованным коммутаторам в сети. Иначе эти кадры рассылаются широковещательно. Формат пакета BPDU показан на рис. 5.7.

Поля пакета BPDU имеют следующие значения:

· ИД протокола - идентификатор протокола. Поле имеет нулевое значение;

· версия - поле имеет нулевое значение. Коммутаторы в сети должны поддерживать одну и ту же версию протокола, иначе может быть сформирована конфигурация с петлями;

· тип сообщения - содержит нулевое значение при нормальной работе протокола. Поле устанавливается в значение 80h при извещении об изменениях в сетевой топологии;

· флаги - используются только два бита. Первый бит сигнализирует об изменениях в сетевой топологии и обозначается ТС. Восьмой бит используется для подтверждения приема пакета BPDU с установленным битом ТС. Он имеет обозначение ТСА. Остальные шесть битов этого байта не используются;

· корневой ИД - идентификатор корневого коммутатора. Два первых байта поля - идентификатор коммутатора, оставшиеся шесть байтов - его физический адрес;

· стоимость пути до корня - характеризует суммарную стоимость пути до корневого коммутатора;

· ИД коммутатора - идентификатор коммутатора, отправляющего сообщение;

· ИД порта - идентифицирует порт коммутатора, из которого отправлено сообщение;

· возраст сообщения - время, прошедшее с момента отправки корневым коммутатором сообщения об обнаружении изменений в сетевой топологии;

· максимальный возраст - указывает время удаления из обращения текущего сообщения;

· время приветствия - промежуток времени между рассылками сообщений корневым коммутатором;

· задержка перехода - задержка, которую коммутаторы должны выждать перед переходом в новое состояние после изменения сетевой топологии. Такая задержка необходима, чтобы уменьшить вероятность временного возникновения петель во время реконфигурации.

Для построения предполагаемой топологии сетевой администратор должен задать два параметра: идентификатор коммутатора и стоимости портов. Идентификатор коммутатора - это уникальное восьмибайтовое число, задаваемое следующим образом: берется физический адрес устройства (шесть байт) и в начало добавляется определяемое сетевым администратором двухбайтовое число. Стоимость портов может назначаться либо сетевым администратором, либо автоматически по умолчанию. Сетевой администратор может назначить любое число в пределах от 0 до 65 535. По умолчанию это число устанавливается пропорционально поддерживаемой скорости передачи и вычисляется по следующей формуле:

Стоимость порта = (1000)/(Скорость передачи в порте в Мбайт/с).

Первым шагом работы протокола STP является выбор корневого коммутатора. Это достигается широковещательной рассылкой всеми коммутаторами пакетов BPDU на все порты. Сначала каждый коммутатор рекламирует самого себя в качестве корневого, помещая свой идентификатор в два поля: «Корневой ИД» и «ИД коммутатора» (см. рис. 5.8). При получении каким-либо коммутатором пакета, содержащего меньший идентификатор поля «Корневой ИД», чем его собственный, данный коммутатор перестает рассылать собственный идентификатор и начинает рассылать пакеты, содержащие меньший идентификатор. Состязание за право быть корневым коммутатором заканчивается, когда один из коммутаторов получит свой собственный BPDU-пакет, не измененный при прохождении через другие коммутаторы. Такой коммутатор считается корневым. В ситуации, показанной на рис. 5.8, корневым становится коммутатор А как имеющий наименьший идентификатор.

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

В примере коммутаторы Б и В добавляют свои стоимости портов - числа 25 и 30 соответственно - и пересылают сообщения друг другу. После анализа этих сообщений коммутатор с наибольшей стоимостью пути до корня переводит свой порт в блокированное состояние. В примере этим коммутатором является коммутатор В с портом 2. Порт, находящийся в блокированном состоянии, не передает кадры через себя, однако он продолжает принимать и обрабатывать пакеты BPDU. У коммутатора Б порт 2 становится назначенным, и только через него происходит передача кадров в подключенный сегмент сети. Таким образом, хотя коммутатор Б будет продолжать передавать кадры данных через свой порт 2, они не пройдут дальше коммутатора В, который будет их отсекать, устраняя петлю, существовавшую ранее. У корневого коммутатора все порты являются назначенными.

У коммутатора, работающего по стандарту IEEE 802.1d, может существовать четыре состояния каждого порта:

1. Блокированное - в этом состоянии порт не участвует в нормальных операциях обучения, фильтрации и передачи. Пользовательский трафик не передается от коммутатора в сегмент, подключенный к этому порту, и обратно. Корневые и назначенные порты никогда не переходят в блокированное состояние. Порт в этом состоянии воспринимает пакеты BPDU, не передавая их далее. Если эти сообщения порт не получит в заданный период времени, он переходит в следующее состояние – состояние прослушивания.

2. Прослушивания - порт, находясь в этом состоянии, слушает пакеты BPDU для определения необходимости перехода в блокированное состояние или в состояние обучения. В этом состоянии порт не участвует в обучении местоположению станций, фильтрации или передачи пользовательской информации. Это состояние предназначено для минимизации получения некорректной информации о расположении станций при переконфигурации протокола STP. Время нахождения в этом состоянии равно значению параметра поля «Задержка перехода» и по умолчанию составляет 15 секунд.

3. Обучения - порт готовится к переходу в состояние передачи. Происходят процессы запоминания расположения станций и обновления адресной таблицы данного коммутатора. Длительность периода обучения порта равна длительности периода прослушивания.

4. Передачи - в этом состоянии порт участвует во всех функциях коммутатора. Только корневые и назначенные порты коммутаторов могут находиться в этом состоянии.

Сетевая топология, полученная в результате работы протокола STP на локальной сети приведенного выше примера, показана на рис. 5.9. После создания новой сетевой топологии корневой коммутатор начинает периодическую рассылку пакетов BPDU. Интервал между рассылками задается администратором при настройке и помещается в поле «Время приветствия» (по умолчанию выставляется 2 секунды). Остальные коммутаторы, получая эти пакеты, увеличивают содержимое поля «Возраст сообщения» и передают их дальше по сети. Если значение этого поля достигнет значения поля «Максимальный возраст», также задаваемого администратором, то сообщение будет удалено из обращения. Хотя после выбора корневого коммутатора остальные коммутаторы работают с его временными настройками, рекомендуется, чтобы все коммутаторы в сети имели эти значения одинаковыми.

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

Если корневой коммутатор вышел из строя, то остальные своевременно не получат пакеты BPDU на свои корневые порты. Каждый коммутатор ожидает хотя бы одно сообщение от корневого коммутатора до истечения его временной настройки «Максимальный возраст». По истечении этого времени будет произведено изменение конфигурации сети с выбором нового корневого коммутатора.

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

· если у корневого порта коммутатора истекло время ожидания, другой порт может быть выбран корневым;

· если своевременно не обновляется информация от текущего корневого коммутатора, один из коммутаторов сделает попытку стать корневым;

· если у некорневого порта коммутатора истекло время ожидания, этот порт будет пытаться стать назначенным портом для сегмента, который к нему подключен. Этот коммутатор будет передавать пакеты BPDU, полученные от корневого коммутатора в этот сегмент.

Таким образом, в случае выхода из строя коммутатора или обрыва линии связи, протокол STP будет производить реконфигурацию сетевой топологии. Все коммутаторы перестают передавать кадры, очищают свои адресные таблицы, перевыбирают корневой коммутатор, определяют корневые, назначенные и блокированные порты и вновь начинают нормально функционировать. Приостановка передачи кадров на время реконфигурации производится во избежание образования временных петель коммутации. Время приостановки передачи определяется значением параметра в поле «Задержка перехода».

Проиллюстрируем это на примере. Предположим, что произошел обрыв линии связи между коммутаторами А и Б (рис. 5.9). В этом случае коммутатор Б своевременно не получит на свой корневой порт сообщения от корневого коммутатора и активизирует процесс реконфигурации, рассылая пакеты BPDU с содержимым поля «Тип сообщения», равным 80h, означающим реконфигурацию. После этого процессы выбора корневого коммутатора назначенных и блокированных портов коммутаторов повторятся вновь, но уже с учетом отсутствия связи между коммутаторами А и Б. В результате реконфигурации получится последовательное соединение коммутаторов А, В и Б и порт 2 коммутатора Б станет корневым.

Для повышения надежности сетей, построенных на основе коммутаторов, применяют либо метод введения резервных линий связи между коммутаторами, либо метод введения резервных коммутаторов.

В целом протокол STP имеет следующие достоинства:

· позволяет создавать большие, сложные и строить устойчивые к сбоям и отказам локальные сети на коммутаторах;

· предоставляет только один путь передачи данных между любыми двумя станциями, который: а) гарантирует доставку данных в том порядке, в котором они были отправлены; б) устраняет размножение широковещательных пакетов; в) устраняет бесконечную циркуляцию широковещательных пакетов; г) устраняет циркуляцию пакетов с неизвестным адресом назначения;

· работает прозрачно для конечных станций;

· использует небольшой процент полосы пропускания.

В качестве недостатков можно отметить следующие моменты:

· коммутаторы, поддерживающие протокол STP, имеют повышенную стоимость;

· для введения резервных линий связи должны быть задействованы дополнительные порты коммутатора;

· введение резервного оборудования существенно увеличивает стоимость сети в целом;

· в моменты реконфигурации топологии сеть становится неработоспособной;

· между двумя любыми станциями в сети может быть не более семи коммутаторов или мостов (в сетях на базе Ethernet 10 Мбит/с).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: