Дополнительные функции коммутаторов Коммутатор представляет собой сложное устройство, имеющее один или несколько процессорных модулей и, естественно, может выполнять, помимо основной задачи по передаче кадров с порта на порт, некоторые дополнительные функции. К ним относятся:
q Трансляция протоколов канального уровня;
q Поддержка протокола Spanning Tree;
q Фильтрация кадров;
q Использование различных классов сервиса;
q Поддержка виртуальных сетей.
Коммутаторы могут выполнять трансляцию одного протокола канального уровня в другой, например, Ethernet в FDDI, Fast Ethernet в Token Ring и т. д. При этом они работают по тем же алгоритмам, что и транслирующие мосты, то есть в соответствии со спецификациями преобразования полей кадров разных протоколов (RFC 1042, IEEE 802.1H).
Многие коммутаторы наряду со стандартной фильтрацией в соответствии с адресной таблицей позволяют администраторам задавать дополнительные условия фильтрации кадров. Пользовательские фильтры предназначены для создания дополнительных «барьеров», которые ограничивают доступ определенных пользователей к некоторым сервисам сети.
Использование классов сервиса позволяет администратору назначить различным типам кадров приоритеты их обработки. При этом коммутатор поддерживает несколько очередей необработанных кадров, а сами очереди могут иметь различные приоритеты. Так как не все протоколы канального уровня поддерживают механизм определения приоритета кадра, разработан метод приписывания приоритетов портам коммутатора. При таком подходе коммутатор помещает кадр в очередь с определенным приоритетом в зависимости от того, через какой порт поступил этот кадр. Более гибким является назначение приоритетов МАС-адресам узлов.
Коммутатор позволяет локализовать потоки информации в сети и управлять ими, то есть создавать и поддерживать особые условия фильтрации. Одним из очень популярных видов специальных фильтров являются фильтры, создающие виртуальные сети. Виртуальной сетью (в этом контексте) называется группа узлов в сети, трафик которой, в том числе и широковещательный, полностью изолирован от других узлов сети.
Внутри виртуальной сети кадры передаются по технологии коммутации, а для передачи кадров между виртуальными сетями могут применяться маршрутизаторы. При использовании виртуальных сетей с коммутаторами одновременно решаются две задачи:
q Повышение производительности виртуальной сети, так как коммутатор передает кадры только узлу назначения (это возможно, если узлы подключаются непосредственно к портам коммутатора);
q Изоляция виртуальных сетей друг от друга для управления правами доступа пользователей и создания защитных барьеров на пути широковещательных «штормов».
Одним из методов построения виртуальной сети является логическое соединение портов коммутатора. Например, можно все нечетные порты коммутатора приписать к одной виртуальной сети, а все четные — к другой. В результате все рабочие станции, подключенные к нечетным портам, окажутся в одной виртуальной сети, а подключенные к четным портам — в другой, так что они будут изолированы друг от друга. Недостаток такого метода организации виртуальной сети состоит в том, что все станции, подключенные к одному и тому же порту, неизбежно будут принадлежать к одной и той же виртуальной сети.
Другой метод построения виртуальной сети использует МАС-адреса подсоединенных устройств. При этом компьютер пользователя может подключаться к любому порту коммутатора, а коммутатор автоматически определит принадлежность этого пользователя к той или иной виртуальной сети на основе МАС-адреса. Такой метод позволяет разделять пользователей, даже подключенных к одному порту коммутатора, по разным виртуальным сетям.
При всем разнообразии структурных схем сетей, построенных на коммутаторах, в них используются всего две базовые схемы: стянутая в точку магистраль и распределенная магистраль.
Стянутая в точку магистраль получила свое название из-за того, что внутренняя магистраль коммутатора объединяет все компоненты такой сети. Преимущество такой схемы — высокая производительность внутренней магистрали (до нескольких Гбит/с). Еще одним достоинством такой схемы является ее независимость от протоколов сетевого уровня эталонной модели OSI.
При необходимости распространения сети по большой территории можно воспользоваться другой базовой схемой — сетью с распределенной магистралью. Примером сети с распределенной магистралью служит двойное кольцо FDDI, к которому подключены коммутаторы сетей рабочих групп. Сеть с распределенной магистралью упрощает связь между рабочими группами, сокращает стоимость кабельной системы и допускает разнесение узлов на большие расстояния. Недостатком является существенно меньшая скорость по сравнению с сетью со стянутой в точку магистралью.
По конструктивному исполнению коммутаторы делятся на три группы:
q Автономные коммутаторы с фиксированным количеством портов;
q Модульные коммутаторы на основе шасси;
q Коммутаторы с фиксированным количеством портов, собираемые в стек.
Коммутаторы первой группы обычно предназначены для небольших рабочих групп.
Модульные коммутаторы на основе шасси чаще всего используются на магистрали сети. Модули такого коммутатора допускают замену блоков без выключения коммутатора.
Стековые коммутаторы представляют собой множество коммутаторов, которые могут работать автономно, так как выполнены в отдельных корпусах, но имеют специальный интерфейс (высокоскоростную шину), который позволяет объединить их в одну систему — единый коммутатор.
Протокол STP
Все базовые функции мостов и коммутаторов — обучение, фильтрация и продвижение пакетов — работают при существовании только одного логического пути между двумя любыми устройствами в сети. Если существуют несколько путей, то неизбежно возникают явления, которые способны парализовать работу сети. Дублирующие пути возникают логически или путем прокладки физического канала связи. Эти пути — или петли — могут также создаваться администратором сети специально для обеспечения резервной связи между устройствами сети.
Потребовалась разработка специального программного обеспечения, которое исключает из сетевой топологии все логические и физические петли. Этот протокол получил название протокола остового дерева (Spanning Tree Protocol, STP).
Протокол STP (в некоторых технических документах может встретиться название Spanning Tree Algorithm, STA) был разработан фирмой Digital Equipment Corporation. Протокол STP опубликован комитетом IEEE 802 в спецификации IEEE 802. 1d. Разработчики протокола преследовали цель устранения логических и физических петель в сетях, построенных на базе мостов. Протокол также предусматривает возможность автоматической переконфигурации сетевой топологии в случае обрывов линий связи или возникновения аппаратных ошибок.
Стандарт IEEE 802. 1d достаточно широко поддерживается производителями коммутаторов. Протокол позволяет создавать устойчивые к сбоям и отказам локальные сети. Большая надежность достигается установкой в локальную сеть дополнительного оборудования, которое при нормальной работе сети будет заблокировано и включается в работу только при возникновении сбоев или отказов в сети.
На рис. 5.8 показано влияние петель на работу сети. Принцип работы протокола STP в сети с коммутаторами можно пояснить на примере этого рисунка. Рассмотрение более сложной сети приведет к большему объему промежуточных рассуждений, а вывод будет тот же самый.
В нашем примере рабочая станция А генерирует широковещательное сообщение. Это сообщение будет получено коммутаторами Б и В от коммутатора А. Далее оно будет передано коммутаторами Б и В друг другу. После получения сообщений друг от друга эти коммутаторы перешлют его коммутатору А и весь цикл повторится вновь, породив так называемый «шторм» широковещательных сообщений.
Примерно такая же ситуация возникает и в случае передачи нешироковещального трафика. Предположим, что рабочая станция А передает сообщение рабочей станции Б. Коммутаторы к этому моменту времени еще не построили свои маршрутные таблицы. В этом случае в соответствии со стандартом IEEE 802.ld сообщение будет передано на все порты, исключая порт, принявший его. В результате коммутаторы Б и В получат данное сообщение от А, изменят свои маршрутные таблицы, запомнив, на какой порт принято сообщение, а затем передадут его друг другу, что приведет к повторному изменению маршрутных таблиц и т. д. В результате, помимо генерации избыточного трафика, содержимое маршрутных таблиц будет неправильным.
Чтобы избежать возникновения такой ситуации, необходимо удалить все петли в топологии. Для этого и предназначен протокол STP.
Работу протокола STP можно представить следующим примером (рис. 5.9). На рис. 5.9, а показана некая сетевая топология. Узлы (большие точки) означают коммутаторы. Эта сеть содержит множество петель. На рис. 5.9, б показана типология той же сети после работы протокола STP. Как видим, была произведена переконфигурация сети, из которой исключены все петли, так что между двумя станциями в этой сети существует только один путь передачи s. Теперь в этой топологии можно выделить корневой узел, то есть узел, который имеет минимальную сумму расстояний до всех остальных узлов сети отношению к другим узлам.
Протокол STP может произвести изменения в топологии при условии поддержки стандарта IEEE 802. 1d всеми коммутаторами и мостами, работающими сети.
Для успешного функционирования протокола STP коммутаторы должны обмениваться между собой служебной информацией. Такой обмен реализуется при помощи пакетов Bridge Protocol Data Unit (единицы данных мостового протокола, BPDU), которые размещаются внутри кадров канального уровня, например, кадров Ethernet или FDDI. При этом желательно, чтобы всем коммутаторам был назначен общий групповой адрес, по которому кадры, содержащие пакет BPDU, одновременно передавались бы всем заинтересованным коммутаторам в сети. Если это условие не выполняется, кадры рассылаются широковещательно. На рис. 5.10 показан формат пакета.
Поля пакета BPDU имеют следующие назначения:
q ID протокола (Protocol Indetifier) — идентификатор протокола. Поле имеет нулевое значение;
q Версия (Version) — поле имеет нулевое значение. Коммутаторы в сети должны поддерживать одну и ту же версию протокола;
q Тип сообщения (Message Type) — содержит нулевое значение при нормальной работе протокола. Поле устанавливается в 80h при извещениях об изменении сетевой топологии;
q Флаги (Flags) — используются только два бита. Первый бит сигнализирует об изменениях в сетевой топологии и обозначается ТС (Topology Change). Восьмой бит используется для подтверждения приема пакета BPDU с установленным битом ТС. Он имеет обозначение ТСА (Topology Change Acknowledgment). Остальные шесть битов этого байта не используются;
q Корневой ID (Root ID) — идентификатор корневого коммутатора. Поле состоит из восьми байт. Два первых байта — идентификатор коммутатора, оставшиеся шесть байтов — его МАС-адрес;
q Стоимость пути до корня (Root Path Cost) — характеризует суммарную стоимость пути до корневого коммутатора;
q ID коммутатора (Switch ID) — идентификатор коммутатора, отправляющего сообщение;
q ID порта (Port ID) - идентифицирует порт коммутатора, из которого отправлено сообщение;
q Возраст сообщения (Message Age) - время, прошедшее с момента отправки корневым коммутатором сообщения об обнаружении изменений в сетевой топологии;
q Максимальный возраст (Maximum Age) - указывает время, через которое текущее сообщение должно быть удалено;
q Время приветствия (Hello Time) — промежуток времени между посылками сообщений корневым коммутатором;
q Задержка перехода (Forward Delay) — пауза, которую коммутаторы должны выждать перед переходом в новое состояние после изменения сетевой топологии. Такая задержка необходима, чтобы уменьшить вероятность временного возникновения петель в ходе реконфигурации.
Для работы протокола STP сетевой администратор должен задать два параметра: идентификатор коммутатора (Switch ID) и стоимость портов (ports cost). Идентификатор коммутатора — это уникальное 8-байтовое число, которое определяется следующим образом: берется МАС-адрес устройства и в его начало добавляется задаваемое сетевым администратором двухбайтовое число. На рис. 5.11 показано формирование идентификатора.
Стоимость портов назначается либо сетевым администратором, либо вычисляется автоматически. Сетевой администратор может задать любое число от 0 до 65 535. По умолчанию это число устанавливается в соответствии с поддерживаемой скоростью передачи и вычисляется по следующей формуле:
Стоимость порта = 1000/Скорость передачи порта в Мбит/с
Так на портах, подключенных к сети Ethernet, стоимость портов будет равна 100. Таблица 5.2 содержит значения стоимостей портов для разных типов интерфейсов.
На первом шаге протокол STP выбирает корневой коммутатор. Выбор осуществляется широковещательной рассылкой всеми коммутаторами пакетов BPDU на все свои порты. При этом каждый коммутатор предлагает самого себя в качестве корневого, помещая свой идентификатор в два поля «Корневой ID» и «ID коммутатора». Если какой-либо коммутатор получает пакет, содержащий в поле «Корневой ID» значение, меньшее, чем его собственный идентификатор, данный коммутатор перестает рассылать собственный идентификатор и начинает рассылать пакеты с меньшим идентификатором. Как показывает рис. 5.12, в качестве корневого коммутатора будет выбран коммутатор А, поскольку он имеет наименьший идентификатор.
Таблица 5.2. Стоимости различных портов
Тип интерфейса
| Скорость передачи
| Стоимость
| FDDI
| 100 Мбит/с
|
| Ethernet
| 10 Мбит/с
|
| Token-Ring
| 4 Мбит/с
|
| Token-Ring
| 16 Мбит/с
|
| Tl
| 1.544 Мбит/с
|
| Последовательная линия
| 56 Мбит/с
|
| После своего выбора корневой коммутатор начинает рассылку пакетов BPDU на все свои порты. В поле «Стоимость пути до корня» корневой коммутатор помещает ноль, а следующие коммутаторы добавляют свои стоимости портов к этому числу и рассылают пакеты дальше. Эти пакеты в конечном счете доходят до корневых портов (root ports) коммутаторов (портов, через которые можно попасть в корневой коммутатор с наименьшей суммарной стоимостью).
В рассматриваемом примере коммутаторы Б и В добавляют свои стоимости портов — 25 и 30, соответственно, (предполагается, что стоимости портов назначены вручную) — и пересылают сообщения друг другу. После анализа этих сообщений, коммутатор с наибольшей стоимостью пути до корня переводит свой порт в блокированное состояние. Этим портом является порт 2 коммутатора В. Порт, находящийся в блокированном состоянии, не передает кадры, однако он продолжает принимать и обрабатывать пакеты BPDU. У коммутатора Б порт 2 становится назначенным (designated port), и только через него происходит передача кадров в подключенный сегмент сети. (На рис. 5.12 сегмент сети показан как канал связи между коммутаторами Б и В. В принципе, этот сегмент может быть образован одним или несколькими концентраторами, к которым подключены пользователи.) Таким образом, хотя коммутатор Б будет продолжать передавать кадры данных через свой порт 2, они не пройдут дальше коммутатора В, который будет их отсекать, устраняя существовавшую ранее петлю. У корневого коммутатора все порты назначенные.
Порты коммутатора, поддерживающего стандарт IEEE 802.Id, могут находиться в одном из четырех состояний:
q Блокированное (Blocking State) — в этом состоянии порт не участвует в нормальных операциях обучения, фильтрации и передачи. Пользовательский трафик не передается от коммутатора в сегмент, подключенный к этому порту. Корневые и назначенные порты никогда не блокируется. Порт в этом состоянии воспринимает пакеты BPDU, но не передает их дальше. Если за заданный период времени порт не получит эти сообщения, он переходит в следующее состояние;
q Прослушивания (Listening State) — порт в этом состоянии слушает пакеты BPDU для определения необходимости перехода в блокированное состояние или в состояние обучения. В этом состоянии порт не «заучивает» местоположение станций, не фильтрует пакеты и не передает пользовательскую информацию. Это состояние минимизирует ошибки в определении расположения станций при переконфигурации по протоколу STP. Время нахождения в этом состоянии равно значению поля «Задержка перехода» и по умолчанию составляет 15 с;
q Обучения (Learning State) — в этом состоянии порт готовится к переходу в состояние передачи. Происходит запоминание расположения станций и обновление адресной таблицы коммутатора. Длительность периода обучения порта равна длительности периода прослушивания;
q Передачи (Forwarding State) — в этом состоянии порт способен обучаться, проводить фильтрацию данных и передавать пользовательский трафик. Трафик передается от коммутатора в сегмент, а из сегмента передается через коммутатор в другие сегменты. Только корневые и назначенные порты коммутаторов могут находится в этом состоянии.
На рис. 5.13 показана результирующая сетевая топология, то есть результат работы протокола STP (об обрыве линии см. ниже).
После образования новой сетевой топологии корневой коммутатор начинает периодическую рассылку пакетов BPDU. Интервал между рассылками задается администратором при настройке и записывается в поле «Время приветствия» (по умолчанию выставляется 2 с). Остальные коммутаторы, получая эти пакеты, увеличивают содержимое поля «Возраст сообщения» и передают их дальше по сети. Если значение этого поля станет больше или равно полю «Максимальный возраст», также задаваемого администратором, сообщение будет удалено. Хотя после выбора корневого коммутатора остальные коммутаторы работают с его временными настройками, рекомендуется, чтобы эти значения на всех коммутаторах были одинаковы.
Если корневой коммутатор вышел из строя, остальные коммутаторы своевременно не получат пакеты BPDU на свои корневые порты. Каждый коммутатор ожидает получить хотя бы одно сообщение от корневого коммутатора в интервал времени, заданный значением его поля «Максимальный возраст». По истечении этого времени будет произведена переконфигурация сетевой топологии с выбором нового корневого коммутатора.
Если произошел обрыв линии связи, коммутаторы известят о том, что они не получили пакеты BPDU на свои корневые порты. Благодаря протоколу STP при наличии резервных линий связи сеть в результате обрыва не распадется на несколько независимых подсетей. При анализе работы протокола STP следует также учитывать следующие обстоятельства:
q Другой порт может быть выбран корневым, если у корневого порта коммутатора истекло время ожидания получения пакетов BPDU;
q Коммутатор сделает попытку стать корневым, если он своевременно не получает информацию от текущего корневого коммутатора;
q Некорневой порт будет пытаться стать назначенным портом для сегмента, который к нему подключен, если у него истекло время ожидания.
В случае выхода из строя коммутатора или обрыва линии связи будет произведена переконфигурация топологии по протоколу STP. При этом все коммутаторы перестают передавать кадры, очищают свои маршрутные таблицы, производят переназначение корневого коммутатора, определяют корневые, назначенные и блокированные порты и затем вновь начинают нормально функционировать. Приостановка передачи кадров на время переконфигурации производится для того, чтобы не были образованы временные петли. Время приостановки передачи определяется значением поля «Задержка перехода».
Давайте проиллюстрируем вышеизложенные положения простым примером. Предположим, что произошел обрыв линии связи между коммутаторами А и Б (рис. 5.13). В этом случае коммутатор Б своевременно не получит на свой корневой порт сообщения от корневого коммутатора и активизирует переконфигурацию, рассылая пакеты BPDU с полем «Тип сообщения», равным 80h и означающим Topology Change Notification (TCN, уведомление о смене топологии). После этого выбор корневого коммутатора, назначенных и блокированных портов коммутаторов повторится вновь, но результат будет другим — из-за отсутствия связи между коммутаторами А и Б. В результате переконфиурации мы получим последовательное соединение коммутаторов А, В и Б.
В корпоративной сети протокол STP с целью резервирования ресурсов можноиспользовать для:
q резервирования линий связи;
q резервирования коммутаторов.
На рис. 5.14 показан самый простой пример. Два коммутатора связываются двумя линиями связи, одна из которых, резервная, должна быть автоматически задействована в случае обрыва рабочей линии связи. Буквой D помечены назначенные порты, буквой R — корневые, буквой В — блокированные.
Второй пример несколько посложнее (рис. 5.15). Рассмотрим сеть, расположенную в многоэтажном здании. Коммутаторы на этажах подключены к центральному коммутатору, к которому подсоединяется сервер. В схему связей введены дополнительные линии между коммутаторами. Эти линии при штатной работе сети не задействуются. Они включаются в случае обрыва рабочей линии связи. Избыточным оборудованием в этом случае являются линии связи и дополнительные порты коммутатора. Можно провести еще одну резервную линию связи между коммутаторами 2 и 4, что обеспечит работоспособность сети даже в случае обрыва и рабочей, и резервной линий связи между этими коммутаторами.
На рис. 5.16 показан пример построения сети с резервированием коммутаторов. Такая схема рекомендуется при большой территориальной протяженности era. В этой сети коммутаторы обеспечивают поддержку протокола STP, а также играют роль усилителей.
|