Uploaded by onat-sa

Лабораторная работа № 1, 2, 3

advertisement
1
Лабораторная работа № 1, 2, 3
УПРВЛЕНИЕ СЕТЕВЫМИ УСТРОЙСТВАМИ
НА ОСНОВЕ ПРОТОКОЛА КАНАЛЬНОГО УРОВНЯ STP
СТЕКА ПРОТОКОЛОВ TCP/IP
1. Цель работы. Изучение основных принципов работы мостов и коммутаторов в информационных сетях на основе протокола STP и получение навыков по устранению активных петель в сети при помощи протокола STP.
2. Ключевые положения
2.1. Структура и принципы работы мостов
Объединение современных сетей осуществляется как с помощью маршрутизаторов, так и с помощью мостов и коммутаторов. Основное различие между
ними заключается в том, что объединение сетей с помощью мостов и коммутаторов происходит на канальном уровне эталонной модели взаимосвязи открытых систем (ВОС, англоязычная аббревиатура - OSI), а маршрутизатор использует сетевой уровень; кроме того, эти устройства поддерживают различные алгоритмы при перемещении информации по сети.
Мост - это устройство, обеспечивающее взаимосвязь нескольких локальных
сетей посредством передачи кадров из одной сети в другую. В отличие от концентраторов, которые проверяют электрические сигналы, мост проверяет только кадры. Мосты не повторяют шумы, ошибки или испорченные кадры. Мост
выступает по отношению к каждой из соединяемых им сетей в качестве конечного узла. Он принимает кадр, сохраняет его в буферной памяти, анализирует
адрес назначения кадра. В случае принадлежности кадра к сети, из которой он
получен, мост на этот кадр не реагирует. Если необходимо передать кадр в другую сеть, мост должен получить доступ к ее разделяемой среде передачи данных в соответствии с теми же правилами, что и обычный узел.
Существует два основных типа мостов - локальные и глобальные (удаленные). Они отличаются своими сетевыми портами. Локальные мосты оборудуются портами для подключения к ЛВС. Типичными для такой среды носителями являются коаксиальный или волоконно-оптический кабель, а также витая
пара проводов. Важным свойством локальных мостов является их способность
соединять сети, использующие разные среды. Например, с их помощью можно
подключить сеть на коаксиальном кабеле к сети с волоконно-оптическим кабелем или любую из них к сети на витой паре.
Глобальные мосты - это те мосты, порты которых согласуются со средами
для передачи информации на большие расстояния. У глобальных мостов могут
2
быть интерфейсы как для передачи на большие расстояния, так и локальные.
По своему принципу действия мосты подразделяются на два основных типа.
Мосты первого типа выполняют так называемую маршрутизацию от источника. B такой сети мостам не требуется содержать адресную базу данных. Они
определяют путь прохождения кадра, исходя из информации, хранящейся в самом кадре.
Мосты второго типа называются «прозрачными». Прозрачные мосты, в
свою очередь, делятся на три подтипа:
 прозрачные мосты - используются для объединения сетей с идентичными
протоколами на канальном и физическом уровнях модели ВОС (Ethernet Ethernet, Token Ring - Token Ring и т.д.);
 транслирующие мосты - используются для объединения сетей с разными
протоколами на канальном и физическом уровне;
 инкапсулирующие мосты - предназначены для объединения сетей с одинаковыми протоколами (например, Ethernet) на канальном и физическом уровне
через сеть с другими протоколами (например, FDDI).
Прозрачные мосты являются наиболее распространенным типом. Для них
сеть представляется наборами физических адресов устройств, используемых на
канальном уровне. Мосты ориентируются на эти адреса для принятия решения
о передаче кадра. При этом кадр записыМОСТ
вается во внутренний буфер моста. МоТаблица физичесты не имеют доступа к информации об
ских адресов
адресах сетей, относящейся к сетевому
уровню. Они ничего «не знают» о тополоПрограммное
гии связей сегментов или сетей между
обеспечение
собой.
моста
При передаче кадров внутри прозрачного моста происходит их регенерация и
трансляция с одного порта на другой.
Буферная память
Мост использует адрес отправителя для
автоматического построения своей базы
данных адресов устройств, называемой
Порт #1 Порт #2
также таблицей физических адресов. В
этой таблице устанавливается принадлежность адреса станции к какому-либо
порту моста. Все операции, которые выСеть #1
Сеть #2
полняет мост, связаны с этой базой данных. Внутренняя структура моста показаРис. 2.1. Структура моста
3
на на рис. 2.1.
Все порты моста работают в так называемом неразборчивом режиме захвата
кадров, то есть все поступающие на порт кадры сохраняются в его буферной
памяти. С помощью такого режима мост следит за всем трафиком, передаваемым в присоединенных к нему сегментах, и использует проходящие через него
кадры для изучения состава сети.
Функциональную основу мостов составляют следующие функции: обучение,
фильтрация, передача и широковещание.
Когда мост получает кадр, он проверяет его целостность и контрольную
сумму. Некорректные кадры при этом отбрасываются. Затем мост сравнивает
адрес отправителя с имеющимися в базе данных адресами. Если адреса отправителя еще нет в базе данных, то он добавляется в нее. Таким образом, мост
узнает адреса устройств в сети, и происходит процесс его обучения (рис. 2.2).
Благодаря способности моста к обучению к сети могут добавляться новые
устройства без необходимости реконфигурации моста.
Кроме адреса отправителя мост анализирует и адрес получателя. Мост
сравнивает адрес получателя кадра с адресами, хранящимися в его базе. Если
адрес получателя принадлежит тому же сегменту, что и адрес отправителя, то
мост «фильтрует» кадр, то есть удаляет его из своего буфера и никуда не передает. Эта операция помогает предохранить сеть от «засорения» ненужным
трафиком. Если адрес получателя присутствует в базе данных и принадлежит
другому сегменту, то мост определяет, какой из его интерфейсов связан с нужным адресом. После этого мост должен получить доступ к среде передачи этого сегмента и передать в него кадр. Если адрес получателя отсутствует в базе
или он является широковещательным, то мост передает кадр на все свои порты, за
исключением порта, принявшего кадр. Такой процесс называется широковещанием.
4
Алгоритм работы
прозрачного моста
Запись в буфер
входящего кадра
Нет
2
Нет
Да
Разрешено
продвижение кадра?
Удаление кадра
(фильтрация)
Нет
Да
Обучение
включено?
Да
Адрес отправителя
в базе?
Сброс таймера
неактивности
Адрес получателя
в базе?
Передача кадра на все
порты
(широковещание)
Да
Создание новой
записи в базе
Да
Конечные
станции
в одном сегменте?
Удаление кадра
(фильтрация)
Нет
2
Нет
Передача кадра на
соответствующий порт
Завершение алгоритма
Рис. 2.2. Граф-схема алгоритма работы прозрачного моста
Так как существует возможность перемещения станции из одного сегмента
в другой, то мосты должны периодически обновлять содержимое своих адресных баз. Для обеспечения этой функции записи в адресной базе делятся на два
типа - статические и динамические. С каждой динамической записью связан
таймер неактивности. При получении кадра с адресом отправителя, который
соответствует имеющейся в адресной базе записи, соответствующий таймер неактивности сбрасывается в исходное состояние. Если от какой-либо станции
долгое время не поступают кадры, то таймер неактивности исчерпывает заданный интервал и соответствующая ему запись удаляется из адресной базы.
Например, у мостов NetBuilder II фирмы 3Com таймер неактивности выставляется по умолчанию и равен 300 секундам.
5
сетевой уровень
подуровень
УЛК
IEEE 802.2
Функции станционного управления
IEEE 802.1d Мост/Коммутатор
802.5/ X3T9.5
УДС
Протокол
физического
уровня
Протокол,
зависящий от
среды
FDDI
802.3
УДС
802.5
УДС
Протокол
физического
уровня
Протокол
физического
уровня
Ethernet
Token Ring
подуровень
УДС
канальный уровень
Рис. 2.2 иллюстрирует алгоритм функционирования моста.
Кроме основных функций мосты могут поддерживать дополнительные сервисы, например: настраиваемые фильтры, расширенные возможности по защите данных и обработка кадров по классам. Настраиваемые фильтры позволяют
администратору сетей производить фильтрацию на основе любого компонента
кадра, например, типа протокола верхнего уровня, адреса отправителя или получателя, типа кадра или даже информационной его части.
физический
уровень
Модель ВОС
Рис. 2.3. Функциональное соответствие мостов и коммутаторов модели ВОС
Технология прозрачных мостов стандартизована и описана в документе
IEEE 802.1d. На рис. 2.3 показано «место» мостов в эталонной модели ВОС.
2.2. Структура и принципы работы коммутаторов
Коммутатор - это устройство, конструктивно выполненное в виде сетевого
концентратора и действующее как высокоскоростной многопортовый мост;
встроенный механизм коммутации позволяет осуществить широковещательное
сегментирование локальной сети, а также выделить полосу пропускания к конечным станциям в сети.
Под коммутацией обычно понимают четыре различные технологии: конфигурационную коммутацию (коммутацию каналов), коммутацию кадров, коммутацию ячеек и преобразование между кадрами и ячейками. В основе конфигурационной коммутации лежит определение соответствия между конкретным
портом коммутатора и внутренним сегментом сети. Это назначение портов
производится удаленным образом посредством программного управления се-
6
тью при подключении или перемещении пользователей в сети. Технология
конфигурационной коммутации основана на отказе от использования разделяемых линий связи между всеми узлами сегмента и использовании коммутаторов,
позволяющих одновременно передавать пакеты между всеми его парами портов. Новшество заключалось в параллельной обработке поступающих кадров.
Структурная схема коммутатора фирмы Kalpana EtherSwitch поСистемный модуль
казана на рис. 2.4. Системный моМногозадачное
Управление
дуль поддерживает общую адресядро
ную таблицу коммутатора. Коммутационная матрица предназначена
Коммутационная
для передачи кадров между портаматрица
ми. Каждый порт имеет свой процессор пакетов. При поступлении
Порт
Порт
Порт
кадра в один из портов процессор
пакетов буферизует несколько перРис. 2.4. Структура коммутатора
вых байтов кадра для прочтения
фирмы Kalpana
адреса назначения. После получения адреса процессор принимает решение о передаче кадра, не дожидаясь прихода остальных байтов. Для этого анализируется адресная таблица. Если адрес
существует в таблице, то выбирается соответствующий выходной порт. Выбор
порта и формирование соединения производятся коммутационной матрицей.
Если адреса нет в таблице, то заводится новая строка в адресной таблице, а
кадр передается широковещательным методом через все порты, за исключением принявшего.
В настоящее время различают три типа коммутаторов: с коммутационной
матрицей, с общей шиной и с разделяемой многовходовой памятью.
Коммутаторы с коммуникационной матрицей за счет параллельной обработки данных позволяют реализовать наиболее быстрый способ взаимодействия портов. Эта реализация возможна только для определенного числа портов. Причем сложность схемы возрастает пропорционально квадрату количества портов коммутатора. Основным недостатком данной технологии является
отсутствие возможности буферизации данных внутри коммутационной матрицы.
В коммутаторах с общей шиной в режиме разделения времени используется высокоскоростная шина для связи процессоров портов. В этой архитектуре
активную роль играют специализированные процессоры портов. Высокоскоростная шина играет пассивную роль. Для того чтобы шина не была узким местом коммутатора, ее производительность должна быть в несколько раз выше
7
скорости поступления данных на входные порты. Для уменьшения задержек
при передаче кадр должен передаваться по шине небольшими частями. Размер
этих частей определяется производителем коммутатора. Шина так же, как и
Блок управления портами
Порт 1
Режим
портов:
прием
данных
Порт 1
Порт 2
Порт 2
…
…
Порт N
Порт N
Переключатели
входа
Разделяемая
память
Переключатели
выхода
Режим
портов:
передача
данных
…
Рис. 2.5. Структура коммутатора с разделяемой многовходовой памятью
коммутационная матрица, не может осуществлять промежуточную буферизацию.
В коммутаторах с разделяемой многовходовой памятью (рис. 2.5) входные
блоки процессоров портов соединяются через переключатели входа с разделяемой памятью, а выходные блоки этих же процессоров соединяются с этой памятью через переключатели выхода. Переключением входа и выхода разделяемой памяти управляет блок управления портами. Он организует в разделяемой
памяти несколько очередей данных, по одной для каждого выходного порта.
Входные блоки процессоров передают блоку управления запросы на запись
данных в очередь того порта, который соответствует адресу назначения пакета.
Блок управления портами по очереди подключает вход памяти к одному из
входных блоков процессора, и тот переписывает часть данных в очередь определенного выходного порта. По мере заполнения очередей блок управления
производит поочередное подключение выходов разделяемой многовходовой
памяти к выходным портам, и данные из очереди переписываются в выходной
буфер процессора.
Некоторые производители используют в своих коммутаторах различные
приемы управления потоком кадров для предотвращения потерь при перегрузках в сети. Существует два способа реализации снижения интенсивности трафика: агрессивное поведение порта и метод обратного давления.
Агрессивное поведение порта коммутатора может быть реализовано путем
захвата среды передачи данных или после коллизии в сети (для сети Ethernet).
8
Например, в первом случае коммутатор окончил передачу очередного кадра и
сделал технологическую паузу в 9,1 мкс вместо положенной паузы в 9,6 мкс.
При этом компьютер, сделав ту же паузу в 9,6 мкс, не смог захватить среду передачи данных. Во втором случае кадры коммутатора и компьютера столкнулись, и была зафиксирована коллизия. Компьютер делает стандартную паузу
после коллизии в 51,2 мкс, а коммутатор - в 50 мкс. И в этом случае среда передачи остается за коммутатором.
В основе второго метода лежит передача компьютеру фиктивных кадров
при отсутствии в буфере коммутатора кадров для передачи по данному порту.
В этом случае коммутатор может не нарушать алгоритм доступа, однако интенсивность передачи кадров в коммутатор в среднем уменьшается вдвое.
Существует два способа передачи пакетов коммутаторами: со сквозной обработкой и с буферизацией. Коммутатор со сквозной обработкой кадров считывает только физический адрес назначения, а сам кадр передается без проверки его содержимого. Этот способ представляет собой, по сути, конвейерную
обработку кадров с частичным совмещением этапов передачи. Передача кадров
происходит в такой последовательности:
1) прием первых байтов кадра (включая байт адреса назначения);
2) поиск адреса назначения в адресной таблице;
3) построение коммутируемого пути;
4) прием остальных байтов кадра;
5) прием всех байтов кадра выходным портом через коммутационную матрицу;
6) получение доступа к среде передачи;
7) передача кадра в сеть.
Использование сквозной коммутации может дать значительный выигрыш в
производительности, но за счет снижения надежности.
При коммутации с буферизацией происходит проверка содержимого кадра:
если в кадре содержится ошибка, то он отбраковывается.
Коммутаторы, наряду с основными функциями по передаче кадров с порта
на порт, могут реализовывать дополнительные функции, например поддержку
протокола STP (Spanning Tree) - построение остова дерева. Алгоритм Spanning
Tree позволяет коммутаторам автоматически определять древовидную конфигурацию связей в сети при произвольном соединении портов между собой.
Поддержка мостами и коммутаторами этой функции важна для обеспечения
работоспособности сложных сетей.
2.3. Протокол SPT для мостов и коммутаторов
Функции обучения, фильтрации и передачи основаны на существовании од-
9
ного логического пути между любыми двумя узлами сети. Наличие нескольких
путей между устройствами, известных также как «активные петли», создает
проблемы для сетей, построенных на основе мостов и коммутаторов. Под «активными петлями» понимаются логические и физические петли. Логические
петли могут создаваться администратором сети специально для образования резервных связей.
Протокол STP [2] (в некоторых технических документах может встретиться
название Spanning Tree Algorithm - STA) был разработан Digital Equipment
Corporation, а впоследствии опубликован комитетом IEEE 802 в спецификации
IEEE 802.1d. Основная цель разработки протокола была в устранении логических и физических петель в сетях, построенных с использованием мостов. Кроме того, протокол автоматически переконфигурирует сетевую топологию в
случае обрывов линий связи или при аппаратных ошибках оборудования.
Основные определения
В сети определяется корневой коммутатор (root switch), от которого строится дерево.
Для каждого коммутатора определяется корневой порт (root port) - это
порт, который имеет кратчайшее из всех портов данного коммутатора расстояние до корневого коммутатора (точнее, до любого из портов корневого коммутатора).
Расстояние до корня (root path cost) определяется как суммарное условное
время на передачу данных от порта данного коммутатора до порта корневого
коммутатора. Условное время сегмента (designated cost) рассчитывается как
время, затрачиваемое на передачу одного бита информации в 10наносекундных единицах между непосредственно связанными по сегменту сети
портами. Так, для сегмента Ethernet это время равно 10 условным единицам, а
для сегмента Token Ring 16 Мб/с - 6.25.
Для каждого логического сегмента сети выбирается так называемый
назначенный коммутатор (designated switch), один из портов которого будет
принимать пакеты от сегмента и передавать их в направлении корневого коммутатора через корневой порт данного коммутатора, а также принимать пакеты
для данного сегмента, пришедшие на корневой порт со стороны корневого
коммутатора. Такой порт называется назначенным портом (designated port).
Назначенный порт сегмента имеет наименьшее расстояние до корневого коммутатора, среди всех портов, подключенных к данному сегменту. Назначенный
порт у сегмента может быть только один. У корневого коммутатора все порты
являются назначенными, а их расстояние до корня полагается равным нулю.
Корневого порта у корневого коммутатора нет.
Можно доказать, что если определить каким-либо образом корневой коммутатор, то зная пропускную способность каждого сегмента и связи между
портами коммутаторов и сегментов, можно однозначно определить по расстоянию до корня корневые порты коммутаторов и назначенные порты сегментов, и
10
если все остальные порты коммутаторов, кроме корневых и назначенных, заблокировать, то получится дерево без петель.
Для того, чтобы коммутаторы могли идентифицировать себя и своих
ближних и дальних соседей по сети, каждой коммутатор, поддерживающий
STA, имеет уникальный идентификатор. Этот идентификатор состоит из двух
частей. Младшую часть составляет MAC-адрес коммутатора (не отдельного
порта коммутатора, а всего коммутатора в целом, порты коммутаторов MACадресов не имеют), имеющий длину 6 байтов. Старшая часть, имеющая длину 2
байта, является приоритетом данного коммутатора, и его может изменять администратор сети по своему усмотрению (напомним, что MAC-адрес устанавливается производителем для обеспечения его всемирной уникальности).
Идентификатор коммутатора играет определяющую роль при выборе корневого коммутатора. Приоритет имеет преимущественное значение в этом выборе - корневым выбирается коммутатор, имеющий наименьшее значение
идентификатора, а так как поле приоритета находится в старших разрядах, то
его значение подавляет значение MAC-адреса. Если же администратор назначил всем коммутаторам равный приоритет (то есть не захотел влиять на выбор
корневого коммутатора), то корневым будет выбран коммутатор с наименьшим
значением MAC-адреса.
Порты внутри каждого коммутатора также имеют свои идентификаторы.
Идентификатор порта состоит из 2 байтов, первый из которых (старший) может
изменяться администратором и является приоритетом порта, а второй представляет собой порядковый номер порта для данного коммутатора (номера портов начинаются с единицы). Идентификатор порта используется при выборе
корневого и назначенного порта коммутатора - если несколько портов имеют
одинаковое расстояние до корня, то выбирается тот порт, идентификатор которого меньше. Аналогично случаю с идентификатором коммутатора, приоритет
порта может быть задан администратором для того, чтобы данный порт получил преимущество перед другими.
Инициализация топологии
Для автоматического определения начальной активной конфигурации дерева все коммутаторы сети после их инициализации начинают периодически
обмениваться специальными пакетами, называемыми протокольными блоками
данных коммутатора - BPDU (Bridge Protocol Data Unit).
Пакеты BPDU помещаются в поле данных кадров канального уровня,
например, кадров Ethernet. Все коммутаторы должны поддерживать общий
групповой адрес, с помощью которого кадры, содержащие пакеты BPDU, передаются одновременно всем коммутаторам сети.
Пакет BPDU имеет следующие поля:
 Идентификатор версии протокола STA - 2 байта. коммутаторы должны
поддерживать одну и ту же версию протокола STA, иначе может установиться
активная конфигурация с петлями.
 Тип BPDU - 1 байт. Существует два типа BPDU - конфигурационный
BPDU, то есть заявка на возможность стать корневым коммутатором, на осно-
11
вании которой происходит определение активной конфигурации, и BPDU уведомления о реконфигурации, которое посылается коммутатором, обнаружившим событие, требующее проведение реконфигурации - отказ линии связи, отказ порта, изменение приоритетов коммутатора или портов.
 Флаги - 1 байт. Один бит содержит флаг изменения конфигурации, второй бит - флаг подтверждения изменения конфигурации.
 Идентификатор корневого коммутатора - 8 байтов.
 Расстояние до корня - 2 байта.
 Идентификатор коммутатора - 8 байтов.
 Идентификатор порта - 2 байта.
 Время жизни сообщения - 2 байта. Измеряется в единицах по 0.5 с, служит для выявления устаревших сообщений. Когда пакет BPDU проходит через
коммутатор, тот добавляет ко времени жизни пакета время его задержки данным коммутатором.
 Максимальное время жизни сообщения - 2 байта. Если пакет BPDU имеет
время жизни, превышающее максимальное, то он игнорируется коммутаторами.
 Интервал hello, через который посылаются пакеты BPDU.
 Задержка смены состояний - 2 байта. Минимальное время перехода портов коммутатора в активное состояние. Такая задержка необходима, чтобы исключить возможность временного возникновения альтернативных маршрутов
при неодновременной смене состояний портов во время реконфигурации.
Размер полей пакета BPDU в байтах
2
1
ИД
протокола
Тип
BPDU
2
1
8
2
8
2
ИД
ИД
Флаги Корневой Стоимость пути
до корня
ИД
коммутатора порта
2
Возраст Максимальный
возраст
сообщения
2
Время
приветствия
2
Задержка
перехода
Рис. 2.6. Формат пакета BPDU
У пакета BPDU уведомления о реконфигурации отсутствуют все поля,
кроме двух первых.
После инициализации каждый коммутатор сначала считает себя корневым.
Поэтому он начинает через интервал hello генерировать через все свои порты
сообщения BPDU конфигурационного типа. (Далее под BPDU понимается везде конфигурационный BPDU, если тип BPDU точно не указан.) В них он указывает свой идентификатор в качестве идентификатора корневого коммутатора
(и в качестве данного коммутатора также), расстояние до корня устанавливается в 0, а в качестве идентификатора порта указывается идентификатор того
порта, через который передается BPDU.
12
В исходном состоянии каждый коммутатор не только передает BPDU через все свои порты, но и принимает через все порты BPDU, передаваемые другими коммутаторами. Коммутатор в течение интервала установления начальной конфигурации фиксирует значения нескольких своих внутренних переменных:
 RI (Root Identifier) - идентификатор корневого коммутатора, в начальный
момент работы алгоритма STA каждый коммутатор присваивает этой переменной свой собственный идентификатор.
 minRPCi (min Root Path Cost) - наименьшее значение расстояния до корня, встретившееся в пакетах BPDU, принятых от корневого коммутатора по iму порту. Для каждого порта коммутатора имеется своя переменная minRPCi,
начальное значение этой переменной равно максимально допустимому значению расстояния, определяемому форматом переменной.
 minBi и minPi - идентификаторы коммутатора и порта, от которого поступил пакет, на основании которого присвоено значение расстояния до корня переменной minRPCi - по две переменные на каждый порт.
Коммутатор обрабатывает поступающие на порты сообщения BPDU следующим образом.
13
Граф схема алгоритма удаления активных петель
Пакет
BPDU
Нет
Да
Корн. ИД<RI
Корн. ИД>RI
Да
Нет
Удаление
пакета
RI = Корневой ИД
Нет
Все minRPCi
устанавливаются в
начальное значение
Расстояние до
корня<minRPCi
Да
minRPCi =
Расстояние до
корня
Расстояние до корня =
расстояние до корня+ст-сть
портов
Расстояние до корня = 0
minBi = идентификатор
коммутатора
minPi = идентификатор
порта
Идентификатор
коммутатора = свой ИД
Пакет
BPDU
Сначала коммутатор сравнивает значение идентификатора корневого коммутатора из BPDU с текущим значением переменной RI.
Если это значение больше текущего значения RI, то принятый пакет просто уничтожается, так как он не несет никакой информации о расстоянии до
корневого коммутатора - он пришел от коммутатора, который не является корневым.
Если оно равно текущему значению RI, то значит принят пакет от уже известного корня. Находящееся в пакете расстояние до корня сравнивается с
найденным ранее минимальным расстоянием minRPCi, и если новое значение
меньше, то оно переписывается в переменную minRPCi данного порта. Затем
коммутатор наращивает значение поля расстояния до корня на величину условного времени сегмента, по которому пришел пакет, помещает в поле идентификатора коммутатора свой идентификатор и передает этот пакет на все свои порты, кроме того порта, от которого получен пакет. В переменные minBi и minPi
14
записываются идентификаторы коммутатора, от которого получен пакет BPDU,
и его порта.
Если же значение идентификатора корневого коммутатора у принятого
BPDU меньше текущего, то это значит, что обнаружен коммутатор, у которого
больше прав претендовать на звание корневого. Его идентификатор фиксируется в переменной RI, а все значения переменных minRPCi устанавливаются в исходное значение, так как они были вычислены ранее на основании расстояний
до коммутатора, на самом деле корнем не являющегося. Затем пакет BPDU обрабатывается точно по тому же алгоритму, что и в предыдущем случае.
По мере распространения пакетов BPDU по всей сети у всех коммутаторов
накапливается информация, необходимая для фиксации корневого коммутатора, а также для определения того, какой из портов коммутатора является корневым портом, какие порты являются назначенными для сегментов, а какие не
входят ни в первую, ни во вторую категории.
После истечения времени установления активной конфигурации у всех
коммутаторов происходит фиксация идентификатора корневого коммутатора.
Коммутатор, который в течение всего времени процесса установления конфигурации считал себя корневым, окончательно удостоверяется в этом. Все его
порты устанавливаются в состояние назначенных.
Коммутаторы, знающие, что они не корневые, определяют свой корневой
порт как порт, имеющий минимальное расстояние до корневого коммутатора.
Для этого для каждого порта вычисляется расстояние RPCi как сумма переменной minRPCi и условного времени сегмента, с которым связан данный порт, так
как в переменной minRPCi это время учтено не было. Затем выбирается корневой порт, как порт с минимальным значением RPCi. После этого данное значение называется расстоянием до корня данного коммутатора - RPC.
Затем коммутатор проверяет все оставшиеся порты как претендентов на
звание назначенных портов сегментов, к которым они подключены. Он сравнивает значение minRPCi данного порта со значением RPC, то есть сравнивает
расстояния до корня от других коммутаторов данного сегмента со своим собственным. Если его собственное расстояние оказывается меньше по каждому
порту, то он фиксируется как назначенный. Если же оно больше, то порт переводится в заблокированное состояние, в котором он не будет ни принимать, ни
передавать информационные пакеты в рабочем режиме, после установления активной конфигурации. Если же расстояния оказываются равными, то коммутатор сравнивает сначала свой идентификатор с идентификатором minBi коммутатора-конкурента, а если и они равны (то есть конкурируют его собственные
порты), то сравниваются в конце концов идентификаторы портов.
После того, как все коммутаторы определяют статус своих портов, процесс
установления активной конфигурации завершен. Корневые и назначенные порты начинают участвовать в передаче кадров протокола канального уровня, то
есть для них устанавливается активное состояние, в отличие от заблокированных портов.
15
Принцип действия протокола
Станция
STP рассмотрим на примере сети на
А
Сообщения
рис. 2.7. Предположим, что станция
А генерирует широковещательное
Коммутатор
сообщение. Оно будет получено
А
коммутаторами Б и В и передано
Сообщения
соответственно друг другу, как поКоммутатор
Коммутатор
казано стрелками. После получения
Б
В
сообщения эти коммутаторы вновь
перешлют его коммутатору А, и
Станция
весь цикл повторится вновь. ПохоБ
жая проблема возникает и в случае
не широковещательного трафика,
Рис. 5.7. Передача сообщений в сети
если коммутаторы еще не построис избыточными путями
ли своих адресных таблиц. Решением проблемы является удаление всех петель из сетевой топологии с сохранением только одного пути между каждыми двумя станциями.
В примере коммутаторы Б и В добавляют свои стоимости портов - числа 25
и 30 соответственно - и пересылают сообщения друг другу. После анализа этих
сообщений коммутатор с наибольшей стоимостью пути до корня переводит
свой порт в блокированное состояние. В примере этим коммутатором является
коммутатор В с портом 2. Порт, находящийся в блокированном состоянии, не
передает кадры через себя, однако он продолжает принимать и обрабатывать
пакеты BPDU. У коммутатора Б порт 2 становится назначенным, и только через
него происходит передача кадров в подключенный сегмент сети. Таким образом, хотя коммутатор Б будет продолжать передавать кадры данных через свой
порт 2, они не пройдут дальше коммутатора В, который будет их отсекать,
устраняя петлю, существовавшую ранее.
Состояния порта
Каждый порт коммутатора, поддерживающего алгоритм STA, может находится в одном из 5 состояний (рис. 66):
 Отключен (disabled) - порт не участвует ни в каких операциях, и может
быть выведен из этого состояния только с помощью протокола управления
коммутатором (по сети или локально).
 Заблокирован (blocked) - конфигурационные BPDU принимаются, обрабатываются и передаются.
 Прослушивание (listening) - конфигурационные BPDU принимаются, обрабатываются и передаются.
16
Обучение (learning) - порт принимает конфигурационные BPDU, обрабатывает их и передает, а также принимает и обрабатывает информационные кадры канального протокола (строит адресную таблицу).
 Трансляция (forwarding) - порт участвует во всех операциях коммутатора
- принимает конфигурационные BPDU, обрабатывает их и передает, а также
принимает, обрабатывает и передает информационные кадры канального протокола.

Рис. Состояние порта и возможные переходы
За счет наличия промежуточных состояний порта, которые не были учтены
при описании процесса установления активной конфигурации для упрощения
его понимания, коммутатор не единовременно заканчивает этот процесс и
начинает передавать пользовательские кадры, а постепенно, причем по каждому порту индивидуально.
Переходы между состояниями порта вызываются либо получением конфигурационного BPDU или истечением некоторого таймера.
Обычно все порты коммутатора при первом его включении в сеть устанавливаются в отключенное состояние. Переход в заблокированное состояние
происходит при выполнении администратором соответствующей операции
17
управления коммутатором (1). Аналогичным образом, администратор может
отключить порт (2).
После получения команды на инициализацию от администратора, коммутатор переводит все свои порты в состояние блокировки. Затем начинается
описанный процесс установления начальной активной конфигурации. Коммутатор в какой-то момент времени этого процесса может сделать ошибочные заключения о том, какой из его портов является корневым, а какие - назначенными, так как делает выводы на основе конфигурационных BPDU, полученных от
коммутатора, который он временно считает корневым, так как конфигурационные BPDU от действительно корневого коммутатора еще до него не дошли. Поэтому для исключения преждевременных решений о том, что некоторые порты
нужно перевести в транслирующее состояние, так как они стали либо корневыми, либо назначенными (и, следовательно, для исключения временного образования петель), порт сначала переводится в промежуточное состояние - состояние прослушивания (3). При этом взводится специальный таймер для порта таймер трансляции. Если его период истекает, а порт все еще остается по результатам обработки поступивших конфигурационных BPDU корневым или
назначенным, то он переводится в состояние обучения (5), а таймер взводится
снова. Если же его интервал истекает еще раз, то тогда порт переводится в состояние трансляции (5) и начинает активную работу по передаче пользовательских кадров. Если же за период работы таймера трансляции порт перестает
быть корневым или назначенным, то он непосредственно переводится в состоянии заблокированного (4).
Изменения топологии
Алгоритм STA обеспечивает поддержку резервных связей в сети, и включает, кроме процедуры инициализации активной конфигурации и процедуру
изменения конфигурации при отказах элементов сети. Эта процедура называется процедурой изменения топологии.
После установления активной топологии только корневой коммутатор
продолжает периодически генерировать пакеты BPDU конфигурационного типа. Остальные коммутаторы продолжают принимать пакеты BPDU на свой
корневой порт и распространяют их через свои назначенные порты.
Для того, чтобы коммутаторы могли обнаружить отказ элемента сети,
каждый коммутатор имеет таймер возраста сообщения (message age timer).
При получении пакета BPDU этот таймер устанавливается в исходное состояние. Если какой-либо назначенный коммутатор, его порт или линия связи отказывают, то пакеты BPDU перестают поступать во все коммутаторы, которые
находятся в поддеревьях отказавшего элемента. Вследствие этого, в этих коммутаторах истекает интервал таймера возраста сообщения.
Если у коммутатора истекает значение такого таймера, то вызывается процедура, называемая "установление назначенных портов". Очевидно, что это
произойдет во всех коммутаторах, которые пострадали от отказа. После выполнения этой процедуры, которая аналогична описанной процедуре начального
выбора корневого и назначенных портов, будут определены новые значения
18
назначенных коммутаторов, корневых портов и назначенных портов. Если же
отказал корневой коммутатор, то будет выбран новый корневой коммутатор.
В дополнение к процедуре реакции на отказ, определяется и реакция коммутатора на принудительное изменение администратором статуса порта с заблокированного на активный. При этом посылается BPDU типа "уведомление о
реконфигурации" в направлении корневого коммутатора. Все назначенные
коммутаторы, находящиеся на пути между данным портом и корневым коммутатором отмечают произошедшее изменение и передают сообщение дальше через свой корневой порт корневому коммутатору. При этом все коммутаторы, на
которые влияет такое изменение, оказываются о нем уведомлены и производят
переоценку назначенных портов.
При изменении активной конфигурации коммутаторы должны произвести
некоторые изменения в своих адресных таблицах, так как некоторым узлам пакеты должны теперь передаваться через другие порты. Вообще говоря, эти изменения в адресных таблицах произойдут автоматически, когда у динамических записей таблицы истечет таймер возраста. Но, так как этот таймер имеет
сравнительно большой интервал, то корневой коммутатор посылает уведомление об изменении конфигурации всем коммутаторам, устанавливая флаг изменения конфигурации в текущем BPDU. При получении BPDU с таким флагом,
все динамические входы адресной таблицы считаются устаревшими, поэтому
они заполняются вновь на основании приходящих пакетов от конечных станций.
Корневой коммутатор
Коммутатор А
Обрыв
Порт 1
корневой
Порт 2
назначенный
Порт 2
блокированный
Коммутатор Б
Порт 1
корневой
Коммутатор В
Связи между коммутаторами Б и В нет
Рис. 2.9. Состояние сети при обрыве связи между двумя коммутаторами
Сетевая топология, полученная в результате работы протокола STP на локальной сети приведенного выше примера, показана на рис. 2.9.
Предположим, что произошел обрыв линии связи между коммутаторами А
и Б (рис. 2.9). В этом случае коммутатор Б своевременно не получит на свой
корневой порт сообщения от корневого коммутатора и активизирует процесс
реконфигурации, рассылая пакеты BPDU с содержимым поля «Тип сообщения», равным 80h, означающим реконфигурацию. После этого процессы выбора
корневого коммутатора назначенных и блокированных портов коммутаторов
повторятся вновь, но уже с учетом отсутствия связи между коммутаторами А и
19
Б. В результате реконфигурации получится последовательное соединение коммутаторов А, В и Б и порт 2 коммутатора Б станет корневым.
20
Для повышения надежности сетей, построенных на основе коммутаторов,
применяют либо метод введения резервных линий связи между коммутаторами,
либо метод введения резервных коммутаторов.
В целом протокол STP имеет следующие достоинства:
 позволяет создавать большие, сложные и строить устойчивые к сбоям и
отказам локальные сети на коммутаторах;
 предоставляет только один путь передачи данных между любыми двумя
станциями, который: а) гарантирует доставку данных в том порядке, в котором
они были отправлены; б) устраняет размножение широковещательных пакетов;
в) устраняет бесконечную циркуляцию широковещательных пакетов; г) устраняет циркуляцию пакетов с неизвестным адресом назначения;
 работает прозрачно для конечных станций;
 использует небольшой процент полосы пропускания.
В качестве недостатков можно отметить следующие моменты:
 коммутаторы, поддерживающие протокол STP, имеют повышенную стоимость;
 для введения резервных линий связи должны быть задействованы дополнительные порты коммутатора;
 введение резервного оборудования существенно увеличивает стоимость
сети в целом;
 в моменты реконфигурации топологии сеть становится неработоспособной;
 между двумя любыми станциями в сети может быть не более семи коммутаторов или мостов (в сетях на базе Ethernet 10 Мбит/с).
3. Контрольные вопросы
3.1. Объясните основные структурные и функциональные различия между
мостом и коммутатором.
3.2. В чем заключается прозрачность моста?
3.3. На каком-либо примере с использованием граф-схемы алгоритма работы моста объясните принцип работы мостов и коммутаторов в режиме обучения, фильтрации, передачи и широковещания.
3.4. Какие способы снижения интенсивности трафика в сети Вы знаете?
Объясните эти способы. Ответ проиллюстрируйте временными диаграммами
работы коммутаторов.
3.5. При использовании какого из двух способов передачи пакетов коммутаторами: со сквозной обработкой или с буферизацией, повышается надежность
21
сети? За счет чего это достигается?
3.6. Что такое "активные петли" в сети, как они возникают и каким образом
их наличие сказывается на функционировании сети?
3.7. Объясните назначение и принцип функционирования протокола канального уровня STP.
3.8. В какие состояния, согласно протоколу STP, в зависимости от ситуации
в сети могут переходить порты мостов и коммутаторов? С учетом пребывания
портов коммутатора во всех этих состояниях нарисуйте для него конечный автомат.
3.9. Какие параметры служебного пакета BPDU может вручную устанавливать администратор сети?
3.10. Какие действия, согласно протоколу STP, предусмотрены в случаях: а)
образования "активной петли"; б) обрыва сетевого кабеля между коммутаторами; в) выхода из строя корневого коммутатора?
4 Лабораторное задние
1. Постройте сеть указанную на рисунке 4.1, самостоятельно задав адресацию и настроив сервера.
2. Проверьте работоспособность сети.
Рисунок 4.1 – Исходная сеть
22
3. Внесите изменения в топологию для обрзования петлей — добавте избыточные линки только между Switch 6, Switch 7 и Switch 8, рис. 4.2.
Рисунок 4.2 – Образование петлей
Данная программа самостоятельно настраивает работу STP. Для просмотра ее
работы зайдите поочередно в СLI Switch 6, Switch 7 и Switch 8 и наберите команду:
switch>en
switch #show spanning-tree
Вывод команды:
23
После того, как коммутаторы выбрали root bridge, каждый из остальных свичей должен
найти один, и только один порт, который будет вести к корневому свичу. Такой порт называется корневым портом (Root port). Чтобы понять, какой порт лучше использовать, каждый
некорневой свич определяет стоимость маршрута от каждого своего порта до корневого свича. Эта стоимость определяется суммой стоимостей всех линков, которые нужно пройти кадру, чтобы дойти до корневого свича. В свою очередь, стоимость линка определяется простопо его скорости (чем выше скорость, тем меньше стоимость). Процесс определения стоимости маршрута связан с полем BPDU “Root Path Cost” и происходит.
Корневой свич посылает BPDU с полем Root Path Cost, равным нулю
Ближайший свич смотрит на скорость своего порта, куда BPDU пришел, и добавляет стоимость согласно таблице
Скорость порта Стоимость STP (802.1d)
10 Mbps
100
100 Mbps
19
1 Gbps
4
10 Gbps
2
Далее этот второй свич посылает этот BPDU нижестоящим коммутаторам, но уже с новым
значением Root Path Cost, и далее по цепочке вниз
Если имеют место одинаковые стоимости (как в нашем примере с двумя свичами и двумя
проводами между ними — у каждого пути будет стоимость 19) — корневым выбирается меньший порт.
Далее выбираются назначенные (Designated) порты. Из каждого конкретного сегмента сети
должен существовать только один путь по направлению к корневому свичу, иначе это петля. В
данном случае имеем в виду физический сегмент, в современных сетях без хабов это, грубо
говоря, просто провод. Назначенным портом выбирается тот, который имеет лучшую стоимость
в данном сегменте. У корневого свича все порты — назначенные.
Роли портов
Root (корневые) порты - порты некорневых коммутаторов, через которые проходит трафик
в сторону корневого коммутатора. Может быть только один корневой порт у коммутатора.
MAC адреса источника фреймов, полученные на этот порт, заносятся в таблицу MAC адре-
24
сов коммутатора.
Designated (назначенные) порты - могут быть и у корневых, и у некорневых коммутаторов.
У корневых - это все порты. У некорневых - все некорневые порты, через которые разрешена
передача трафика. В одном сегменте сети может быть только один назначенный порт. MAC
адреса источника фреймов, полученные на эти порты, заносятся в таблицу MAC адресов
коммутатора.
Non-designated (неназначенные) порты - порты, которые находятся в состоянии блокировки. Трафик через них запрещен.
Disabled (отключенные) порты - порты, которые выключены администратором командой shutdown.
выводит состояние и конфигурацию интерфейса STP
4. Поочередно просмотрев работу STP на всех трех коммутаторах отметьте
на схеме в протоколе Root порты и выпишите сost для всех портов, определив
корневой коммутатор и правильно ли работает STP.
5. Изучить процесс конвергенции STP
Из командной строки PC9 выполнить команду ping с параметром –t для PC11
На коммутаторе Switch 8 для порта с ролью Root (в данном проекте Fa0/1)
выполнить команду shutdown.
Switch(config)#interface F0/1
Switch(config-if)#shutdown
Отметить примерное время схождения сети, исходя из вывода команды ping.
Вернуть предыдущее состояние порта командой no shutdown.
25
Switch (config-if)#no shutdown
6. Настроить на коммутаторах Rapid Spanning Tree Protocol (RSTP)
На коммутаторах Switch 6, Switch7 и Switch8 включить для spanning-tree
режим rapid-pvst
Switch (config)#spanning-tree mode rapid-pvst
Switch (config)#spanning-tree mode rapid-pvst
Switch (config)#spanning-tree mode rapid-pvst
Проверить show spanning-tree и зафиксировть в протоколе.
7. Настроить на коммутаторах Per-VLAN Spanning Tree (PVST)
Внесите изменения в топологию для обрзования петлей во втором сегменте сети — добавте избыточные линки только между Switch 0 – Switch 5,
рис. 4.3.
26
Рисунок 4.3 – Образование петлей
Настройте VLAN 001 включив в его группу Switch 0, Switch 1 и РС, VLAN 002
включив в его группу Switch 4, Switch 5 и РС и VLAN 003 включив в его группу
Switch 3 и РС.
Наберите команду проверив работу протокола PVST:
switch>en
switch #show spanning-tree
Поочередно просмотрев работу PVST на всех коммутаторах своего VLAN,
отметьте на схеме в протоколе Root порты и выпишите сost для всех портов,
определив корневые коммутаторы и правильно ли работает протокол.
8. Также поочередно изучите процесс конвергенции PVST
Из командной строки PC0 выполнить команду ping с параметром –t для Mail
27
На коммутаторе Switch 0 для порта с ролью Root (в данном проекте Fa0/1)
выполнить команду shutdown.
Switch(config)#interface F0/1
Switch(config-if)#shutdown
Отметить примерное время схождения сети, исходя из вывода команды ping.
Вернуть предыдущее состояние порта командой no shutdown.
Switch (config-if)#no shutdown
9. Настроить на коммутаторах Rapid Spanning Tree Protocol (RSTP)
На коммутаторах Switch 0 – Switch5 включить для spanning-tree режим rapidpvst
Проверить show spanning-tree и зафиксировать в протоколе.
10 Настройка корневого комутатора:
Чтобы задать корневой мост, для BID выбранного коммутатора настраивается
минимальный приоритет. Для настройки приоритета моста используется команда bridge priority. Значение приоритета может находиться в диапазоне от 0
до 65 535, но шаг между значениями составляет 4 096. Значение по умолчанию
— 32 768.
Задание приоритета:
Switch0(config)#spanning-tree vlan 1 priority 4096
Если он не является корневім, если у Вас он корневой, то следующий, которій
состоит в VLAN 001.
Результаты запишите в протоколы
Затем восстановлените приоритет по умолчанию:
Switch0(config)# no spanning-tree vlan 1 priority
11 Определение лучшего пути к root bridge
В BPDU сообщениях кроме bridge ID и root ID передается таже стоимость пути
к
root
ID.
После
того,
как
root
bridge
был
выбран, STA начинает
28
процесс определения наилучшего пути к корневому мосту со всех направлений
вшироковещательном
домене. Информация
суммирования индивидуальных
о
путях
стоимостей портовна
определяется путем
пути
от коммутатора
назначения до root bridge.
По умолчанию, стоимость портов коммутаторов следующая:
4 Мбіт/с - 250
10 Мбіт/с - 100
16 Мбіт/с - 62
100 Мбіт/с - 19
1 Гбіт/с - 4
2 Гбіт/с - 3
10 Гбіт/с – 2
Для каждого порта комутаторов 1-го сегмента сети (Switch6, Switch7, Switch8)
задайте стоимость вручную командой:
Switch 7(config-if)#spanning-tree cost cost (где cost –соответсвенно раставте в
самостоятельно в произвольно порядке 2, 3, 4, 19, 62, 100 и 250)
После подсчета стоимостей всех путей, выбирается путь с наименьшей стоимостью, а все резервные пути блокируются. Для проверки стоимостей портов, а
также стоимости пути к root bridge используется команда:
Результаты запишите в протоколы
Switch 7#show spanning-tree
Для вывода более детальной информации используется команда:
Switch 7#show spanning-tree detail
Запишите в протоколы
Для отмены ручной настройки стоимости порта используется команда:
Switch 7(config-if)#no spanning-tree cost
12. Для проверки работоспособности протокола STP используейте cледующие команды:
Посмотрите отображение сводки состояний портов.
Switch 7#show spanning-tree summary
29
Посмотрите отображение конфигурации и состояния корневого моста.
Switch 7# show spanning-tree root
Посмотрите отображение заблокированных портов.
Switch 7#show spanning-tree blockedports
Результаты запишите в протоколы
5. СОДЕРЖАНИЕ ПРОТОКОЛА

название работы;

цель работы;

ответы на контрольные вопросы

порядок действий по выполнению лабораторной работы;

выводы по результатам проделанной работы.
Download