Построение коммутируемых компьютерных сетей

Функции повышения надежности и производительности

Разбить на страницы
Показывать лекцию целиком

В настоящее время для повышения надежности и производительности каналов связи в распоряжении интеграторов и сетевых администраторов имеется целый набор протоколов и функций. Наиболее распространенным является создание резервных связей между коммутаторами на основе двух технологий:

  • резервирование соединений с помощью протоколов семейства Spanning Tree;
  • балансировка нагрузки, обеспечивающая параллельную передачу данных по всем альтернативным соединениям с помощью механизма агрегирования портов.
  • Протоколы Spanning Tree

    Протокол связующего дерева Spanning Tree Protocol (STP) является протоколом 2 уровня модели OSI, который позволяет строить древовидные, свободные от петель, конфигурации связей между коммутаторами локальной сети. Помимо этого, алгоритм обеспечивает возможность автоматического резервирования альтернативных каналов связи между коммутаторами на случай выхода активных каналов из строя.

    В настоящее время существуют следующие версии протоколов связующего дерева:

  • IEEE 802.1D Spanning Tree Protocol (STP);
  • IEEE 802.1w Rapid Spanning Tree Protocol (RSTP);
  • IEEE 802.1s Multiple Spanning Tree Protocol (MSTP).
  • Spanning Tree Protocol (STP)

    Понятие петель

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

  • широковещательные штормы;
  • множественные копии кадров;
  • множественные петли.
  • Широковещательный шторм.

    Распространение широковещательных сообщений в сетях с петлями представляет серьезную проблему. Предположим, что первый кадр, поступивший от одного из узлов, является широковещательным. Тогда все коммутаторы будут пересылать кадры бесконечно, как показано на рис. 11.1 (пример 1), используя всю доступную полосу пропускания сети и блокируя передачу других кадров во всех сегментах.

    Множественные копии кадров.

    Еще одна проблема заключается в том, что коммутатор нередко получает несколько копий одного кадра, одновременно приходящих из нескольких участков сети. В этом случае таблица коммутации не сможет определить расположение устройства, потому что коммутатор будет получать кадр из нескольких каналов. Может случиться так, что коммутатор вообще не сможет переслать кадр, т.к. будет постоянно обновлять таблицу коммутации.

    Множественные петли.

    Одна из самых сложных проблем — это множественные петли, образующиеся в объединенной сети. Возможно появление петли внутри других петель. Если за этим последует широковещательный шторм, то сеть не сможет выполнять коммутацию кадров.

    (рис 11.1) Примеры петель между коммутаторами

    Для решения этих проблем и был разработан протокол связующего дерева, который был определен в стандарте IEEE 802.1D-1998.

    Коммутаторы, поддерживающие протокол STP, автоматически создают древовидную конфигурацию связей без петель в компьютерной сети. Такая конфигурация называется связующим деревом — Spanning Tree (иногда ее называют остовым или покрывающим деревом). Конфигурация связующего дерева строится коммутаторами автоматически с использованием обмена служебными кадрами, называемыми Bridge Protocol Data Units (BPDU).

    Построение активной топологии связующего дерева

    Для построения устойчивой активной топологии с помощью протокола STP необходимо с каждым коммутатором сети ассоциировать уникальный идентификатор моста (Bridge ID), а с каждым портом коммутатора ассоциировать стоимость пути (Path Cost) и идентификатор порта (Port ID).

    Процесс вычисления связующего дерева начинается с выбора корневого моста (Root Bridge), от которого будет строиться дерево. В качестве корня дерева выбирается коммутатор с наименьшим значением идентификатора моста. Идентификатор моста — это 8-байтное поле, которое состоит из 2-х частей: приоритета моста (2 байта), назначаемого администратором сети, и МАС-адреса блока управления коммутатора (6 байт). При сравнении идентификаторов двух коммутаторов сначала сравниваются значения приоритетов. Корневым мостом становится коммутатор с наименьшим значением приоритета. Если они одинаковы (по умолчанию приоритет равен 32768), то корневой мост определяется по наименьшему МАС-адресу.

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

    Второй этап работы STP — выбор корневых портов (Root Port).

    Когда процесс выбора корневого моста завершен, оставшиеся коммутаторы сети определяют стоимость каждого возможного пути от себя до корня дерева. Стоимость пути рассчитывается как суммарное условное время на передачу данных от порта данного коммутатора до порта корневого моста. Условное время сегмента рассчитывается как время передачи одного бита информации через канал с определенной полосой пропускания. Стоимости пути по умолчанию для каждого канала определены в стандарте IEEE 802.1D-1998.

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

    (рис 11.2) Пример функционирование протокола STP

    Третий шаг работы STP — определение назначенных портов (Designated Port).

    Каждый сегмент в коммутируемой сети имеет один назначенный порт. Этот порт функционирует как единственный порт моста, т.е. принимает кадры от сегмента и передает их в направлении корневого моста через корневой порт данного коммутатора. Коммутатор, содержащий назначенный порт для данного сегмента, называется назначенным мостом (Designated Bridge) этого сегмента. Назначенный порт сегмента определяется путем сравнения значений стоимости пути всех маршрутов от данного сегмента до корневого моста. Им становится порт, имеющий наименьшее значение стоимости, среди всех портов, подключенных к данному сегменту. Если минимальные значения стоимости пути окажутся одинаковыми у двух или нескольких портов, то для выбора назначенного порта сегмента STP принимает решение на основе последовательного сравнения идентификаторов мостов и идентификаторов портов.

    У корневого моста все порты являются назначенными, а их расстояние до корня полагается равным нулю. Корневого порта у корневого моста нет.

    После выбора корневых и назначенных портов все остальные порты коммутаторов сети переводятся в состояние Blocking ("Блокировка"), то есть такое, при котором они принимают и передают только кадры BPDU. При таком выборе активных портов в сети исключаются петли, и оставшиеся связи образуют связующее дерево.

    Bridge Protocol Data Unit (BPDU)

    Вычисление связующего дерева происходит при включении коммутатора и при изменении топологии. Эти вычисления требуют периодического обмена информацией между коммутаторами связующего дерева, что достигается при помощи специальных кадров, называемых блоками данных протокола моста — BPDU (Bridge Protocol Data Unit).

    Коммутатор отправляет BPDU, используя уникальный МАС-адрес порта в качестве адреса-источника и многоадресный МАС-адрес протокола STP 01-80-C2-00-00-00 в качестве адреса-приемника. Кадры BPDU помещаются в поле данных кадров канального уровня, например, кадров Ethernet.

    Внимание: иногда, с целью повышения безопасности, сетевым администраторам необходимо отключать возможность передачи кадров BPDU на граничные коммутаторы сети, чтобы избежать получения случайных кадров BPDU клиентскими портами, которые могут распространить вычисления STP по клиентским сетям. Управляемые коммутаторы D-Link поддерживают возможность включения и отключения передачи кадров BPDU для каждого порта.

    Существует три типа кадров BPDU:

  • Configuration BPDU (CBPDU) — конфигурационный кадр BPDU, который используется для вычисления связующего дерева (тип сообщения: 0x00);
  • Topology Change Notification (TCN) BPDU — уведомление об изменении топологии сети (тип сообщения: 0x80);
  • Topology Change Notification Acknowledgement (TCA) — подтверждение о получении уведомления об изменении топологии сети.
  • Коммутаторы обмениваются BPDU через равные интервалы времени (по умолчанию 2 сек.), что позволяет им отслеживать состояние топологии сети.

    Формат кадра BPDU
    поляБайты
    Идентификатор протокола (Protocol Identifier)2
    Версия протокола (Protocol Version Identifier)1
    Тип BPDU (BPDU Type)1
    Флаги (Rags)1
    Идентификатор корневого моста (Root Identifier)8
    Расстояние до корневого моста (Root Path Cost)2
    Идентификатор моста (Bridge Identifier)8
    Идентификатор порта (Port Identifier)2
    Время жизни сообщения (Message Age)2
    Максимальное время жизни сообщения (Max Age)2
    Время приветствия (Hello Time)2
    Задержка смены состояний (Forward Delay)2

    Кадр BPDU состоит из следующих полей:

  • идентификатор протокола (Protocol Identifier) — 2 байта. Значение всегда равно 0;
  • версия протокола STP (Protocol Version Identifier) — 1 байт. Значение всегда равно 0;
  • тип BPDU (BPDU Type) — 1 байт. Значение "00" — конфигурационный BPDU, "01" — изменение топологии;
  • флаги (Flags) — 1 байт. Бит 1 — флаг изменения топологии, бит 8 — флаг подтверждения изменения топологии;
  • идентификатор корневого моста (Root Identifier) — 8 байтов. Идентификатор текущего корневого моста;
  • расстояние до корневого моста (Root Path Cost) — 2 байта. Суммарная стоимость пути до корневого моста;
  • идентификатор моста (Bridge Identifier) — 8 байтов. Идентификатор текущего моста;
  • идентификатор порта (Port Identifier) — 2 байта. Уникальный идентификатор порта, который отправил этот BPDU;
  • время жизни сообщения (Message Age) — 2 байта. Нефиксированный временной интервал в секундах, прошедший с момента отправки BPDU корневым мостом. Служит для выявления устаревших сообщений BPDU. Первоначальное значение равно нулю. По мере передачи кадра BPDU по сети каждый коммутатор добавляет ко времени жизни сообщения время его задержки данным коммутатором. По умолчанию оно равно 1 сек. Значение параметра Message Age должно быть меньше значения таймера Max Age;
  • максимальное время жизни сообщения (Max Age) — 2 байта. Временной интервал в секундах, определяющий максимальное время хранения конфигурации STP, прежде чем коммутатор ее отбросит;
  • время приветствия (Hello Time) — 2 байта. Временной интервал в секундах, через который посылаются кадры BPDU;
  • задержка смены состояний (Forward Delay) — 2 байта. Временной интервал в секундах, в течение которого порт коммутатора находится в состояниях "Прослушивание" и "Обучение".
  • Состояния портов

    В процессе построения топологии сети каждый порт коммутатора проходит несколько стадий:

  • Blocking ("Блокировка") — при инициализации коммутатора все порты (за исключением отключенных) автоматически переводятся в состояние "Заблокирован". В этом случае порт принимает и обрабатывает только кадры BPDU. Все остальные кадры отбрасываются;
  • Listening ("Прослушивание") — в этом состоянии порт продолжает принимать, обрабатывать и ретранслировать только кадры BPDU. Из этого состояния порт может перейти в состояние "Заблокирован", если получит BPDU с лучшими параметрами, чем его собственные (стоимость пути, идентификатор моста или порта). В противном случае, при истечении периода, установленного таймером задержки смены состояний (Forward Delay), порт перейдет в следующее состояние "Обучение";
  • Learning ("Обучение") — порт начинает принимать все кадры и на основе МАС-адресов источника строить таблицу коммутации. Порт в этом состоянии все еще не продвигает кадры. Порт продолжает участвовать в работе алгоритма STP и при поступлении BPDU с лучшими параметрами переходит в состояние "Заблокирован". В противном случае, при истечении периода, установленного таймером задержки смены состояний, порт перейдет в следующее состояние "Продвижение";
  • Forwarding ("Продвижение") — в этом состоянии порт может обрабатывать кадры данных в соответствии с построенной таблицей коммутации. Также продолжают приниматься, передаваться и обрабатываться кадры BPDU;
  • Disable ("Отключен") — в это состояние порт переводит администратор. Отключенный порт не участвует ни в работе протокола STP, ни в продвижении кадров данных. Порт можно также вручную включить, и первоначально он перейдет в состояние "Заблокирован".
  • (рис 11.3) Состояния портов

    В процессе нормальной работы корневой мост продолжает генерировать служебные кадры BPDU, а остальные коммутаторы продолжают их принимать своими корневыми портами и ретранслировать назначенными. Если по истечении максимального времени жизни сообщения (по умолчанию — 20 секунд) корневой порт любого коммутатора сети не получит служебный кадр BPDU, то он инициализирует новую процедуру построения связующего дерева.

    Таймеры STP

    Для того чтобы все коммутаторы сети имели возможность получить точную информацию о конфигурации связующего дерева, в протоколе STP используются следующие таймеры.

    Hello Time — это интервал времени, через который корневой мост отправляет конфигурационные BPDU. Значение таймера Hello Time, настроенное на корневом мосте, будет определять значения таймеров Hello Time на всех некорневых коммутаторах, т.к. они просто пересылают конфигурационные BPDU, когда получают их от корня. Значение таймера Hello Time по умолчанию 2 секунды: диапазон возможных значений от 1 до 10 секунд.

    Forward Delay — это интервал времени, в течение которого порт коммутатора находится в состояниях "Прослушивание" и "Обучение". Такая задержка смены состояний необходима, чтобы исключить возможность временного возникновения альтернативных маршрутов при неодновременной смене состояний портов во время реконфигурации. Значение таймера Forward Delay по умолчанию 15 секунд. диапазон возможных значений от 4 до 30 секунд.

    Max Age — это интервал времени, в течение которого коммутатор хранит параметры текущей конфигурации связующего дерева. Значение таймера Max Age устанавливается корневым мостом и позволяет гарантировать, что все коммутаторы сети обладают одинаковой информацией о времени хранения конфигурации STP. Если период времени, определенный таймером, истек, а коммутатор за это время не получил кадр BPDU от корневого моста, то он начинает считать себя корневым мостом и рассылает свои собственные BPDU всем коммутаторам сети, инициируя новую процедуру построения связующего дерева. Значение таймера Max Age по умолчанию 20 секунд, диапазон возможных значений от 6 до 40 секунд.

    Значения таймеров Hello Time, Forward Delay и Max Age могут быть вручную настроены администратором сети на коммутаторе. Обычно эти настройки выполняются только на коммутаторе, являющемся корневым для данной топологии связующего дерева. При настройке важно помнить, что неправильно подобранные значения таймеров могут значительно увеличить время сходимости топологии STP и снизить производительность сети, поэтому рекомендуется использовать значения таймеров по умолчанию.

    Изменение топологии

    Коммутатор отправляет BPDU с уведомлением об изменении топологии (Topology Change Notification BPDU, TCN BPDU) в случае возникновения одного из следующих событий:

  • некорневой мост получает сообщение TCN BPDU на свой назначенный порт;
  • после истечения времени, определенного таймером Forward Delay, порт переходит в состояние Forwarding, но коммутатор уже имеет назначенный порт для данного сегмента;
  • порт, находившийся в состоянии Forwarding или Listening, переходит в состояние Blocking (в случае проблем с каналом связи);
  • когда коммутатор становится корневым мостом.
  • TCN BPDU отправляется коммутатором в тот сегмент сети, к которому подключен его корневой порт. Эти BPDU будут передаваться через интервал Hello до тех пор, пока коммутатор не получит подтверждение Topology Change Notification Acknowledgement (TCN-ACK) от вышестоящего коммутатора. Соседний коммутатор продолжит трансляцию TCN BPDU через свой корневой порт в направлении корневого моста сети, используя такую же процедуру. Этот процесс будет продолжаться до тех пор, пока TCN BPDU не достигнет корневого моста.

    (рис 11.4) Процесс уведомления об изменении топологии

    Когда корневой мост получает TCN BPDU или сам изменяет топологию, он устанавливает во всех передаваемых конфигурационных BPDU флаг изменения топологии (Topology Change, TC) на период времени, равный сумме значений таймеров Forward Delay и Max Age. Когда нижележащие коммутаторы получат конфигурационные BPDU с флагом Topology Change, они установят значения таймеров старения записей адресных таблиц (Aging Timer) равными длительности таймера задержки передачи Forward Delay.

    Управляемые коммутаторы D-Link при настройке функции STP позволяют включать и отключать на каждом порте возможность приема TCN BPDU с помощью параметра restrictedtcn. По умолчанию параметр restrictedtcn отключен. Использование данного параметра позволяет избежать сетевых атак, связанных с отправкой ложных кадров TCN BPDU.

    Настройка STP

    Рассмотрим пример настройки STP на коммутаторах D-Link в сети, показанной на рис. 11.5 .

    (рис 11.5) Схема сети Внимание: по умолчанию протокол STP на коммутаторах D-Link отключен.

    Настройка коммутатора 1

  • Активизировать STP
    enable stp
    config stp version stp
    
  • Установить коммутатору 1 наименьшее значение приоритета, чтобы он был выбран корневым мостом (приоритет по умолчанию равен 32768)
    config stp priority 4096 instance_id 0
    
  • Настроить порты STP
    config stp ports 1-24 edge true
    
  • Настройка коммутатора 2

    enable stp
    config stp version stp
    config stp ports 1-24 edge true
    

    Rapid Spanning Tree Protocol

    Протокол Rapid Spanning Tree Protocol (RSTP) является развитием протокола STP и в настоящее время определен в стандарте IEEE 802.1D-2004 (ранее был определен в стандарте IEEE 802.1w-2001). Он был разработан для преодоления отдельных ограничений протокола STP, связанных с его производительностью. Протокол RSTP значительно ускоряет время сходимости коммутируемой сети за счет мгновенного перехода корневых и назначенных портов в состояние продвижения.

    RSTP может работать с оборудованием, поддерживающим STP, однако все преимущества от его использования будут потеряны.

    Основные понятия и терминология протоколов STP и RSTP одинаковы. Существенным их отличием является способ перехода портов в состояние продвижения и то, каким образом этот переход влияет на роль порта в топологии. RSTP объединяет состояния Disabled, Blocking и Listening, используемые в STP, и создает единственное состояние Discarding ("Отбрасывание"), при котором порт не активен.

    (рис 11.6) Состояния портов протоколов STP и RSTP

    Различия между состояниями портов в STP и RSTP
    Состояние порта STPАдминистративное состояние порта коммутатораПорт изучает МАС-адреса?Состояние порта RSTPРоль порта в активной топологии
    DisableDisabledНетDiscardingИсключен (Disabled)
    DisableEnabledНетDiscardingИсключен (Disabled)
    BlockingEnabledДаDiscardingИсключен (Alternate, Backup)
    ListeningEnabledДаDiscardingВключен (Root, Designated)
    LearningEnabledДаLearningВключен (Root, Designated)
    ForwardingEnabledДаForwardingВключен (Root, Designated)

    Роли портов

    Выбор активной топологии завершается присвоением протоколом RSTP определенной роли каждому порту. Эти роли следующие:

  • корневой порт (Root Port);
  • назначенный порт (Designated Port);
  • альтернативный порт (Alternate Port);
  • резервный порт (Backup Port).
  • Корневой порт — это порт коммутатора, который имеет по сети кратчайшее расстояние (в терминах стоимости пути) до корневого коммутатора.

    Порт является назначенным, если он посылает BPDU с наилучшими параметрами в тот сегмент, к которому подключен.

    Роли "корневой порт" и "назначенный порт" включают порт в активную топологию.

    В RSTP существуют две дополнительные роли — альтернативный порт (Alternate) и резервный порт (Backup), соответствующие состоянию "Заблокирован" в STP и исключающие порт из активной топологии.

    (рис 11.7) Корневой порт (рис 11.8) Назначенный порт

    Альтернативный порт предлагает альтернативный основному маршруту путь в направлении корневого моста и может заменить корневой порт в случае выхода его из строя.

    (рис 11.9) Альтернативный порт

    Резервный порт предназначен для резервирования пути, предоставляемого назначенным портом в направлении сегментов сети, и не может гарантировать альтернативное подключение к корневому мосту. Резервные порты существуют только в конфигурациях, где есть два или более соединения данного моста с данной сетью (сегментом сети).

    (рис 11.10) Резервный порт

    Формат BPDU

    Формат кадра BPDU протокола RSTP аналогичен формату BPDU протокола STP за исключением следующего:

  • поля версии протокола и типа BPDU RSTP содержат значение 2;
  • в поле Flag BPDU протокола STP используются только два бита, которые определяют флаги изменения топологии TC и подтверждения TC (TCA). В поле Flag протокола RSTP используются все 8 бит. Бит 1 — флаг изменения топологии (Topology Change), бит 2 — флаг предложения (Proposal), биты 3 и 4 предназначены для кодирования роли порта (Port Role), бит 5 — флаг изучения (Learning), бит 6 — флаг продвижения (Forwarding), бит 7 — флаг соглашения (Agreement), бит 8 — флаг подтверждения TC (Topology Change Acknowledgment).
  • кадр BPDU протокола RSTP имеет дополнительное поле Version 1 Length длиной 1 байт. Это поле содержит значение 0000 0000 и показывает, что BPDU не содержит никакой информации протокола STP версии 1.
  • Быстрый переход в состояние продвижения

    Процесс построения связующего дерева у протоколов STP и RSTP одинаков. Однако при работе RSTP порт может перейти в состояние продвижения значительно быстрее, т.к. он больше не зависит от настроек таймеров. Протокол RSTP предоставляет механизм предложений и соглашений, который обеспечивает быстрый переход корневых и назначенных портов в состояние Forwarding, а альтернативных и резервных портов - в состояние Discarding. Для этого протокол RSTP вводит два новых понятия: граничный порт и тип соединения.

    полеБайты
    Идентификатор протокола (Protocol Identifier)2
    Версия протокола (Protocol Version Identifier)1
    Тип BPDU (BPDU Type)1
    Флат (Rags)1
    Идентификатор корневого моста (Root Identifier)8
    Расстояние до корневого моста (Root Path Cost)2
    Идентификатор моста (Bridge Identifier)8
    Идентификатор порта (Port Identifier)2
    Время жизни сообщения (Message Age)2
    Максимальное время жизни сообщения (Max Age)2
    Время приветствия (Hello Time)2
    Задержка смены состояний (Forward Delay)2
    Длина версии 1 (Version 1 Length)1
    (рис 11.11) Формат кадра BPDU протокола RSTP

    Граничным портом (Edge Port) объявляется порт, непосредственно подключенный к сегменту сети, в котором не могут быть созданы петли. Например, порт подключен к рабочей станции, которая может периодически включаться или выключаться и активизировать механизм уведомления об изменении топологии или чтобы избежать распространения вычислений STP по клиентским сетям, с целью повышения безопасности. Граничный порт мгновенно переходит в состояние продвижения, минуя состояния прослушивания и обучения. Граничный порт теряет свой статус и становится обычным портом связующего дерева в том случае, если получит кадр BPDU.

    При работе протокола RSTP назначенный порт может выполнять быстрый переход в состояние продвижения в соединениях типа "точка — точка" (Point-to-Point, P2P), т.е. если он подключен только к одному коммутатору.

    Порты, удовлетворяющие, по крайней мере, одному из следующих условий, автоматически рассматриваются протоколом RSTP как порты Р2Р:

  • порт принадлежит агрегированному каналу связи;
  • на порте включена функция автосогласования и она определила работу в полнодуплексном режиме;
  • работа в полнодуплексном режиме на порте была настроена вручную администратором сети.
  • Администратор сети может вручную включать или выключать статусы Edge и P2P либо устанавливать их работу в автоматическом режиме, выполнив соответствующие настройки порта коммутатора.

    (рис 11.12) Граничные порты и порты "точка — точка"

    Механизм предложений и соглашений

    На рис. 11.13 показан процесс работы механизма предложений и соглашений. Коммутаторы АиВ соединены между собой каналом типа "точка — точка". Предположим, что коммутатор А является корневым мостом сети. Коммутатор А посылает коммутатору В кадр BPDU с установленным флагом Proposal (шаг 1 на рис. 11.12 ), предлагая себя в качестве назначенного моста этого сегмента (BPDU-предложение будет передаваться только в том случае, если порт находится в состоянии Discarding или Learning). После получения предложения коммутатор В выберет в качестве нового корневого порта тот порт, через который этот BPDU был получен (порт р2), и переведет все неграничные порты в заблокированное состояние. Все остальные порты будут синхронизированы с новой информацией, чтобы иметь непротиворечивую информацию о топологии сети.

    Порт является синхронизированным "in-sync", если он удовлетворяет следующим критериям:

  • он находится в заблокированном состоянии (это состояние Discarding в стабильной топологии);
  • он является граничным портом.
  • Чтобы продемонстрировать действие метода синхронизации на различные типы портов, предположим, что в коммутаторе В имеются граничные порты p3 и р5 и назначенный порт p4. Порты p3 и p5 уже удовлетворяют одному из условий синхронизации. Чтобы находиться в режиме синхронизации (шаг 2 на рис. 11.12 ), коммутатору В необходимо заблокировать порт р4, переведя его в состояние Discarding.

    После того, как коммутатор В убедится, что все порты синхронизированы, он разблокирует свой новый корневой порт (шаг 3 на рис. 11.12 ) и отправит через него коммутатору А согласие на предложение. Это сообщение является копией BPDU-предложения, в котором вместо бита Proposal установлен бит Agreement. Благодаря этому порт pi коммутатора А точно знает, какому предложению соответствует полученное согласие.

    После этого коммутатор А мгновенно переведет свой назначенный порт р1 в состояние продвижения.

    (рис 11.13) Механизм предложений и соглашений

    Находясь в заблокированном состоянии порт р4 коммутатора В начнет отсылать предложения нижележащему коммутатору и пытаться быстро перейти в состояние продвижения (шаг 4 на рис. 11.12 ).

    Новый механизм изменения топологии

    1. Определение изменений топологии.

    В протоколе RSTP только неграничные порты, переходя в состояние продвижения, могут вызвать процесс изменения топологии. Это означает, что разрыв соединения больше не рассматривается как изменение в топологии, в отличие от протокола STP, т.е. при переходе порта в заблокированное состояние соответствующий коммутатор не генерирует TCN BPDU. Когда мост RSTP обнаруживает изменение топологии, происходит следующее:

  • коммутатор устанавливает начальное значение таймера TC While равным удвоенному интервалу Hello для всех неграничных назначенных портов и корневого порта. While Timer — это интервал времени, в течение которого мост RSTP активно информирует остальные мосты в сети об изменении топологии;
  • удаляет МАС-адреса, ассоциированные со всеми неграничными назначенными портами и корневым портом;
  • до тех пор, пока не истечет время, установленное таймером TC While, запущенным на порте, в BPDU, отправляемых через него, будет установлен бит ТС.
  • 2. Распространение информации об изменении топологии.

    Когда коммутатор получает от соседа BPDU с установленным битом ТС, происходит следующее:

  • коммутатор удаляет все МАС-адреса, изученные его неграничными назначенными портами и корневым портом, за исключением того порта, который получил информацию об изменении топологии;
  • коммутатор запускает таймер TC While и отправляет BPDU с установленным битом ТС через все неграничные порты (RSTP не использует специальные TCN BPDU, за исключением случаев, когда требуется уведомить коммутатор, поддерживающий только протокол STP).
  • Коммутатор-отправитель BPDU с битом ТС непосредственно распространяет информацию об изменении топологии через всю сеть (в отличие от STP, где это может выполнить только корневой мост). Этот механизм распространения информации об изменении топологии быстрее, чем его аналог в протоколе STP, т.к. нет необходимости ждать, когда будет уведомлен корневой мост, и потом поддерживать состояние изменения топологии для всей сети в течение периода времени, равного сумме значений таймеров Forward Delay и Max Age.

    (рис 11.14) Новый механизм изменения топологии

    Стоимость пути RSTP

    Протокол RSTP определяет следующие рекомендованные значения стоимости пути по умолчанию для портов коммутаторов. Эти значения вычисляются в соответствии со скоростью канала связи, к которому подключен порт.

    Стоимость пути RSTP
    ПараметрСкорость каналаРекомендованное значениеРекомендованный диапазонДиапазон значений
    Стоимость пути10 Мбит/с2 000 000200 000— 20 000 0001— 200 000 000
    Стоимость пути100 Мбит/с200 00020 000— 2 000 0001— 200 000 000
    Стоимость пути1 Гбит/с20 0002 000—200 0001— 200 000 000
    Стоимость пути10 Гбит/с2 000200—20 0001— 200 000 000

    Совместимость с STP

    Протокол RSTP может взаимодействовать с оборудованием, поддерживающим STP, и, если необходимо, автоматически преобразовывать кадры BPDU в формат 802.1D. Однако преимущество быстрой сходимости RSTP (когда все коммутаторы быстро переходят в состояние пересылки или блокировки и обладают тождественной информацией) теряется.

    Каждый порт хранит переменную, определяющую тип протокола, используемого в соответствующем сегменте. При включении порта активизируется таймер задержки миграции (Migration delay timer) длительностью 3 секунды. При запуске этого таймера текущий режим (STP или RSTP) ассоциированный с портом, блокируется. Как только истечет время задержки миграции, порт начнет работать в режиме, соответствующем типу следующего полученного им BPDU. Если в результате получения BPDU порт изменил свой режим работы, таймер задержки миграции запускается вновь, что позволяет ограничить частоту возможной смены режимов.

    Предположим, что коммутаторы А и В (рис 11.14) работают в режиме RSTP. Коммутатор А является выделенным мостом этого сегмента. К существующему каналу связи подключается коммутатор С, который является коммутатором с поддержкой протокола STP. Так как коммутаторы STP игнорируют BPDU протокола RSTP и отбрасывают их, то коммутатор С считает, что в этом сегменте сети больше коммутаторов нет и начинает отправлять BPDU формата 802.1D.

    (рис 11.15) Пример совместной работы коммутаторов STP и RSTP

    Коммутатор А получает эти BPDU и после истечения периода времени, установленного таймером задержки миграции, переходит на этом порте в режим работы STP. В результате коммутатор С начинает понимать BPDU коммутатора А и признает его назначенным коммутатором этого сегмента.

    Следует отметить, что если бы в этом частном случае коммутатор С был удален из сегмента, то коммутатор А остался бы работать в режиме STP на этом порте, хотя он мог бы эффективно работать в режиме RSTP со своим единственным соседом коммутатором В. Т.е. у коммутатора А нет возможности узнать, что коммутатор С удален из этого сегмента. В этом частном случае для перезагрузки протокола, используемого на порте коммутатора, требуется вмешательство администратора сети. Когда порт находится в режиме, совместимом с 802.1D, он также может обрабатывать уведомления об изменении топологии TCN BPDU с установленными битами ТС и ТСА.

    Настройка RSTP

    Настройка протокола RSTP на коммутаторах D-Link аналогична настройке протокола STP. Рассмотрим пример настройки RSTP в сети, показанной на рис. 11.16 .

    (рис 11.16) Схема сети

    Настройка коммутатора 1

  • Активизировать RSTP
    enable stp
    config stp version rstp
    
  • Установить коммутатору 1 наименьшее значение приоритета, чтобы он был выбран корневым мостом (приоритет по умолчанию равен 32768)
    config stp priority 4096 instance_id 0
    
  • Настроить граничные порты RSTP
    config stp ports 1-24 edge true
    
  • Настройка коммутатора 2

    enable stp
    config stp version rstp
    config stp ports 1-24 edge true
    

    Multiple Spanning Tree Protocol

    Несмотря на то, что протокол RSTP обеспечивает быструю сходимость сети, он так же, как и протокол STP, обладает следующим недостатком — не поддерживает возможность создания отдельного связующего дерева для каждой VLAN, настроенной в сети. Это означает, что резервные каналы связи не могут блокироваться на основе VLAN и все VLAN образуют одну логическую топологию, не обладающую достаточной гибкостью.

    Протокол Multiple Spanning Tree Protocol (MSTP), являющийся расширением протокола RSTP, преодолевает это ограничение. В дополнение к обеспечению быстрой сходимости сети он позволяет настраивать отдельное связующее дерево для любой VLAN или группы VLAN, создавая множество маршрутов передачи трафика и позволяя осуществлять балансировку нагрузки. Первоначально протокол MSTP был определен в стандарте IEEE 802.1s, но позднее был добавлен в стандарт IEEE 802.1Q-2003. Протокол MSTP обратно совместим с протоколами STP и RSTP.

    Логическая структура MSTP

    Протокол MSTP делит коммутируемую сеть на регионы MST (Multiple Spanning Tree (MST) Region), каждый из которых может содержать множество копий связующих деревьев (Multiple Spanning Tree Instance, MSTI) с независимой друг от друга топологией. Другими словами, регион MST, представляющий собой набор физически подключенных друг к другу коммутаторов, делит данную физическую топологию на множество логических.

    (рис 11.17) Физическая и логическая топология региона MST (рис 11.18) Регион MST

    Для того чтобы два и более коммутатора принадлежали одному региону MST, они должны обладать одинаковой конфигурацией MST.

    Конфигурация MST включает такие параметры, как номер ревизии MSTP (MSTP revision level number), имя региона (Region name), карту привязки VLAN к копии связующего дерева (VLAN-to-instance mapping).

    Внутри коммутируемой сети может быть создано множество MST-регионов.

    Протокол MSTP определяет следующие типы связующих деревьев:

    Internal Spanning Tree (IST) — специальная копия связующего дерева, которая по умолчанию существует в каждом MST-регионе. IST присвоен номер 0 (Instance 0). Она может отправлять и получать кадры BPDU и служит для управления топологией внутри региона. По умолчанию все VLAN одного региона привязаны к IST. Если в регионе создано несколько MSTI, то VLAN, не ассоциированные с ними, остаются привязанными к IST. Динамические VLAN, созданные с помощью протокола GVRP, также ассоциируются с IST;

    Common Spanning Tree (CST) — единое связующее дерево, вычисленное с использованием протоколов STP, RSTP, MSTP и объединяющее все регионы MST и мосты SST (Single Spanning Tree (SST) Bridge);

    Common and Internal Spanning Tree (CIST) — единое связующее дерево, объединяющее CST и IST каждого MST-региона;

    (рис 11.19) Логическая структура MSTP

    Single Spanning Tree (SST) Bridge — мост, поддерживающий только-единственное связующее дерево, CST. Это единственное связующее дерево может поддерживать протокол STP или протокол RSTP.

    Multiple Spanning Tree Instance (MSTI)

    По умолчанию все VLAN данного MST-региона назначены в IST. Помимо IST, в каждом MST-регионе может быть дополнительно создано множество связующих деревьев с независимой друг от друга архитектурой — MSTI. К каждой MSTI администратор сети может вручную привязать соответствующие сети VLAN.

    MSTI обладают следующими характеристиками:

  • MSTI является копией связующего дерева, существующей только внутри региона;
  • MSTI не может отправлять BPDU за пределы своего региона (отправлять и получать BPDU может только IST);
  • все MSTI внутри региона могут нумероваться 1, 2, 3, 4 и т.д. (максимальное количество MSTI зависит от модели коммутатора и версии программного обеспечения);
  • MSTI не отправляет индивидуальные BPDU. Вся информация о данной MSTI помещается в конфигурационное сообщение MSTI (MSTI Configuration Message, M-record), которое инкапсулируется в кадры MSTP BPDU, рассылаемые IST.
  • Для того чтобы каждая MSTI представляла собой отдельную от IST логическую топологию, администратор сети может присвоить коммутаторам и портам внутри MSTI собственные значения приоритетов и стоимости пути.

    Формат MSTP BPDU

    Формат MSTP BPDU аналогичен формату RSTP BPDU, за исключением полей, предназначенных для передачи информации об IST, каждой MSTI (если они созданы в регионе) и конфигурации MST.

    Вычисления в MSTP

    Прежде чем начать рассматривать вопрос вычисления активной топологии MSTP, следует отметить, что спецификация MSTP рассматривает MST-регион как один виртуальный мост RSTP, и вычисление активной топологии внутри региона отделено от вычисления топологии всей коммутируемой сети. Другими словами, соединения между мостами внутри региона не зависят от внешних соединений между MST-регионами.

    (рис 11.20) Формат MSTP BPDU

    Процесс вычисления в MSTP начинается с выбора корневого моста CIST (CIST Root) сети. При выборе CIST Root используется тот же фундаментальный алгоритм, который описан в стандарте IEEE 802.1D-2004.

    Первоначально каждый коммутатор сети считает себя корневым мостом CIST и рассылает BPDU, в поле CIST Root Bridge ID которых указано значение его идентификатора, а внешняя стоимость пути до корня (CIST External Root Path Cost) равна нулю. Эти два параметра являются основными для определения активной топологии всей коммутируемой сети.

    Коммутатор перестанет заявлять себя в качестве корневого моста CIST, как только получит BPDU с меньшим значением идентификатора моста. В качестве CIST Root будет выбран коммутатор, обладающий наименьшим значением идентификатора моста среди всех коммутаторов сети.

    Одновременно с выбором корневого моста CIST в каждом регионе выбирается региональный корневой мост CIST (CIST Regional Root).

    Им становится коммутатор, обладающий наименьшей внешней стоимостью пути к корню CIST среди всех коммутаторов принадлежащих данному региону. Внешняя стоимость пути до корня CIST представляет собой суммарное условное время пути от граничного коммутатора MST-региона или моста SST до порта корневого моста CIST. Следует отметить, что значение CIST External Root Path Cost не изменяется при передаче конфигурационного BPDU между коммутаторами внутри региона. Это значение увеличивается на условное время передачи только портами граничных коммутаторов, подключающих данный регион к другим регионам. В протоколе MSTP рекомендованные значения стоимости пути аналогичны значениям, определенным в RSTP.

    В случае наличия в регионе коммутаторов с одинаковой стоимостью пути в качестве CIST Regional Root будет выбран коммутатор с наименьшим значением идентификатора моста. При этом маршрут от этого коммутатора до CIST Root не должен проходить через другие коммутаторы этого региона. Т.е. в качестве CIST Regional Root выбирается коммутатор, находящийся на границе региона. Следует отметить, что регион, содержащий CIST Root, использует его также в качестве CIST Regional Root.

    Протокол MSTP, используя механизм предложений и соглашений RSTP, блокирует все избыточные каналы связи от всех CIST Regional Root к CIST Root, делая их резервными или альтернативными.

    При наличии в регионе отдельных связующих деревьев MSTI, для каждой MSTI, независимо от остальных, выбирается региональный корневой мост MSTI (MSTIRegional Root). Им становится коммутатор, обладающий наименьшим значением идентификатора моста среди всех коммутаторов данной MSTI этого MST-региона. Определение роли портов и блокирование избыточных связей происходит аналогично процедурам, описанным в RSTP.

    Роли портов MSTP

    Протокол MSTP определяет роли портов, которые участвуют в процессе вычисления активной топологии CIST и MSTI, аналогичные протоколам STP и RSTP:

  • корневой порт (Root Port);
  • назначенный порт (Designated Port);
  • альтернативный/резервный порт (Alternate/Backup Port)
  • Дополнительно в MSTI используется еще одна роль, которая может быть присвоена порту, — мастер-порт (Master Port).

    Роли портов CIST определяют роли каждого порта коммутатора, участвующего в построении активной топологии CIST.

    Корневой порт (Root Port) — это порт, который обладает минимальной стоимостью пути от коммутатора до корневого моста CIST (в случае если мост не является CIST Root) через региональный мост (в том случае, если коммутатор не является региональным корнем CIST).

    Назначенный порт (Designated Port) — это порт, обладающий наименьшей стоимостью пути от подключенного сегмента сети до корневого моста CIST.

    Альтернативный/резервный порт (Alternate/Backup Port) — это порт, который обеспечивает подключение, если происходит потеря соединения с какими-либо коммутаторами или сегментами сети.

    Роли портов MSTI определяют роли каждого порта коммутатора, участвующего в построении активной топологии MSTI внутри границы региона.

    Корневой порт (Root Port) — это порт, который обладает минимальной стоимостью пути от коммутатора до регионального корневого моста MSTI (в случае если мост не является региональным корнем для этой MSTI).

    Назначенный порт (Designated Port) — это порт, обладающий наименьшей стоимостью пути от подключенного сегмента сети до регионального корневого моста MSTI.

    (рис 11.21) Роли портов (рис 11.22) Пример топологии MSTP

    Альтернативый/резервный порт (Alternate/Backup Port) — это порт, который обеспечивает подключение, если происходит потеря соединения с какими-либо коммутаторами или сегментами сети.

    Мастер-порт (Master Port) — это порт, который обеспечивает подключение региона к корневому мосту CIST, находящемуся за пределами данного региона. Корневой порт CIST регионального корневого моста CIST является мастером-портом для всех MSTI.

    Протокол MSTP вводит еще одну роль, которая может быть присвоена порту, — пограничный порт (Boundary Port). Пограничным портом является порт, который подключает MST-регион к другому региону или SST-мосту.

    Пример топологии MSTP

    Рассмотрим пример топологии MSTP, приведенный на рис. 11.21 . Сеть разбита на 3 MST-региона, в каждом регионе все коммутаторы ассоциированы с Instance 0.

  • Коммутатор 1 (SW-1) выбран в качестве корневого моста CIST, т.к. он обладает наименьшим среди всех коммутаторов сети значением идентификатора моста.
  • Коммутаторы 1, 2 и 3 (SW-1, SW-2, SW-3) находятся в одном MST-регионе с номером 1, т.к. обладают одинаковым идентификатором MST-конфигурации. Коммутаторы 2 и 3 находятся в одном регионе с корневым мостом CIST (коммутатор 1), поэтому их внешняя стоимость пути равна 0 и их региональный мост CIST совпадает с корневым мостом CIST.
  • Коммутаторы 4-10 (SW-4-SW-10) принадлежат одному региону, т.к. имеют одинаковые идентификаторы MST-конфигурации. Коммутатор 4 (SW-4) является региональным корневым мостом CIST для MST-региона 2, т.к. обладает наименьшей внешней стоимостью пути к CIST Root.
  • Коммутаторы 11, 12 и 13 (SW-11-SW-13) принадлежат к MST-региону 3, т.к. обладают одинаковыми идентификаторами MST-конфигурации. Коммутатор 11 (SW-11) выбран в качестве регионального корневого моста CIST для MST-региона 3, т.к. обладает наименьшей внешней стоимостью пути к CIST Root.
  • Состояние портов MSTP

    В протоколе MSTP определены состояния, в которых могут находиться порты, аналогичные протоколу RSTP:

    Learning ("Обучение") — порт может принимать/отправлять кадры BPDU, изучать МАС-адреса и строить таблицу коммутации. Порт в этом состоянии не передает пользовательские кадры;

    Forwarding ("Продвижение") — в этом состоянии порт может передавать пользовательские кадры, изучать новые МАС-адреса и принимать/отправлять кадры BPDU;

    Discarding ("Отбрасывание") — в этом состоянии порт может только принимать кадры BPDU, передача пользовательского трафика и изучение МАС-адресов не выполняется.

    Счетчик переходов MSTP

    При вычислении активной топологии связующего дерева IST и MSTI не используют значения полей Max Age и Message Age конфигурационного BPDU для отбрасывания устаревших сообщений. Вместо этого используется механизм счетчика переходов (Hop count).

    С помощью команды config stp maxhops на коммутаторах D-Link можно настроить максимальное число переходов между устройствами внутри региона, прежде чем кадр BPDU будет отброшен. Значение счетчика переходов устанавливается региональным корневым мостом MSTI или CIST и уменьшается на 1 каждым портом коммутатора, получившим кадр BPDU.

    Внимание: значение счетчика переходов зависит от модели коммутатора. По умолчанию используется значение счетчика переходов, равное 20.

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

    Следует отметить, что коммутаторы не изменяют данные, хранимые в полях Max Age и Message Age конфигурационных BPDU, при их передаче через коммутаторы MST-региона. Значение Message Age изменяется только коммутаторами, расположенными на границе региона, чтобы обеспечить совместимость с мостами STP и RSTP, которые могут использоваться в сети.

    Настройка протокола MSTP на коммутаторах

    Ниже приведены основные шаги, которые позволяют настроить протокол MSTP на коммутаторах D-Link.

  • Активизировать STP на всех устройствах.
  • Изменить версию STP на MSTP (по умолчанию используется RSTP).
  • Настроить имя MST-региона и ревизию.
  • Создать MSTI и карту привязки VLAN к MSTI.
  • Задать приоритет STP для выбора корневого моста. По умолчанию используется приоритет 32768.
  • Настроить приоритеты портов.
  • Настроить граничные порты.
  • Рассмотрим пример, показанный на рис. 11.22 . В сети созданы две виртуальные локальные сети — VLAN v2 и VLAN v3. Каждая VLAN привязывается к одной копии связующего дерева.

    (рис 11.23) Схема сети

    Настройка коммутатора 1

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp priority 4096 instance_id 0
    config stp priority 4096 instance_id 2
    config stp priority 4096 instance_id 3
    config stp ports 7,23 edge true
    
  • Настройка коммутатора 2

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp ports 7,23 edge true
    
  • Рассмотрим второй пример настройки протокола MSTP, позволяющий осуществлять балансировку нагрузки между каналами связи.

    В примере, показанном на рис. 11.23 , каждая VLAN привязывается к одной копии связующего дерева. Порты 25 и 26 являются маркированными портами обеих VLAN. Порт 25 используется в качестве активного канала связи для VLAN v2, порт 26 используется в качестве активного канала связи для VLAN v3. Т.к. для каждой VLAN будет построена своя собственная активная топология связующего дерева, то кадры VLAN v2 и VLAN v3 будут передаваться по разным маршрутам (через порты 25 и 26 соответственно), благодаря чему будет обеспечена балансировка нагрузки. В случае если один из каналов связи выйдет из строя, трафик VLAN v2 и VLAN v3 будет передаваться по одному оставшемуся каналу.

    Настройка коммутатора 1

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add tagged 25-26
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add tagged 25-26
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp ports 7,23 edge true
    
  • Настройка коммутатора 2

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add tagged 25-26
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add tagged 25-26
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp mst_ports 25 instance_id 2 priority 96
    config stp mst_ports 26 instance_id 2 priority 128
    config stp mst_ports 25 instance_id 3 priority 128
    config stp mst_ports 26 instance_id 3 priority 96
    config stp ports 7,23 edge true
    
  • (рис 11.24) Балансировка нагрузки с помощью MSTP

    Дополнительные функции защиты от петель

    Функция LoopBack Detection (LBD) обеспечивает дополнительную защиту от образования петель на уровне 2 модели OSI. Существует две реализации этой функции:

  • STP LoopBack Detection;
  • LoopBack Detection Independent STP.
  • На рис. 11.25 показана ситуация, когда к порту управляемого коммутатора подключен неуправляемый коммутатор, порты которого соединены с образованием петли. В этом случае в сети может возникнуть широковещательный шторм и ее работоспособность будет нарушена.

    Функция STP LoopBack Detection предназначена для отслеживания таких ситуаций и временного блокирования тех портов коммутатора, на которых обнаружены петли, тем самым предотвращая проблемы в сети. Коммутатор определяет наличие петли, когда отправленный им кадр BPDU вернулся назад на другой его порт. В этом случае порт-источник кадра BPDU и порт-приемник будут автоматически заблокированы и администратору сети будет отправлен служебный пакет-уведомление. Порты будут находиться в заблокированном состоянии до истечения периода времени, установленного таймером LBD Recover Timer. По умолчанию на коммутаторах D-Link эта функция отключена. Следует отметить, что функция STP LoopBack Detection не определяет петлю, когда отправленный кадр BPDU вернулся назад на этот же порт.

    (рис 11.25) Пример работы функции LoopBack Detection Independent STP

    В отличие от STP LoopBack Detection функция LoopBack Detection Independent STP не требует настройки протокола STP на портах, на которых необходимо определять наличие петли. В этом случае наличие петли обнаруживается путем отправки портом специального служебного кадра ECTP (Ethernet Configuration Testing Protocol). При получении кадра ECTP этим же портом он блокируется на указанное в таймере время.

    Следует отметить, что функция LoopBack Detection Independent STP версии 4.03 также может определять петли, возникающие между портами одного коммутатора.

    Внимание: чтобы получить информацию о поддержке коммутатором функции LBD v.4.03, необходимо обратиться в службу технической поддержки D-Link.

    Существуют два режима работы этой функции: Port-Based и VLAN-Based (начиная с LBD версии v.4.00).

    В режиме Port-Based при обнаружении петли происходит автоматическая блокировка порта, и никакой трафик через него не передается.

    В режиме VLAN-Based порт будет заблокирован для передачи трафика только той VLAN, в которой обнаружена петля. Остальной трафик через этот порт будет передаваться.

    Настройка функции LoopBack Detection

    В качестве примера приведем настройку функций STP LoopBack Detection и LoopBack Detection Independent STP в режимах Port-Based и VLAN-Based для ситуации, показанной на рис. 11.24 .

    Настройка функции STP LoopBack Detection

    enable stp
    config stp ports 1-24 state enable edge true lbd enable
    config stp lbd_recover_timer 60
    

    Настройка функции LoopBack Detection Independent STP (Port-Based)

    enable loopdetect
    config loopdetect recover_timer 60
    config loopdetect interval 10
    config loopdetect mode port-based
    config loopdetect ports 1-24 state enabled
    

    Настройка функции LoopBack Detection Independent STP (VLAN-Based)

    enable loopdetect
    config loopdetect recover_timer 60
    config loopdetect interval 10
    config loopdetect mode vlan-based
    config loopdetect ports 1-24 state enabled
    
    Внимание: таймер recover_timer — интервал времени в секундах, через который будет проверяться статус заблокированного функцией LBD порта. Если установить значение таймера равным 0, заблокированный порт не сможет быть автоматически разблокирован и для его восстановления потребуется вмешательство администратора. Значение таймера задается глобально на коммутаторе.

    loopdetect interval — временной интервал в секундах между отсылаемыми кадрами ECTP (Ethernet Configuration Testing Protocol).

    Функции безопасности STP

    Из-за ошибок в конфигурации или вредоносных атак в сети может возникнуть ситуация, когда корневой мост получит кадр BPDU, содержащий лучший приоритет, и потеряет свою позицию. При настройке протоколов RSTP или MSTP на управляемых коммутаторах, расположенных на границе сети, с помощью параметра restrictedrole можно ограничить роли выполняемые портом в активной топологии. При активизации этого параметра порт не будет выбран в качестве корневого порта даже в том случае, если получит BPDU с наилучшим приоритетом. После выбора корневого порта этот порт будет выбран в качестве альтернативного. По умолчанию функция restrictedrole отключена.

    Настройка коммутатора

    enable stp
    config stp version rstp
    config stp priority 32768 instance_id 0
    config stp ports 1-24 edge true restricted_role true
    restricted_tcn true state enable
    config stp ports 25-28 edge false state enable fbpdu enable
    

    Агрегирование каналов связи

    Агрегирование каналов связи (Link Aggregation) — это объединение нескольких физических портов в одну логическую магистраль на канальном уровне модели OSI с целью образования высокоскоростного канала передачи данных и повышения отказоустойчивости.

    (рис 11.26) Пример агрегированного канала связи между коммутаторами

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

    Включенные в агрегированный канал порты называются членами группы агрегирования (Link Aggregation Group).

    Внимание: количество портов в группе зависит от модели коммутатора. В управляемых коммутаторах в группу можно объединить до 8 портов.

    Один из портов в группе выступает в качестве мастера-порта (master port). Так как все порты агрегированной группы должны работать в одном режиме, конфигурация мастера-порта распространяется на все порты в группе. Таким образом, при конфигурировании портов в группе агрегирования достаточно настроить мастер-порт.

    Важным моментом при реализации объединения портов в агрегированный канал является распределение трафика по ним. Если пакеты одного сеанса будут передаваться по разным портам агрегированного канала, то может возникнуть проблема на более высоком уровне модели OSI. Например, если два или более смежных кадров одного сеанса станут передаваться через разные порты агрегированного канала, то из-за неодинаковой длины очередей в их буферах может возникнуть ситуация, когда из-за неравномерной задержки передачи кадра более поздний кадр обгонит своего предшественника. Поэтому в большинстве реализаций механизмов агрегирования используются методы статического, а не динамического распределения кадров по портам, т.е. закрепление за определенным портом агрегированного канала потока кадров определенного сеанса между двумя узлами. В этом случае все кадры будут проходить через одну и ту же очередь и их последовательность не изменится. Обычно при статическом распределении выбор порта для конкретного сеанса выполняется на основе выбранного алгоритма агрегирования портов, т.е. на основании некоторых признаков поступающих пакетов. В коммутаторах D-Link поддерживается 9 алгоритмов агрегирования портов:

  • macsource — МАС-адрес источника;
  • macdestination — МАС-адрес назначения;
  • mac_source_dest — МАС-адрес источника и назначения;
  • ip_source — IP-адрес источника;
  • ipdestination — IP-адрес назначения;
  • ip_source_dest — IP-адрес источника и назначения;
  • l4_src_port — TCP/UDP-порт источника;
  • l4_dest_port — TCP/UDP-порт назначения;
  • l4_src_dest_port — TCP/UDP-порт источника и назначения.
  • В коммутаторах D-Link по умолчанию используется алгоритм mac_source (МАС-адрес источника).

    (рис 11.27) Распределение потоков данных по каналам агрегированной линии связи для алгоритма mac_source_dest

    Объединение каналов следует рассматривать как вариант настройки сети, используемый преимущественно для соединений "коммутатор — коммутатор" или "коммутатор — файл-сервер", требующих более высокой скорости передачи, чем может обеспечить одиночная линия связи. Также эту функцию можно применять для повышения надежности важных каналов связи. В случае повреждения линии связи объединенный канал быстро перенастраивается (не более чем за 1 сек.), а риск дублирования и изменения порядка кадров незначителен.

    Программное обеспечение коммутаторов D-Link поддерживает два типа агрегирования каналов связи:

  • статическое;
  • динамическое, на основе стандарта IEEE 802.3ad (LACP).
  • При статическом агрегировании каналов (установлено по умолчанию), все настройки на коммутаторах выполняются вручную, и они не допускают динамических изменений в агрегированной группе.

    Для организации динамического агрегирования каналов между коммутаторами и другими сетевыми устройствами используется протокол управления агрегированным каналом — Link Aggregation Control Protocol (LACP). Протокол LACP определяет метод управления объединением нескольких физических портов в одну логическую группу и предоставляет сетевым устройствам возможность автосогласования каналов (их добавления или удаления) путем отправки управляющих кадров протокола LACP непосредственно подключенным устройствам с поддержкой LACP. Пакеты LACP отправляются устройством через все порты, на которых активизирован протокол. Порты, на которых активизирован протокол LACP, могут быть настроены для работы в одном из двух режимов: активном (active) или пассивном (passive). При работе в активном режиме порты выполняют обработку и рассылку управляющих кадров протокола LACP. При работе в пассивном режиме порты выполняют только обработку управляющих кадров LACP.

    Для того чтобы динамический канал обладал функцией автосогласования, рекомендуется порты, входящие в агрегированную группу, с одной стороны канала настраивать как активные, а с другой — как пассивные.

    Следует отметить, что у портов, объединяемых в агрегированный канал, нижеперечисленные характеристики должны обладать одинаковыми настройками:

  • тип среды передачи;
  • скорость;
  • режим работы — полный дуплекс;
  • метод управления потоком (Flow Control) .
  • При объединении портов в агрегированный канал на них не должны быть настроены функции аутентификации 802.1Х, зеркалирования трафика и блокировки портов.

    Настройка статических и динамических агрегированных каналов

    Рассмотрим пример, показанный на рис. 11.28 . Для повышения пропускной способности канала связи между коммутатором 1, к которому подключен сервер, и коммутатором 2, к которому подключены пользователи, требуется объединить порты коммутаторов в статический агрегированный канал.

    (рис 11.28) Схема сети

    На коммутаторах необходимо выполнить следующую настройку:

    Настройка коммутатора 1

  • Создать группу агрегирования (тип канала Static) и задать алгоритм агрегирования.
    create link_aggregation group_id 1 type static
    config link_aggregation algorithm mac_destination
    
  • Включить порты 21, 22, 23, 24 в группу и выбрать порт 21 в качестве мастера-порта.
    config link_aggregation group_id 1 master_port 21 ports 21,22,23,24 state enabled
    
  • Настройка коммутатора 2

  • Создать группу агрегирования и задать алгоритм агрегирования.
    create link_aggregation group_id 1 type static
    config link_aggregation algorithm mac_source
    
  • Включить порты 21, 22, 23, 24 в группу и выбрать порт 21 в качестве мастера-порта.
    config link_aggregation group_id 1 master_port 21 ports 21,22,23,24 state enabled
    
  • Рассмотрим пример настройки коммутаторов при создании динамического агрегированного канала связи.

    (рис 11.29) Схема сети

    Настройка коммутатора 1

  • Создать группы агрегирования (тип канала LACP) и задать алгоритм агрегирования.
    create link_aggregation group_id 1 type lacp
    create link_aggregation group_id 2 type lacp
    config link_aggregation algorithm mac_destination
    
  • Включить порты 1, 2, 3, 4 в группу 1 и выбрать порт 1 в качестве мастера-порта.
    config link_aggregation group_id 1 master_port 1 ports 1-4 state enabled
    
  • Включить порты 5, 6, 7, 8 в группу 2 и выбрать порт 5 в качестве мастера-порта.
  • config link_aggregation group_id 2 master_port 5 port 5-8 state enabled
  • Настроить для портов 1-8 активный режим работы.
    config lacp_port 1-8 mode active
    
  • Настройка коммутаторов 2 и 3 (на портах 1-4 этих коммутаторов включено автосогласование)

    create link_aggregation group_id 1 type lacp
    config link_aggregation algorithm mac_source
    config link_aggregation group_id master_port 1 ports 1-4 state enabled
    
    Внимание:
  • Если один конец агрегированного канала настроен как LACP, другой конец должен также иметь тип LACP. Если один конец имеет тип LACP, а другой Static, то соединение установлено не будет.
  • Если коммутатор с поддержкой LACP требуется подключить к коммутатору, поддерживающему только статическое агрегирование, то тип агрегированного канала на коммутаторе LACP необходимо установить в Static.
  • Не соединяйте физически соответствующие порты устройств до тех пор, пока не настроено агрегирование каналов, т.к. в коммутируемой сети может возникнуть петля.
  • Страницы:

    В настоящее время для повышения надежности и производительности каналов связи в распоряжении интеграторов и сетевых администраторов имеется целый набор протоколов и функций. Наиболее распространенным является создание резервных связей между коммутаторами на основе двух технологий:

  • резервирование соединений с помощью протоколов семейства Spanning Tree;
  • балансировка нагрузки, обеспечивающая параллельную передачу данных по всем альтернативным соединениям с помощью механизма агрегирования портов.
  • Протоколы Spanning Tree

    Протокол связующего дерева Spanning Tree Protocol (STP) является протоколом 2 уровня модели OSI, который позволяет строить древовидные, свободные от петель, конфигурации связей между коммутаторами локальной сети. Помимо этого, алгоритм обеспечивает возможность автоматического резервирования альтернативных каналов связи между коммутаторами на случай выхода активных каналов из строя.

    В настоящее время существуют следующие версии протоколов связующего дерева:

  • IEEE 802.1D Spanning Tree Protocol (STP);
  • IEEE 802.1w Rapid Spanning Tree Protocol (RSTP);
  • IEEE 802.1s Multiple Spanning Tree Protocol (MSTP).
  • Spanning Tree Protocol (STP)

    Понятие петель

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

  • широковещательные штормы;
  • множественные копии кадров;
  • множественные петли.
  • Широковещательный шторм.

    Распространение широковещательных сообщений в сетях с петлями представляет серьезную проблему. Предположим, что первый кадр, поступивший от одного из узлов, является широковещательным. Тогда все коммутаторы будут пересылать кадры бесконечно, как показано на рис. 11.1 (пример 1), используя всю доступную полосу пропускания сети и блокируя передачу других кадров во всех сегментах.

    Множественные копии кадров.

    Еще одна проблема заключается в том, что коммутатор нередко получает несколько копий одного кадра, одновременно приходящих из нескольких участков сети. В этом случае таблица коммутации не сможет определить расположение устройства, потому что коммутатор будет получать кадр из нескольких каналов. Может случиться так, что коммутатор вообще не сможет переслать кадр, т.к. будет постоянно обновлять таблицу коммутации.

    Множественные петли.

    Одна из самых сложных проблем — это множественные петли, образующиеся в объединенной сети. Возможно появление петли внутри других петель. Если за этим последует широковещательный шторм, то сеть не сможет выполнять коммутацию кадров.

    (рис 11.1) Примеры петель между коммутаторами

    Для решения этих проблем и был разработан протокол связующего дерева, который был определен в стандарте IEEE 802.1D-1998.

    Коммутаторы, поддерживающие протокол STP, автоматически создают древовидную конфигурацию связей без петель в компьютерной сети. Такая конфигурация называется связующим деревом — Spanning Tree (иногда ее называют остовым или покрывающим деревом). Конфигурация связующего дерева строится коммутаторами автоматически с использованием обмена служебными кадрами, называемыми Bridge Protocol Data Units (BPDU).

    Построение активной топологии связующего дерева

    Для построения устойчивой активной топологии с помощью протокола STP необходимо с каждым коммутатором сети ассоциировать уникальный идентификатор моста (Bridge ID), а с каждым портом коммутатора ассоциировать стоимость пути (Path Cost) и идентификатор порта (Port ID).

    Процесс вычисления связующего дерева начинается с выбора корневого моста (Root Bridge), от которого будет строиться дерево. В качестве корня дерева выбирается коммутатор с наименьшим значением идентификатора моста. Идентификатор моста — это 8-байтное поле, которое состоит из 2-х частей: приоритета моста (2 байта), назначаемого администратором сети, и МАС-адреса блока управления коммутатора (6 байт). При сравнении идентификаторов двух коммутаторов сначала сравниваются значения приоритетов. Корневым мостом становится коммутатор с наименьшим значением приоритета. Если они одинаковы (по умолчанию приоритет равен 32768), то корневой мост определяется по наименьшему МАС-адресу.

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

    Второй этап работы STP — выбор корневых портов (Root Port).

    Когда процесс выбора корневого моста завершен, оставшиеся коммутаторы сети определяют стоимость каждого возможного пути от себя до корня дерева. Стоимость пути рассчитывается как суммарное условное время на передачу данных от порта данного коммутатора до порта корневого моста. Условное время сегмента рассчитывается как время передачи одного бита информации через канал с определенной полосой пропускания. Стоимости пути по умолчанию для каждого канала определены в стандарте IEEE 802.1D-1998.

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

    (рис 11.2) Пример функционирование протокола STP

    Третий шаг работы STP — определение назначенных портов (Designated Port).

    Каждый сегмент в коммутируемой сети имеет один назначенный порт. Этот порт функционирует как единственный порт моста, т.е. принимает кадры от сегмента и передает их в направлении корневого моста через корневой порт данного коммутатора. Коммутатор, содержащий назначенный порт для данного сегмента, называется назначенным мостом (Designated Bridge) этого сегмента. Назначенный порт сегмента определяется путем сравнения значений стоимости пути всех маршрутов от данного сегмента до корневого моста. Им становится порт, имеющий наименьшее значение стоимости, среди всех портов, подключенных к данному сегменту. Если минимальные значения стоимости пути окажутся одинаковыми у двух или нескольких портов, то для выбора назначенного порта сегмента STP принимает решение на основе последовательного сравнения идентификаторов мостов и идентификаторов портов.

    У корневого моста все порты являются назначенными, а их расстояние до корня полагается равным нулю. Корневого порта у корневого моста нет.

    После выбора корневых и назначенных портов все остальные порты коммутаторов сети переводятся в состояние Blocking ("Блокировка"), то есть такое, при котором они принимают и передают только кадры BPDU. При таком выборе активных портов в сети исключаются петли, и оставшиеся связи образуют связующее дерево.

    Bridge Protocol Data Unit (BPDU)

    Вычисление связующего дерева происходит при включении коммутатора и при изменении топологии. Эти вычисления требуют периодического обмена информацией между коммутаторами связующего дерева, что достигается при помощи специальных кадров, называемых блоками данных протокола моста — BPDU (Bridge Protocol Data Unit).

    Коммутатор отправляет BPDU, используя уникальный МАС-адрес порта в качестве адреса-источника и многоадресный МАС-адрес протокола STP 01-80-C2-00-00-00 в качестве адреса-приемника. Кадры BPDU помещаются в поле данных кадров канального уровня, например, кадров Ethernet.

    Внимание: иногда, с целью повышения безопасности, сетевым администраторам необходимо отключать возможность передачи кадров BPDU на граничные коммутаторы сети, чтобы избежать получения случайных кадров BPDU клиентскими портами, которые могут распространить вычисления STP по клиентским сетям. Управляемые коммутаторы D-Link поддерживают возможность включения и отключения передачи кадров BPDU для каждого порта.

    Существует три типа кадров BPDU:

  • Configuration BPDU (CBPDU) — конфигурационный кадр BPDU, который используется для вычисления связующего дерева (тип сообщения: 0x00);
  • Topology Change Notification (TCN) BPDU — уведомление об изменении топологии сети (тип сообщения: 0x80);
  • Topology Change Notification Acknowledgement (TCA) — подтверждение о получении уведомления об изменении топологии сети.
  • Коммутаторы обмениваются BPDU через равные интервалы времени (по умолчанию 2 сек.), что позволяет им отслеживать состояние топологии сети.

    Формат кадра BPDU
    поляБайты
    Идентификатор протокола (Protocol Identifier)2
    Версия протокола (Protocol Version Identifier)1
    Тип BPDU (BPDU Type)1
    Флаги (Rags)1
    Идентификатор корневого моста (Root Identifier)8
    Расстояние до корневого моста (Root Path Cost)2
    Идентификатор моста (Bridge Identifier)8
    Идентификатор порта (Port Identifier)2
    Время жизни сообщения (Message Age)2
    Максимальное время жизни сообщения (Max Age)2
    Время приветствия (Hello Time)2
    Задержка смены состояний (Forward Delay)2

    Кадр BPDU состоит из следующих полей:

  • идентификатор протокола (Protocol Identifier) — 2 байта. Значение всегда равно 0;
  • версия протокола STP (Protocol Version Identifier) — 1 байт. Значение всегда равно 0;
  • тип BPDU (BPDU Type) — 1 байт. Значение "00" — конфигурационный BPDU, "01" — изменение топологии;
  • флаги (Flags) — 1 байт. Бит 1 — флаг изменения топологии, бит 8 — флаг подтверждения изменения топологии;
  • идентификатор корневого моста (Root Identifier) — 8 байтов. Идентификатор текущего корневого моста;
  • расстояние до корневого моста (Root Path Cost) — 2 байта. Суммарная стоимость пути до корневого моста;
  • идентификатор моста (Bridge Identifier) — 8 байтов. Идентификатор текущего моста;
  • идентификатор порта (Port Identifier) — 2 байта. Уникальный идентификатор порта, который отправил этот BPDU;
  • время жизни сообщения (Message Age) — 2 байта. Нефиксированный временной интервал в секундах, прошедший с момента отправки BPDU корневым мостом. Служит для выявления устаревших сообщений BPDU. Первоначальное значение равно нулю. По мере передачи кадра BPDU по сети каждый коммутатор добавляет ко времени жизни сообщения время его задержки данным коммутатором. По умолчанию оно равно 1 сек. Значение параметра Message Age должно быть меньше значения таймера Max Age;
  • максимальное время жизни сообщения (Max Age) — 2 байта. Временной интервал в секундах, определяющий максимальное время хранения конфигурации STP, прежде чем коммутатор ее отбросит;
  • время приветствия (Hello Time) — 2 байта. Временной интервал в секундах, через который посылаются кадры BPDU;
  • задержка смены состояний (Forward Delay) — 2 байта. Временной интервал в секундах, в течение которого порт коммутатора находится в состояниях "Прослушивание" и "Обучение".
  • Состояния портов

    В процессе построения топологии сети каждый порт коммутатора проходит несколько стадий:

  • Blocking ("Блокировка") — при инициализации коммутатора все порты (за исключением отключенных) автоматически переводятся в состояние "Заблокирован". В этом случае порт принимает и обрабатывает только кадры BPDU. Все остальные кадры отбрасываются;
  • Listening ("Прослушивание") — в этом состоянии порт продолжает принимать, обрабатывать и ретранслировать только кадры BPDU. Из этого состояния порт может перейти в состояние "Заблокирован", если получит BPDU с лучшими параметрами, чем его собственные (стоимость пути, идентификатор моста или порта). В противном случае, при истечении периода, установленного таймером задержки смены состояний (Forward Delay), порт перейдет в следующее состояние "Обучение";
  • Learning ("Обучение") — порт начинает принимать все кадры и на основе МАС-адресов источника строить таблицу коммутации. Порт в этом состоянии все еще не продвигает кадры. Порт продолжает участвовать в работе алгоритма STP и при поступлении BPDU с лучшими параметрами переходит в состояние "Заблокирован". В противном случае, при истечении периода, установленного таймером задержки смены состояний, порт перейдет в следующее состояние "Продвижение";
  • Forwarding ("Продвижение") — в этом состоянии порт может обрабатывать кадры данных в соответствии с построенной таблицей коммутации. Также продолжают приниматься, передаваться и обрабатываться кадры BPDU;
  • Disable ("Отключен") — в это состояние порт переводит администратор. Отключенный порт не участвует ни в работе протокола STP, ни в продвижении кадров данных. Порт можно также вручную включить, и первоначально он перейдет в состояние "Заблокирован".
  • (рис 11.3) Состояния портов

    В процессе нормальной работы корневой мост продолжает генерировать служебные кадры BPDU, а остальные коммутаторы продолжают их принимать своими корневыми портами и ретранслировать назначенными. Если по истечении максимального времени жизни сообщения (по умолчанию — 20 секунд) корневой порт любого коммутатора сети не получит служебный кадр BPDU, то он инициализирует новую процедуру построения связующего дерева.

    Таймеры STP

    Для того чтобы все коммутаторы сети имели возможность получить точную информацию о конфигурации связующего дерева, в протоколе STP используются следующие таймеры.

    Hello Time — это интервал времени, через который корневой мост отправляет конфигурационные BPDU. Значение таймера Hello Time, настроенное на корневом мосте, будет определять значения таймеров Hello Time на всех некорневых коммутаторах, т.к. они просто пересылают конфигурационные BPDU, когда получают их от корня. Значение таймера Hello Time по умолчанию 2 секунды: диапазон возможных значений от 1 до 10 секунд.

    Forward Delay — это интервал времени, в течение которого порт коммутатора находится в состояниях "Прослушивание" и "Обучение". Такая задержка смены состояний необходима, чтобы исключить возможность временного возникновения альтернативных маршрутов при неодновременной смене состояний портов во время реконфигурации. Значение таймера Forward Delay по умолчанию 15 секунд. диапазон возможных значений от 4 до 30 секунд.

    Max Age — это интервал времени, в течение которого коммутатор хранит параметры текущей конфигурации связующего дерева. Значение таймера Max Age устанавливается корневым мостом и позволяет гарантировать, что все коммутаторы сети обладают одинаковой информацией о времени хранения конфигурации STP. Если период времени, определенный таймером, истек, а коммутатор за это время не получил кадр BPDU от корневого моста, то он начинает считать себя корневым мостом и рассылает свои собственные BPDU всем коммутаторам сети, инициируя новую процедуру построения связующего дерева. Значение таймера Max Age по умолчанию 20 секунд, диапазон возможных значений от 6 до 40 секунд.

    Значения таймеров Hello Time, Forward Delay и Max Age могут быть вручную настроены администратором сети на коммутаторе. Обычно эти настройки выполняются только на коммутаторе, являющемся корневым для данной топологии связующего дерева. При настройке важно помнить, что неправильно подобранные значения таймеров могут значительно увеличить время сходимости топологии STP и снизить производительность сети, поэтому рекомендуется использовать значения таймеров по умолчанию.

    Изменение топологии

    Коммутатор отправляет BPDU с уведомлением об изменении топологии (Topology Change Notification BPDU, TCN BPDU) в случае возникновения одного из следующих событий:

  • некорневой мост получает сообщение TCN BPDU на свой назначенный порт;
  • после истечения времени, определенного таймером Forward Delay, порт переходит в состояние Forwarding, но коммутатор уже имеет назначенный порт для данного сегмента;
  • порт, находившийся в состоянии Forwarding или Listening, переходит в состояние Blocking (в случае проблем с каналом связи);
  • когда коммутатор становится корневым мостом.
  • TCN BPDU отправляется коммутатором в тот сегмент сети, к которому подключен его корневой порт. Эти BPDU будут передаваться через интервал Hello до тех пор, пока коммутатор не получит подтверждение Topology Change Notification Acknowledgement (TCN-ACK) от вышестоящего коммутатора. Соседний коммутатор продолжит трансляцию TCN BPDU через свой корневой порт в направлении корневого моста сети, используя такую же процедуру. Этот процесс будет продолжаться до тех пор, пока TCN BPDU не достигнет корневого моста.

    (рис 11.4) Процесс уведомления об изменении топологии

    Когда корневой мост получает TCN BPDU или сам изменяет топологию, он устанавливает во всех передаваемых конфигурационных BPDU флаг изменения топологии (Topology Change, TC) на период времени, равный сумме значений таймеров Forward Delay и Max Age. Когда нижележащие коммутаторы получат конфигурационные BPDU с флагом Topology Change, они установят значения таймеров старения записей адресных таблиц (Aging Timer) равными длительности таймера задержки передачи Forward Delay.

    Управляемые коммутаторы D-Link при настройке функции STP позволяют включать и отключать на каждом порте возможность приема TCN BPDU с помощью параметра restrictedtcn. По умолчанию параметр restrictedtcn отключен. Использование данного параметра позволяет избежать сетевых атак, связанных с отправкой ложных кадров TCN BPDU.

    Настройка STP

    Рассмотрим пример настройки STP на коммутаторах D-Link в сети, показанной на рис. 11.5 .

    (рис 11.5) Схема сети Внимание: по умолчанию протокол STP на коммутаторах D-Link отключен.

    Настройка коммутатора 1

  • Активизировать STP
    enable stp
    config stp version stp
    
  • Установить коммутатору 1 наименьшее значение приоритета, чтобы он был выбран корневым мостом (приоритет по умолчанию равен 32768)
    config stp priority 4096 instance_id 0
    
  • Настроить порты STP
    config stp ports 1-24 edge true
    
  • Настройка коммутатора 2

    enable stp
    config stp version stp
    config stp ports 1-24 edge true
    

    Rapid Spanning Tree Protocol

    Протокол Rapid Spanning Tree Protocol (RSTP) является развитием протокола STP и в настоящее время определен в стандарте IEEE 802.1D-2004 (ранее был определен в стандарте IEEE 802.1w-2001). Он был разработан для преодоления отдельных ограничений протокола STP, связанных с его производительностью. Протокол RSTP значительно ускоряет время сходимости коммутируемой сети за счет мгновенного перехода корневых и назначенных портов в состояние продвижения.

    RSTP может работать с оборудованием, поддерживающим STP, однако все преимущества от его использования будут потеряны.

    Основные понятия и терминология протоколов STP и RSTP одинаковы. Существенным их отличием является способ перехода портов в состояние продвижения и то, каким образом этот переход влияет на роль порта в топологии. RSTP объединяет состояния Disabled, Blocking и Listening, используемые в STP, и создает единственное состояние Discarding ("Отбрасывание"), при котором порт не активен.

    (рис 11.6) Состояния портов протоколов STP и RSTP

    Различия между состояниями портов в STP и RSTP
    Состояние порта STPАдминистративное состояние порта коммутатораПорт изучает МАС-адреса?Состояние порта RSTPРоль порта в активной топологии
    DisableDisabledНетDiscardingИсключен (Disabled)
    DisableEnabledНетDiscardingИсключен (Disabled)
    BlockingEnabledДаDiscardingИсключен (Alternate, Backup)
    ListeningEnabledДаDiscardingВключен (Root, Designated)
    LearningEnabledДаLearningВключен (Root, Designated)
    ForwardingEnabledДаForwardingВключен (Root, Designated)

    Роли портов

    Выбор активной топологии завершается присвоением протоколом RSTP определенной роли каждому порту. Эти роли следующие:

  • корневой порт (Root Port);
  • назначенный порт (Designated Port);
  • альтернативный порт (Alternate Port);
  • резервный порт (Backup Port).
  • Корневой порт — это порт коммутатора, который имеет по сети кратчайшее расстояние (в терминах стоимости пути) до корневого коммутатора.

    Порт является назначенным, если он посылает BPDU с наилучшими параметрами в тот сегмент, к которому подключен.

    Роли "корневой порт" и "назначенный порт" включают порт в активную топологию.

    В RSTP существуют две дополнительные роли — альтернативный порт (Alternate) и резервный порт (Backup), соответствующие состоянию "Заблокирован" в STP и исключающие порт из активной топологии.

    (рис 11.7) Корневой порт (рис 11.8) Назначенный порт

    Альтернативный порт предлагает альтернативный основному маршруту путь в направлении корневого моста и может заменить корневой порт в случае выхода его из строя.

    (рис 11.9) Альтернативный порт

    Резервный порт предназначен для резервирования пути, предоставляемого назначенным портом в направлении сегментов сети, и не может гарантировать альтернативное подключение к корневому мосту. Резервные порты существуют только в конфигурациях, где есть два или более соединения данного моста с данной сетью (сегментом сети).

    (рис 11.10) Резервный порт

    Формат BPDU

    Формат кадра BPDU протокола RSTP аналогичен формату BPDU протокола STP за исключением следующего:

  • поля версии протокола и типа BPDU RSTP содержат значение 2;
  • в поле Flag BPDU протокола STP используются только два бита, которые определяют флаги изменения топологии TC и подтверждения TC (TCA). В поле Flag протокола RSTP используются все 8 бит. Бит 1 — флаг изменения топологии (Topology Change), бит 2 — флаг предложения (Proposal), биты 3 и 4 предназначены для кодирования роли порта (Port Role), бит 5 — флаг изучения (Learning), бит 6 — флаг продвижения (Forwarding), бит 7 — флаг соглашения (Agreement), бит 8 — флаг подтверждения TC (Topology Change Acknowledgment).
  • кадр BPDU протокола RSTP имеет дополнительное поле Version 1 Length длиной 1 байт. Это поле содержит значение 0000 0000 и показывает, что BPDU не содержит никакой информации протокола STP версии 1.
  • Быстрый переход в состояние продвижения

    Процесс построения связующего дерева у протоколов STP и RSTP одинаков. Однако при работе RSTP порт может перейти в состояние продвижения значительно быстрее, т.к. он больше не зависит от настроек таймеров. Протокол RSTP предоставляет механизм предложений и соглашений, который обеспечивает быстрый переход корневых и назначенных портов в состояние Forwarding, а альтернативных и резервных портов - в состояние Discarding. Для этого протокол RSTP вводит два новых понятия: граничный порт и тип соединения.

    полеБайты
    Идентификатор протокола (Protocol Identifier)2
    Версия протокола (Protocol Version Identifier)1
    Тип BPDU (BPDU Type)1
    Флат (Rags)1
    Идентификатор корневого моста (Root Identifier)8
    Расстояние до корневого моста (Root Path Cost)2
    Идентификатор моста (Bridge Identifier)8
    Идентификатор порта (Port Identifier)2
    Время жизни сообщения (Message Age)2
    Максимальное время жизни сообщения (Max Age)2
    Время приветствия (Hello Time)2
    Задержка смены состояний (Forward Delay)2
    Длина версии 1 (Version 1 Length)1
    (рис 11.11) Формат кадра BPDU протокола RSTP

    Граничным портом (Edge Port) объявляется порт, непосредственно подключенный к сегменту сети, в котором не могут быть созданы петли. Например, порт подключен к рабочей станции, которая может периодически включаться или выключаться и активизировать механизм уведомления об изменении топологии или чтобы избежать распространения вычислений STP по клиентским сетям, с целью повышения безопасности. Граничный порт мгновенно переходит в состояние продвижения, минуя состояния прослушивания и обучения. Граничный порт теряет свой статус и становится обычным портом связующего дерева в том случае, если получит кадр BPDU.

    При работе протокола RSTP назначенный порт может выполнять быстрый переход в состояние продвижения в соединениях типа "точка — точка" (Point-to-Point, P2P), т.е. если он подключен только к одному коммутатору.

    Порты, удовлетворяющие, по крайней мере, одному из следующих условий, автоматически рассматриваются протоколом RSTP как порты Р2Р:

  • порт принадлежит агрегированному каналу связи;
  • на порте включена функция автосогласования и она определила работу в полнодуплексном режиме;
  • работа в полнодуплексном режиме на порте была настроена вручную администратором сети.
  • Администратор сети может вручную включать или выключать статусы Edge и P2P либо устанавливать их работу в автоматическом режиме, выполнив соответствующие настройки порта коммутатора.

    (рис 11.12) Граничные порты и порты "точка — точка"

    Механизм предложений и соглашений

    На рис. 11.13 показан процесс работы механизма предложений и соглашений. Коммутаторы АиВ соединены между собой каналом типа "точка — точка". Предположим, что коммутатор А является корневым мостом сети. Коммутатор А посылает коммутатору В кадр BPDU с установленным флагом Proposal (шаг 1 на рис. 11.12 ), предлагая себя в качестве назначенного моста этого сегмента (BPDU-предложение будет передаваться только в том случае, если порт находится в состоянии Discarding или Learning). После получения предложения коммутатор В выберет в качестве нового корневого порта тот порт, через который этот BPDU был получен (порт р2), и переведет все неграничные порты в заблокированное состояние. Все остальные порты будут синхронизированы с новой информацией, чтобы иметь непротиворечивую информацию о топологии сети.

    Порт является синхронизированным "in-sync", если он удовлетворяет следующим критериям:

  • он находится в заблокированном состоянии (это состояние Discarding в стабильной топологии);
  • он является граничным портом.
  • Чтобы продемонстрировать действие метода синхронизации на различные типы портов, предположим, что в коммутаторе В имеются граничные порты p3 и р5 и назначенный порт p4. Порты p3 и p5 уже удовлетворяют одному из условий синхронизации. Чтобы находиться в режиме синхронизации (шаг 2 на рис. 11.12 ), коммутатору В необходимо заблокировать порт р4, переведя его в состояние Discarding.

    После того, как коммутатор В убедится, что все порты синхронизированы, он разблокирует свой новый корневой порт (шаг 3 на рис. 11.12 ) и отправит через него коммутатору А согласие на предложение. Это сообщение является копией BPDU-предложения, в котором вместо бита Proposal установлен бит Agreement. Благодаря этому порт pi коммутатора А точно знает, какому предложению соответствует полученное согласие.

    После этого коммутатор А мгновенно переведет свой назначенный порт р1 в состояние продвижения.

    (рис 11.13) Механизм предложений и соглашений

    Находясь в заблокированном состоянии порт р4 коммутатора В начнет отсылать предложения нижележащему коммутатору и пытаться быстро перейти в состояние продвижения (шаг 4 на рис. 11.12 ).

    Новый механизм изменения топологии

    1. Определение изменений топологии.

    В протоколе RSTP только неграничные порты, переходя в состояние продвижения, могут вызвать процесс изменения топологии. Это означает, что разрыв соединения больше не рассматривается как изменение в топологии, в отличие от протокола STP, т.е. при переходе порта в заблокированное состояние соответствующий коммутатор не генерирует TCN BPDU. Когда мост RSTP обнаруживает изменение топологии, происходит следующее:

  • коммутатор устанавливает начальное значение таймера TC While равным удвоенному интервалу Hello для всех неграничных назначенных портов и корневого порта. While Timer — это интервал времени, в течение которого мост RSTP активно информирует остальные мосты в сети об изменении топологии;
  • удаляет МАС-адреса, ассоциированные со всеми неграничными назначенными портами и корневым портом;
  • до тех пор, пока не истечет время, установленное таймером TC While, запущенным на порте, в BPDU, отправляемых через него, будет установлен бит ТС.
  • 2. Распространение информации об изменении топологии.

    Когда коммутатор получает от соседа BPDU с установленным битом ТС, происходит следующее:

  • коммутатор удаляет все МАС-адреса, изученные его неграничными назначенными портами и корневым портом, за исключением того порта, который получил информацию об изменении топологии;
  • коммутатор запускает таймер TC While и отправляет BPDU с установленным битом ТС через все неграничные порты (RSTP не использует специальные TCN BPDU, за исключением случаев, когда требуется уведомить коммутатор, поддерживающий только протокол STP).
  • Коммутатор-отправитель BPDU с битом ТС непосредственно распространяет информацию об изменении топологии через всю сеть (в отличие от STP, где это может выполнить только корневой мост). Этот механизм распространения информации об изменении топологии быстрее, чем его аналог в протоколе STP, т.к. нет необходимости ждать, когда будет уведомлен корневой мост, и потом поддерживать состояние изменения топологии для всей сети в течение периода времени, равного сумме значений таймеров Forward Delay и Max Age.

    (рис 11.14) Новый механизм изменения топологии

    Стоимость пути RSTP

    Протокол RSTP определяет следующие рекомендованные значения стоимости пути по умолчанию для портов коммутаторов. Эти значения вычисляются в соответствии со скоростью канала связи, к которому подключен порт.

    Стоимость пути RSTP
    ПараметрСкорость каналаРекомендованное значениеРекомендованный диапазонДиапазон значений
    Стоимость пути10 Мбит/с2 000 000200 000— 20 000 0001— 200 000 000
    Стоимость пути100 Мбит/с200 00020 000— 2 000 0001— 200 000 000
    Стоимость пути1 Гбит/с20 0002 000—200 0001— 200 000 000
    Стоимость пути10 Гбит/с2 000200—20 0001— 200 000 000

    Совместимость с STP

    Протокол RSTP может взаимодействовать с оборудованием, поддерживающим STP, и, если необходимо, автоматически преобразовывать кадры BPDU в формат 802.1D. Однако преимущество быстрой сходимости RSTP (когда все коммутаторы быстро переходят в состояние пересылки или блокировки и обладают тождественной информацией) теряется.

    Каждый порт хранит переменную, определяющую тип протокола, используемого в соответствующем сегменте. При включении порта активизируется таймер задержки миграции (Migration delay timer) длительностью 3 секунды. При запуске этого таймера текущий режим (STP или RSTP) ассоциированный с портом, блокируется. Как только истечет время задержки миграции, порт начнет работать в режиме, соответствующем типу следующего полученного им BPDU. Если в результате получения BPDU порт изменил свой режим работы, таймер задержки миграции запускается вновь, что позволяет ограничить частоту возможной смены режимов.

    Предположим, что коммутаторы А и В (рис 11.14) работают в режиме RSTP. Коммутатор А является выделенным мостом этого сегмента. К существующему каналу связи подключается коммутатор С, который является коммутатором с поддержкой протокола STP. Так как коммутаторы STP игнорируют BPDU протокола RSTP и отбрасывают их, то коммутатор С считает, что в этом сегменте сети больше коммутаторов нет и начинает отправлять BPDU формата 802.1D.

    (рис 11.15) Пример совместной работы коммутаторов STP и RSTP

    Коммутатор А получает эти BPDU и после истечения периода времени, установленного таймером задержки миграции, переходит на этом порте в режим работы STP. В результате коммутатор С начинает понимать BPDU коммутатора А и признает его назначенным коммутатором этого сегмента.

    Следует отметить, что если бы в этом частном случае коммутатор С был удален из сегмента, то коммутатор А остался бы работать в режиме STP на этом порте, хотя он мог бы эффективно работать в режиме RSTP со своим единственным соседом коммутатором В. Т.е. у коммутатора А нет возможности узнать, что коммутатор С удален из этого сегмента. В этом частном случае для перезагрузки протокола, используемого на порте коммутатора, требуется вмешательство администратора сети. Когда порт находится в режиме, совместимом с 802.1D, он также может обрабатывать уведомления об изменении топологии TCN BPDU с установленными битами ТС и ТСА.

    Настройка RSTP

    Настройка протокола RSTP на коммутаторах D-Link аналогична настройке протокола STP. Рассмотрим пример настройки RSTP в сети, показанной на рис. 11.16 .

    (рис 11.16) Схема сети

    Настройка коммутатора 1

  • Активизировать RSTP
    enable stp
    config stp version rstp
    
  • Установить коммутатору 1 наименьшее значение приоритета, чтобы он был выбран корневым мостом (приоритет по умолчанию равен 32768)
    config stp priority 4096 instance_id 0
    
  • Настроить граничные порты RSTP
    config stp ports 1-24 edge true
    
  • Настройка коммутатора 2

    enable stp
    config stp version rstp
    config stp ports 1-24 edge true
    

    Multiple Spanning Tree Protocol

    Несмотря на то, что протокол RSTP обеспечивает быструю сходимость сети, он так же, как и протокол STP, обладает следующим недостатком — не поддерживает возможность создания отдельного связующего дерева для каждой VLAN, настроенной в сети. Это означает, что резервные каналы связи не могут блокироваться на основе VLAN и все VLAN образуют одну логическую топологию, не обладающую достаточной гибкостью.

    Протокол Multiple Spanning Tree Protocol (MSTP), являющийся расширением протокола RSTP, преодолевает это ограничение. В дополнение к обеспечению быстрой сходимости сети он позволяет настраивать отдельное связующее дерево для любой VLAN или группы VLAN, создавая множество маршрутов передачи трафика и позволяя осуществлять балансировку нагрузки. Первоначально протокол MSTP был определен в стандарте IEEE 802.1s, но позднее был добавлен в стандарт IEEE 802.1Q-2003. Протокол MSTP обратно совместим с протоколами STP и RSTP.

    Логическая структура MSTP

    Протокол MSTP делит коммутируемую сеть на регионы MST (Multiple Spanning Tree (MST) Region), каждый из которых может содержать множество копий связующих деревьев (Multiple Spanning Tree Instance, MSTI) с независимой друг от друга топологией. Другими словами, регион MST, представляющий собой набор физически подключенных друг к другу коммутаторов, делит данную физическую топологию на множество логических.

    (рис 11.17) Физическая и логическая топология региона MST (рис 11.18) Регион MST

    Для того чтобы два и более коммутатора принадлежали одному региону MST, они должны обладать одинаковой конфигурацией MST.

    Конфигурация MST включает такие параметры, как номер ревизии MSTP (MSTP revision level number), имя региона (Region name), карту привязки VLAN к копии связующего дерева (VLAN-to-instance mapping).

    Внутри коммутируемой сети может быть создано множество MST-регионов.

    Протокол MSTP определяет следующие типы связующих деревьев:

    Internal Spanning Tree (IST) — специальная копия связующего дерева, которая по умолчанию существует в каждом MST-регионе. IST присвоен номер 0 (Instance 0). Она может отправлять и получать кадры BPDU и служит для управления топологией внутри региона. По умолчанию все VLAN одного региона привязаны к IST. Если в регионе создано несколько MSTI, то VLAN, не ассоциированные с ними, остаются привязанными к IST. Динамические VLAN, созданные с помощью протокола GVRP, также ассоциируются с IST;

    Common Spanning Tree (CST) — единое связующее дерево, вычисленное с использованием протоколов STP, RSTP, MSTP и объединяющее все регионы MST и мосты SST (Single Spanning Tree (SST) Bridge);

    Common and Internal Spanning Tree (CIST) — единое связующее дерево, объединяющее CST и IST каждого MST-региона;

    (рис 11.19) Логическая структура MSTP

    Single Spanning Tree (SST) Bridge — мост, поддерживающий только-единственное связующее дерево, CST. Это единственное связующее дерево может поддерживать протокол STP или протокол RSTP.

    Multiple Spanning Tree Instance (MSTI)

    По умолчанию все VLAN данного MST-региона назначены в IST. Помимо IST, в каждом MST-регионе может быть дополнительно создано множество связующих деревьев с независимой друг от друга архитектурой — MSTI. К каждой MSTI администратор сети может вручную привязать соответствующие сети VLAN.

    MSTI обладают следующими характеристиками:

  • MSTI является копией связующего дерева, существующей только внутри региона;
  • MSTI не может отправлять BPDU за пределы своего региона (отправлять и получать BPDU может только IST);
  • все MSTI внутри региона могут нумероваться 1, 2, 3, 4 и т.д. (максимальное количество MSTI зависит от модели коммутатора и версии программного обеспечения);
  • MSTI не отправляет индивидуальные BPDU. Вся информация о данной MSTI помещается в конфигурационное сообщение MSTI (MSTI Configuration Message, M-record), которое инкапсулируется в кадры MSTP BPDU, рассылаемые IST.
  • Для того чтобы каждая MSTI представляла собой отдельную от IST логическую топологию, администратор сети может присвоить коммутаторам и портам внутри MSTI собственные значения приоритетов и стоимости пути.

    Формат MSTP BPDU

    Формат MSTP BPDU аналогичен формату RSTP BPDU, за исключением полей, предназначенных для передачи информации об IST, каждой MSTI (если они созданы в регионе) и конфигурации MST.

    Вычисления в MSTP

    Прежде чем начать рассматривать вопрос вычисления активной топологии MSTP, следует отметить, что спецификация MSTP рассматривает MST-регион как один виртуальный мост RSTP, и вычисление активной топологии внутри региона отделено от вычисления топологии всей коммутируемой сети. Другими словами, соединения между мостами внутри региона не зависят от внешних соединений между MST-регионами.

    (рис 11.20) Формат MSTP BPDU

    Процесс вычисления в MSTP начинается с выбора корневого моста CIST (CIST Root) сети. При выборе CIST Root используется тот же фундаментальный алгоритм, который описан в стандарте IEEE 802.1D-2004.

    Первоначально каждый коммутатор сети считает себя корневым мостом CIST и рассылает BPDU, в поле CIST Root Bridge ID которых указано значение его идентификатора, а внешняя стоимость пути до корня (CIST External Root Path Cost) равна нулю. Эти два параметра являются основными для определения активной топологии всей коммутируемой сети.

    Коммутатор перестанет заявлять себя в качестве корневого моста CIST, как только получит BPDU с меньшим значением идентификатора моста. В качестве CIST Root будет выбран коммутатор, обладающий наименьшим значением идентификатора моста среди всех коммутаторов сети.

    Одновременно с выбором корневого моста CIST в каждом регионе выбирается региональный корневой мост CIST (CIST Regional Root).

    Им становится коммутатор, обладающий наименьшей внешней стоимостью пути к корню CIST среди всех коммутаторов принадлежащих данному региону. Внешняя стоимость пути до корня CIST представляет собой суммарное условное время пути от граничного коммутатора MST-региона или моста SST до порта корневого моста CIST. Следует отметить, что значение CIST External Root Path Cost не изменяется при передаче конфигурационного BPDU между коммутаторами внутри региона. Это значение увеличивается на условное время передачи только портами граничных коммутаторов, подключающих данный регион к другим регионам. В протоколе MSTP рекомендованные значения стоимости пути аналогичны значениям, определенным в RSTP.

    В случае наличия в регионе коммутаторов с одинаковой стоимостью пути в качестве CIST Regional Root будет выбран коммутатор с наименьшим значением идентификатора моста. При этом маршрут от этого коммутатора до CIST Root не должен проходить через другие коммутаторы этого региона. Т.е. в качестве CIST Regional Root выбирается коммутатор, находящийся на границе региона. Следует отметить, что регион, содержащий CIST Root, использует его также в качестве CIST Regional Root.

    Протокол MSTP, используя механизм предложений и соглашений RSTP, блокирует все избыточные каналы связи от всех CIST Regional Root к CIST Root, делая их резервными или альтернативными.

    При наличии в регионе отдельных связующих деревьев MSTI, для каждой MSTI, независимо от остальных, выбирается региональный корневой мост MSTI (MSTIRegional Root). Им становится коммутатор, обладающий наименьшим значением идентификатора моста среди всех коммутаторов данной MSTI этого MST-региона. Определение роли портов и блокирование избыточных связей происходит аналогично процедурам, описанным в RSTP.

    Роли портов MSTP

    Протокол MSTP определяет роли портов, которые участвуют в процессе вычисления активной топологии CIST и MSTI, аналогичные протоколам STP и RSTP:

  • корневой порт (Root Port);
  • назначенный порт (Designated Port);
  • альтернативный/резервный порт (Alternate/Backup Port)
  • Дополнительно в MSTI используется еще одна роль, которая может быть присвоена порту, — мастер-порт (Master Port).

    Роли портов CIST определяют роли каждого порта коммутатора, участвующего в построении активной топологии CIST.

    Корневой порт (Root Port) — это порт, который обладает минимальной стоимостью пути от коммутатора до корневого моста CIST (в случае если мост не является CIST Root) через региональный мост (в том случае, если коммутатор не является региональным корнем CIST).

    Назначенный порт (Designated Port) — это порт, обладающий наименьшей стоимостью пути от подключенного сегмента сети до корневого моста CIST.

    Альтернативный/резервный порт (Alternate/Backup Port) — это порт, который обеспечивает подключение, если происходит потеря соединения с какими-либо коммутаторами или сегментами сети.

    Роли портов MSTI определяют роли каждого порта коммутатора, участвующего в построении активной топологии MSTI внутри границы региона.

    Корневой порт (Root Port) — это порт, который обладает минимальной стоимостью пути от коммутатора до регионального корневого моста MSTI (в случае если мост не является региональным корнем для этой MSTI).

    Назначенный порт (Designated Port) — это порт, обладающий наименьшей стоимостью пути от подключенного сегмента сети до регионального корневого моста MSTI.

    (рис 11.21) Роли портов (рис 11.22) Пример топологии MSTP

    Альтернативый/резервный порт (Alternate/Backup Port) — это порт, который обеспечивает подключение, если происходит потеря соединения с какими-либо коммутаторами или сегментами сети.

    Мастер-порт (Master Port) — это порт, который обеспечивает подключение региона к корневому мосту CIST, находящемуся за пределами данного региона. Корневой порт CIST регионального корневого моста CIST является мастером-портом для всех MSTI.

    Протокол MSTP вводит еще одну роль, которая может быть присвоена порту, — пограничный порт (Boundary Port). Пограничным портом является порт, который подключает MST-регион к другому региону или SST-мосту.

    Пример топологии MSTP

    Рассмотрим пример топологии MSTP, приведенный на рис. 11.21 . Сеть разбита на 3 MST-региона, в каждом регионе все коммутаторы ассоциированы с Instance 0.

  • Коммутатор 1 (SW-1) выбран в качестве корневого моста CIST, т.к. он обладает наименьшим среди всех коммутаторов сети значением идентификатора моста.
  • Коммутаторы 1, 2 и 3 (SW-1, SW-2, SW-3) находятся в одном MST-регионе с номером 1, т.к. обладают одинаковым идентификатором MST-конфигурации. Коммутаторы 2 и 3 находятся в одном регионе с корневым мостом CIST (коммутатор 1), поэтому их внешняя стоимость пути равна 0 и их региональный мост CIST совпадает с корневым мостом CIST.
  • Коммутаторы 4-10 (SW-4-SW-10) принадлежат одному региону, т.к. имеют одинаковые идентификаторы MST-конфигурации. Коммутатор 4 (SW-4) является региональным корневым мостом CIST для MST-региона 2, т.к. обладает наименьшей внешней стоимостью пути к CIST Root.
  • Коммутаторы 11, 12 и 13 (SW-11-SW-13) принадлежат к MST-региону 3, т.к. обладают одинаковыми идентификаторами MST-конфигурации. Коммутатор 11 (SW-11) выбран в качестве регионального корневого моста CIST для MST-региона 3, т.к. обладает наименьшей внешней стоимостью пути к CIST Root.
  • Состояние портов MSTP

    В протоколе MSTP определены состояния, в которых могут находиться порты, аналогичные протоколу RSTP:

    Learning ("Обучение") — порт может принимать/отправлять кадры BPDU, изучать МАС-адреса и строить таблицу коммутации. Порт в этом состоянии не передает пользовательские кадры;

    Forwarding ("Продвижение") — в этом состоянии порт может передавать пользовательские кадры, изучать новые МАС-адреса и принимать/отправлять кадры BPDU;

    Discarding ("Отбрасывание") — в этом состоянии порт может только принимать кадры BPDU, передача пользовательского трафика и изучение МАС-адресов не выполняется.

    Счетчик переходов MSTP

    При вычислении активной топологии связующего дерева IST и MSTI не используют значения полей Max Age и Message Age конфигурационного BPDU для отбрасывания устаревших сообщений. Вместо этого используется механизм счетчика переходов (Hop count).

    С помощью команды config stp maxhops на коммутаторах D-Link можно настроить максимальное число переходов между устройствами внутри региона, прежде чем кадр BPDU будет отброшен. Значение счетчика переходов устанавливается региональным корневым мостом MSTI или CIST и уменьшается на 1 каждым портом коммутатора, получившим кадр BPDU.

    Внимание: значение счетчика переходов зависит от модели коммутатора. По умолчанию используется значение счетчика переходов, равное 20.

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

    Следует отметить, что коммутаторы не изменяют данные, хранимые в полях Max Age и Message Age конфигурационных BPDU, при их передаче через коммутаторы MST-региона. Значение Message Age изменяется только коммутаторами, расположенными на границе региона, чтобы обеспечить совместимость с мостами STP и RSTP, которые могут использоваться в сети.

    Настройка протокола MSTP на коммутаторах

    Ниже приведены основные шаги, которые позволяют настроить протокол MSTP на коммутаторах D-Link.

  • Активизировать STP на всех устройствах.
  • Изменить версию STP на MSTP (по умолчанию используется RSTP).
  • Настроить имя MST-региона и ревизию.
  • Создать MSTI и карту привязки VLAN к MSTI.
  • Задать приоритет STP для выбора корневого моста. По умолчанию используется приоритет 32768.
  • Настроить приоритеты портов.
  • Настроить граничные порты.
  • Рассмотрим пример, показанный на рис. 11.22 . В сети созданы две виртуальные локальные сети — VLAN v2 и VLAN v3. Каждая VLAN привязывается к одной копии связующего дерева.

    (рис 11.23) Схема сети

    Настройка коммутатора 1

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp priority 4096 instance_id 0
    config stp priority 4096 instance_id 2
    config stp priority 4096 instance_id 3
    config stp ports 7,23 edge true
    
  • Настройка коммутатора 2

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp ports 7,23 edge true
    
  • Рассмотрим второй пример настройки протокола MSTP, позволяющий осуществлять балансировку нагрузки между каналами связи.

    В примере, показанном на рис. 11.23 , каждая VLAN привязывается к одной копии связующего дерева. Порты 25 и 26 являются маркированными портами обеих VLAN. Порт 25 используется в качестве активного канала связи для VLAN v2, порт 26 используется в качестве активного канала связи для VLAN v3. Т.к. для каждой VLAN будет построена своя собственная активная топология связующего дерева, то кадры VLAN v2 и VLAN v3 будут передаваться по разным маршрутам (через порты 25 и 26 соответственно), благодаря чему будет обеспечена балансировка нагрузки. В случае если один из каналов связи выйдет из строя, трафик VLAN v2 и VLAN v3 будет передаваться по одному оставшемуся каналу.

    Настройка коммутатора 1

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add tagged 25-26
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add tagged 25-26
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp ports 7,23 edge true
    
  • Настройка коммутатора 2

  • Создание VLAN
    config vlan default delete 1-8,17-24
    create vlan v2 tag 2
    config vlan v2 add tagged 25-26
    config vlan v2 add untagged 1-8
    create vlan v3 tag 3
    config vlan v3 add tagged 25-26
    config vlan v3 add untagged 17-24
    
  • Настройка MSTP
    enable stp
    config stp version mstp
    config stp mst_config_id name dlink revision_level 1
    create stp instance_id 2
    config stp instance_id 2 add_vlan 2
    create stp instance_id 3
    config stp instance_id 3 add_vlan 3
    config stp mst_ports 25 instance_id 2 priority 96
    config stp mst_ports 26 instance_id 2 priority 128
    config stp mst_ports 25 instance_id 3 priority 128
    config stp mst_ports 26 instance_id 3 priority 96
    config stp ports 7,23 edge true
    
  • (рис 11.24) Балансировка нагрузки с помощью MSTP

    Дополнительные функции защиты от петель

    Функция LoopBack Detection (LBD) обеспечивает дополнительную защиту от образования петель на уровне 2 модели OSI. Существует две реализации этой функции:

  • STP LoopBack Detection;
  • LoopBack Detection Independent STP.
  • На рис. 11.25 показана ситуация, когда к порту управляемого коммутатора подключен неуправляемый коммутатор, порты которого соединены с образованием петли. В этом случае в сети может возникнуть широковещательный шторм и ее работоспособность будет нарушена.

    Функция STP LoopBack Detection предназначена для отслеживания таких ситуаций и временного блокирования тех портов коммутатора, на которых обнаружены петли, тем самым предотвращая проблемы в сети. Коммутатор определяет наличие петли, когда отправленный им кадр BPDU вернулся назад на другой его порт. В этом случае порт-источник кадра BPDU и порт-приемник будут автоматически заблокированы и администратору сети будет отправлен служебный пакет-уведомление. Порты будут находиться в заблокированном состоянии до истечения периода времени, установленного таймером LBD Recover Timer. По умолчанию на коммутаторах D-Link эта функция отключена. Следует отметить, что функция STP LoopBack Detection не определяет петлю, когда отправленный кадр BPDU вернулся назад на этот же порт.

    (рис 11.25) Пример работы функции LoopBack Detection Independent STP

    В отличие от STP LoopBack Detection функция LoopBack Detection Independent STP не требует настройки протокола STP на портах, на которых необходимо определять наличие петли. В этом случае наличие петли обнаруживается путем отправки портом специального служебного кадра ECTP (Ethernet Configuration Testing Protocol). При получении кадра ECTP этим же портом он блокируется на указанное в таймере время.

    Следует отметить, что функция LoopBack Detection Independent STP версии 4.03 также может определять петли, возникающие между портами одного коммутатора.

    Внимание: чтобы получить информацию о поддержке коммутатором функции LBD v.4.03, необходимо обратиться в службу технической поддержки D-Link.

    Существуют два режима работы этой функции: Port-Based и VLAN-Based (начиная с LBD версии v.4.00).

    В режиме Port-Based при обнаружении петли происходит автоматическая блокировка порта, и никакой трафик через него не передается.

    В режиме VLAN-Based порт будет заблокирован для передачи трафика только той VLAN, в которой обнаружена петля. Остальной трафик через этот порт будет передаваться.

    Настройка функции LoopBack Detection

    В качестве примера приведем настройку функций STP LoopBack Detection и LoopBack Detection Independent STP в режимах Port-Based и VLAN-Based для ситуации, показанной на рис. 11.24 .

    Настройка функции STP LoopBack Detection

    enable stp
    config stp ports 1-24 state enable edge true lbd enable
    config stp lbd_recover_timer 60
    

    Настройка функции LoopBack Detection Independent STP (Port-Based)

    enable loopdetect
    config loopdetect recover_timer 60
    config loopdetect interval 10
    config loopdetect mode port-based
    config loopdetect ports 1-24 state enabled
    

    Настройка функции LoopBack Detection Independent STP (VLAN-Based)

    enable loopdetect
    config loopdetect recover_timer 60
    config loopdetect interval 10
    config loopdetect mode vlan-based
    config loopdetect ports 1-24 state enabled
    
    Внимание: таймер recover_timer — интервал времени в секундах, через который будет проверяться статус заблокированного функцией LBD порта. Если установить значение таймера равным 0, заблокированный порт не сможет быть автоматически разблокирован и для его восстановления потребуется вмешательство администратора. Значение таймера задается глобально на коммутаторе.

    loopdetect interval — временной интервал в секундах между отсылаемыми кадрами ECTP (Ethernet Configuration Testing Protocol).

    Функции безопасности STP

    Из-за ошибок в конфигурации или вредоносных атак в сети может возникнуть ситуация, когда корневой мост получит кадр BPDU, содержащий лучший приоритет, и потеряет свою позицию. При настройке протоколов RSTP или MSTP на управляемых коммутаторах, расположенных на границе сети, с помощью параметра restrictedrole можно ограничить роли выполняемые портом в активной топологии. При активизации этого параметра порт не будет выбран в качестве корневого порта даже в том случае, если получит BPDU с наилучшим приоритетом. После выбора корневого порта этот порт будет выбран в качестве альтернативного. По умолчанию функция restrictedrole отключена.

    Настройка коммутатора

    enable stp
    config stp version rstp
    config stp priority 32768 instance_id 0
    config stp ports 1-24 edge true restricted_role true
    restricted_tcn true state enable
    config stp ports 25-28 edge false state enable fbpdu enable
    

    Агрегирование каналов связи

    Агрегирование каналов связи (Link Aggregation) — это объединение нескольких физических портов в одну логическую магистраль на канальном уровне модели OSI с целью образования высокоскоростного канала передачи данных и повышения отказоустойчивости.

    (рис 11.26) Пример агрегированного канала связи между коммутаторами

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

    Включенные в агрегированный канал порты называются членами группы агрегирования (Link Aggregation Group).

    Внимание: количество портов в группе зависит от модели коммутатора. В управляемых коммутаторах в группу можно объединить до 8 портов.

    Один из портов в группе выступает в качестве мастера-порта (master port). Так как все порты агрегированной группы должны работать в одном режиме, конфигурация мастера-порта распространяется на все порты в группе. Таким образом, при конфигурировании портов в группе агрегирования достаточно настроить мастер-порт.

    Важным моментом при реализации объединения портов в агрегированный канал является распределение трафика по ним. Если пакеты одного сеанса будут передаваться по разным портам агрегированного канала, то может возникнуть проблема на более высоком уровне модели OSI. Например, если два или более смежных кадров одного сеанса станут передаваться через разные порты агрегированного канала, то из-за неодинаковой длины очередей в их буферах может возникнуть ситуация, когда из-за неравномерной задержки передачи кадра более поздний кадр обгонит своего предшественника. Поэтому в большинстве реализаций механизмов агрегирования используются методы статического, а не динамического распределения кадров по портам, т.е. закрепление за определенным портом агрегированного канала потока кадров определенного сеанса между двумя узлами. В этом случае все кадры будут проходить через одну и ту же очередь и их последовательность не изменится. Обычно при статическом распределении выбор порта для конкретного сеанса выполняется на основе выбранного алгоритма агрегирования портов, т.е. на основании некоторых признаков поступающих пакетов. В коммутаторах D-Link поддерживается 9 алгоритмов агрегирования портов:

  • macsource — МАС-адрес источника;
  • macdestination — МАС-адрес назначения;
  • mac_source_dest — МАС-адрес источника и назначения;
  • ip_source — IP-адрес источника;
  • ipdestination — IP-адрес назначения;
  • ip_source_dest — IP-адрес источника и назначения;
  • l4_src_port — TCP/UDP-порт источника;
  • l4_dest_port — TCP/UDP-порт назначения;
  • l4_src_dest_port — TCP/UDP-порт источника и назначения.
  • В коммутаторах D-Link по умолчанию используется алгоритм mac_source (МАС-адрес источника).

    (рис 11.27) Распределение потоков данных по каналам агрегированной линии связи для алгоритма mac_source_dest

    Объединение каналов следует рассматривать как вариант настройки сети, используемый преимущественно для соединений "коммутатор — коммутатор" или "коммутатор — файл-сервер", требующих более высокой скорости передачи, чем может обеспечить одиночная линия связи. Также эту функцию можно применять для повышения надежности важных каналов связи. В случае повреждения линии связи объединенный канал быстро перенастраивается (не более чем за 1 сек.), а риск дублирования и изменения порядка кадров незначителен.

    Программное обеспечение коммутаторов D-Link поддерживает два типа агрегирования каналов связи:

  • статическое;
  • динамическое, на основе стандарта IEEE 802.3ad (LACP).
  • При статическом агрегировании каналов (установлено по умолчанию), все настройки на коммутаторах выполняются вручную, и они не допускают динамических изменений в агрегированной группе.

    Для организации динамического агрегирования каналов между коммутаторами и другими сетевыми устройствами используется протокол управления агрегированным каналом — Link Aggregation Control Protocol (LACP). Протокол LACP определяет метод управления объединением нескольких физических портов в одну логическую группу и предоставляет сетевым устройствам возможность автосогласования каналов (их добавления или удаления) путем отправки управляющих кадров протокола LACP непосредственно подключенным устройствам с поддержкой LACP. Пакеты LACP отправляются устройством через все порты, на которых активизирован протокол. Порты, на которых активизирован протокол LACP, могут быть настроены для работы в одном из двух режимов: активном (active) или пассивном (passive). При работе в активном режиме порты выполняют обработку и рассылку управляющих кадров протокола LACP. При работе в пассивном режиме порты выполняют только обработку управляющих кадров LACP.

    Для того чтобы динамический канал обладал функцией автосогласования, рекомендуется порты, входящие в агрегированную группу, с одной стороны канала настраивать как активные, а с другой — как пассивные.

    Следует отметить, что у портов, объединяемых в агрегированный канал, нижеперечисленные характеристики должны обладать одинаковыми настройками:

  • тип среды передачи;
  • скорость;
  • режим работы — полный дуплекс;
  • метод управления потоком (Flow Control) .
  • При объединении портов в агрегированный канал на них не должны быть настроены функции аутентификации 802.1Х, зеркалирования трафика и блокировки портов.

    Настройка статических и динамических агрегированных каналов

    Рассмотрим пример, показанный на рис. 11.28 . Для повышения пропускной способности канала связи между коммутатором 1, к которому подключен сервер, и коммутатором 2, к которому подключены пользователи, требуется объединить порты коммутаторов в статический агрегированный канал.

    (рис 11.28) Схема сети

    На коммутаторах необходимо выполнить следующую настройку:

    Настройка коммутатора 1

  • Создать группу агрегирования (тип канала Static) и задать алгоритм агрегирования.
    create link_aggregation group_id 1 type static
    config link_aggregation algorithm mac_destination
    
  • Включить порты 21, 22, 23, 24 в группу и выбрать порт 21 в качестве мастера-порта.
    config link_aggregation group_id 1 master_port 21 ports 21,22,23,24 state enabled
    
  • Настройка коммутатора 2

  • Создать группу агрегирования и задать алгоритм агрегирования.
    create link_aggregation group_id 1 type static
    config link_aggregation algorithm mac_source
    
  • Включить порты 21, 22, 23, 24 в группу и выбрать порт 21 в качестве мастера-порта.
    config link_aggregation group_id 1 master_port 21 ports 21,22,23,24 state enabled
    
  • Рассмотрим пример настройки коммутаторов при создании динамического агрегированного канала связи.

    (рис 11.29) Схема сети

    Настройка коммутатора 1

  • Создать группы агрегирования (тип канала LACP) и задать алгоритм агрегирования.
    create link_aggregation group_id 1 type lacp
    create link_aggregation group_id 2 type lacp
    config link_aggregation algorithm mac_destination
    
  • Включить порты 1, 2, 3, 4 в группу 1 и выбрать порт 1 в качестве мастера-порта.
    config link_aggregation group_id 1 master_port 1 ports 1-4 state enabled
    
  • Включить порты 5, 6, 7, 8 в группу 2 и выбрать порт 5 в качестве мастера-порта.
  • config link_aggregation group_id 2 master_port 5 port 5-8 state enabled
  • Настроить для портов 1-8 активный режим работы.
    config lacp_port 1-8 mode active
    
  • Настройка коммутаторов 2 и 3 (на портах 1-4 этих коммутаторов включено автосогласование)

    create link_aggregation group_id 1 type lacp
    config link_aggregation algorithm mac_source
    config link_aggregation group_id master_port 1 ports 1-4 state enabled
    
    Внимание:
  • Если один конец агрегированного канала настроен как LACP, другой конец должен также иметь тип LACP. Если один конец имеет тип LACP, а другой Static, то соединение установлено не будет.
  • Если коммутатор с поддержкой LACP требуется подключить к коммутатору, поддерживающему только статическое агрегирование, то тип агрегированного канала на коммутаторе LACP необходимо установить в Static.
  • Не соединяйте физически соответствующие порты устройств до тех пор, пока не настроено агрегирование каналов, т.к. в коммутируемой сети может возникнуть петля.
  • Вернуться к учебному плану