Теоретические положения
Протокол STP
Предположим, что в сети имеется два коммутатора, соединенных друг с другом двумя каналами связи. Пусть ПК1, подключенный к коммутатору 1, инициирует передачу данных до ПК2, подключенного к коммутатору 2. В служебных таблицах коммутаторов ещё нет записей ни о ПК1, ни о ПК2. Получив фрейм от ПК1, коммутатор 1 анализирует свою таблицу MAC адресов и обнаруживает, что он «не знает» к какому из его интерфейсов подключен получатель этого фрейма (при этом запоминает, что отправитель подключен через соответствующий канал). В результате коммутатор 1 ретранслирует полученный фрейм во все свои интерфейсы, кроме того, через который этот фрейм был получен (к которому подключен ПК1). Фрейм от ПК1 будет передан по каналу 1 и по каналу 2 коммутатору 2 (т.е. в сети с этого момента существует уже два фрейма). Предположим, что коммутатор 2 сначала получит фрейм по каналу 1. Он также проверит свою таблицу MAC адресов и обнаружит, что никакой информации о получателе фрейма у него нет. Так же, как и коммутатор 1, он ретранслирует этот фрейм во все свои интерфейсы (канал 2 и канал до ПК2). Коммутатор 1, получив по каналу 2 фрейм опять проверит, что он «не знает» информации о получателе фрейма и ретранслирует его в канал 1 и канал до ПК1. В результате в сети появитсяфрейм, который будет непрерывно циркулировать между коммутатором 1 и коммутатором 2. Аналогичная ситуация сложится и с фреймом, который поступит от коммутатора 1 в коммутатор 2 по каналу 2. Будет уже два фрейма, бесконечно циркулирующих в противоположных направлениях. Бесконечная передача фреймов прекратиться после того, как ПК2 отправит хотя бы один фрейм в ответ ПК1. В этом случае в коммутаторе 2 появится запись о то, что ПК2 подключен к соответствующему интерфейсу и все приходящие фреймы будут переданы уже только в один канал. Циркуляция фреймов прекратится. Аналогичным образом будет происходить обработка фреймов в сети с количеством коммутаторов больше 2 и их петлевым соединением.
|
А что произойдет в случае, если ПК1 отправит широковещательный фрейм? Его обработка будет производиться аналогичным образом, что и обработка фрейма, предназначенного ПК2. Отличие лишь будет в том, что в служебных таблицах коммутаторов никогда не появится запись о получателе такого фрейма, и он будет циркулировать по сети бесконечно.
Широковещательная передача данных активно используется всеми сетевыми устройствами (например, для разыменования IP адресов). В результате количество бесконечно циркулирующих фреймов в сети станет на столько большим, что коммутаторы будут не способны обработать их. Такая ситуация называется «цифровой (широковещательный) шторм».
В то же самое время простейшим способом реализации отказоустойчивости является дублирование элементов, могущих привести к отказу. И для устранения различных неполадок, связанных с кабельными соединениями самым простым способом является прокладка дополнительного резервного кабеля. Для решения задачи исключения петлевых конфигураций с размножением кадров и автоматического переключения на резервные каналы служит протокол остового дерева (STP, SpanningTreeProtocol). Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, связанных избыточными соединениями. STP решает эту задачу, автоматически блокируя соединения, которые в данный момент для полной связности коммутаторов являются избыточными.
|
Алгоритм работы STP
1. После включения коммутаторов в сеть, по умолчанию каждый коммутатор считает себя корневым (root).
2. Каждый коммутатор начинает посылать по всем портам конфигурационные Hello BPDU пакеты раз в 2 секунды.
3. Если мост получает BPDU с идентификатором моста (Bridge ID) меньшим, чем свой собственный, он прекращает генерировать свои BPDU и начинает ретранслировать BPDU с этим идентификатором. Таким образом в конце концов в этой сети Ethernet остаётся только один мост, который продолжает генерировать и передавать собственные BPDU. Он и становится корневым мостом (rootbridge).
4. Остальные мосты ретранслируют BPDU корневого моста, добавляя в них собственный идентификатор и увеличивая счётчик стоимости пути (pathcost).
5. Для каждого сегмента сети, к которому присоединены два и более портов мостов, происходит определение designatedport — порта, через который BPDU, приходящие от корневого моста, попадают в этот сегмент.
6. После этого все порты в сегментах, к которым присоединены 2 и более портов моста, блокируются за исключением rootport и designatedport.
7. Корневой мост продолжает посылать свои Hello BPDU раз в 2 секунды.
Возможные состояния портов в протоколе STP
1. RootPort (корневой) — порт для передачи трафика корневому коммутатору. Каждый некорневой коммутатор имеет только один корневой порт, выбранный из соображений минимальной стоимости пути.
|
2. DesignatedPort (назначенный) — некорневой порт моста между сегментами сети, принимающий трафик из соответствующего сегмента. Сам мост также называется назначенным. В каждом сегменте сети может быть только один назначенный порт. У корневого коммутатора все порты - назначенные.
3. Non-designatedPort (неназначенный) — порт, не являющийся корневым, или назначенным. Передача фреймов данных через такой порт запрещена.
4. DisabledPort (отключенный) — порт, не участвующий в STP, либо выключенный административно (командой shutdown).
Основныекомандыдлянастроексистемы:
На всех коммутаторах Ciscoпротокол STPвключен по умолчанию и не требует от администратора специальных действий по конфигурированию для начала работы.Особенностью работы протокола STPв коммутаторах Ciscoявляется то, что для каждого VLANработает своя копия протокола STP. Соответственно, в случае необходимости, настройку STPнеобходимо проводить указывая конкретный VLAN, и проверять параметры также учитывая эту особенность. Так, например, при изменении приоритета коммутатора может получиться конфигурация, когда в различныхVLANкорневые коммутаторы также различны.
Команда | Назначение |
copy running-config startup-config | Копирование текущей конфигурации в загрузочную («сохранение настроек») |
showspanning-tree[параметры] | Просмотр состояния протокола STP, в выводе команды на корневом коммутаторе присутствует строка «Thisbridgeistheroot» |
spanning-tree vlan<номерVLAN> | Включение протокола STPв указанномVLAN |
no spanning-tree vlan<номерVLAN> | Выключение протокола STPв указанномVLAN. Категорически не рекомендуется проделывать подобную операцию без гарантированного отсутствия петель в конфигурации сети |
spanning-tree vlan<номерVLAN> priority <приоритет> | Назначение приоритета коммутатора для указанного VLAN, значение приоритета указывается в диапазоне от 0 до 61440 с шагом 4096, значение по умолчанию 32768, корневой коммутатор выбирается по наименьшему значению приоритета |
spanning-tree vlan<номерVLAN> root primary | Автоматическое определение значения приоритета в сети для данного коммутатора таким образом, чтобы он выигрывал выборы корневого |
spanning-tree vlan<номерVLAN> root secondary | Автоматическое определение значения приоритета в сети для данного коммутатора таким образом, чтобы он выигрывал выборы в случае прекращения работы корневого коммутатора |
Агрегирование каналов
Агрегирование каналов позволяет решить две задачи:
- повысить пропускную способность канала
- обеспечить резерв на случай выхода из строя одного из каналов
Большинство технологий по агрегированию позволяют объединять только параллельные каналы. То есть такие, которые начинаются на одном и том же устройстве и заканчиваются на другом.
Если рассматривать избыточные соединения между коммутаторами, то без использования специальных технологий для агрегирования каналов, передаваться данные будут только через один интерфейс, который не заблокирован STP. Такой вариант позволяет обеспечить резервирование каналов, но не дает возможности увеличить пропускную способность.
Технологии по агрегированию каналов позволяют использовать все интерфейсы одновременно. При этом устройства контролируют распространение широковещательных фреймов (а также multicast и unknownunicast), чтобы они не зацикливались. Для этого коммутатор, при получении широковещательного фрейма через обычный интерфейс, отправляет его в агрегированный канал только через один интерфейс. А при получении широковещательного фрейма из агрегированного канала, не отправляет его назад.
Хотя агрегирование каналов позволяет увеличить пропускную способность канала, не стоит рассчитывать на идеальную балансировку нагрузки между интерфейсами в агрегированном канале. Технологии по балансировке нагрузки в агрегированных каналах, как правило, ориентированы на балансировку по таким критериям: MAC-адресам, IP-адресам, портам отправителя или получателя (по одному критерию или их комбинации).
То есть, реальная загруженность конкретного интерфейса никак не учитывается. Поэтому один интерфейс может быть загружен больше, чем другие. Более того, при неправильном выборе метода балансировки (или если недоступны другие методы) или в некоторых топологиях, может сложиться ситуация, когда реально все данные будут передаваться, например, через один интерфейс.
Основныекомандыдлянастроексистемы:
Команда | Назначение |
showetherchannel[параметры] | Просмотр состояния агрегированных портов |
interface port-channel <номергруппы> | Создание группового интерфейса. В настоящее время не является обязательным, если в команде включения интерфейса в группу указан несуществующий номер – интерфейс будет создан автоматически |
no interface port-channel <номергруппы> | Удаление группового интерфейса |
channel-group <номергруппы> modeactive | Включение интерфейса в группу с указанным номером Предварительно необходимо перейти в режим настройки сетевого интерфейса командой interface<номер интерфейса> или группы интерфейсов командой interfacerange<номер начального – номер конечного>, если настраиваемые порты расположены подряд На разных коммутаторах номера групп не обязаны совпадать, они используются для разделения групп только в пределах коммутатора |
no channel-group | Исключение интерфейса из группы (номер определяется автоматически) Предварительно необходимо перейти в режим настройки сетевого интерфейса командой interface<номер интерфейса> или группы интерфейсов командой interfacerange<номер начального – номер конечного>, если настраиваемые порты расположены подряд |
port-channel load-balance <режим> | Задает принцип распределения пакетов по физическим каналам, составляющим групповой канал |
Задание
Задание