Отличия stp от rstp кратко

Обновлено: 05.07.2024

  • Приоритет — поле, которое позволяет административно влиять на выборы корневого коммутатора. Размер — 2 байта,
  • MAC-адрес — используется как уникальный идентификатор, который, в случае совпадения значений приоритетов, позволяет выбрать корневой коммутатор. Так как MAC-адреса уникальны, то и Bridge ID уникален, так что какой-то коммутатор обязательно станет корневым.

Определение корневых портов

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

Определение назначенных портов

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

Роли и состояния портов

  • Root Port — корневой порт коммутатора
  • Designated Port — назначенный порт сегмента
  • Nondesignated Port — неназначенный порт сегмента
  • Disabled Port — порт который находится в выключенном состоянии.
  • Blocking — блокирование
  • Listening — прослушивание
  • Learning — обучение
  • Forwarding — пересылка

STP (802.1d)

Если порт изменяет состояние с Blocking в Forwarding, то он должен пройти через два промежуточных состояния: Listening и Learning. Переход из Forwarding в Blocking может выполняться сразу.

RSTP (802.1w)

  • Root
  • Designated
  • Alternate — альтернативный путь к корневому коммутатору. Путь отличается от того, который использует корневой порт.
  • Backup — запасной путь в сегмент.
  • Learning
  • Forwarding
  • Discarding

Отличия STP и RSTP

Состояние в STP (802.1d)Состояние в RSTP (802.1w)
BlockingDiscarding
ListeningDiscarding
LearningLearning
ForwardingForwarding


Флаги в BPDU

В RSTP нет отдельного BPDU для анонсирования изменений в топологии (topology change notification (TCN)). Протокол использует флаг topology change (TC) для того чтобы указать на изменения. Однако, для совместимости с коммутаторами, которые используют 802.1D, коммутаторы использующие RSTP обрабатывают и генерируют TCN BPDU.

The RSTP provides rapid convergence of the spanning tree through explicit handshaking that eliminates the IEEE 802.1D forwarding delay and quickly transitions root ports and designated ports to the forwarding state.

The RSTP takes advantage of point-to-point wiring and provides rapid convergence of the spanning tree. Reconfiguration of the spanning tree can occur in less than 1 second (in contrast to 50 seconds with the default settings in the 802.1D spanning tree), which is critical for networks carrying delay-sensitive traffic such as voice and video.

Port Roles and the Active Topology

The RSTP provides rapid convergence of the spanning tree by assigning port roles and by determining the active topology. The RSTP builds upon the IEEE 802.1D STP to select the switch with the highest switch priority (lowest numerical priority value) as the root switch. Then the RSTP assigns one of these port roles to individual ports:

•Root port—Provides the best path (lowest cost) when the switch forwards packets to the root switch.

•Designated port—Connects to the designated switch, which incurs the lowest path cost when forwarding packets from that LAN to the root switch. The port through which the designated switch is attached to the LAN is called the designated port.

•Alternate port—Offers an alternate path toward the root switch to that provided by the current root port.

•Backup port—Acts as a backup for the path provided by a designated port toward the leaves of the spanning tree. A backup port can exist only when two ports are connected together in a loopback by a point-to-point link or when a switch has two or more connections to a shared LAN segment.

•Disabled port—Has no role within the operation of the spanning tree.

A port with the root or a designated port role is included in the active topology. A port with the alternate or backup port role is excluded from the active topology.

In a stable topology with consistent port roles throughout the network, the RSTP ensures that every root port and designated port immediately transition to the forwarding state while all alternate and backup ports are always in the discarding state (equivalent to blocking in 802.1D). The port state controls the operation of the forwarding and learning processes.

Rapid Convergence

The RSTP provides for rapid recovery of connectivity following the failure of a switch, a switch port, or a LAN. It provides rapid convergence for edge ports, new root ports, and ports connected through point-to-point links as follows:

•Edge ports—If you configure a port as an edge port on an RSTP switch by using the spanning-tree portfast interface configuration command, the edge port immediately transitions to the forwarding state. An edge port is the same as a Port Fast-enabled port, and you should enable it only on ports that connect to a single end station.

•Root ports—If the RSTP selects a new root port, it blocks the old root port and immediately transitions the new root port to the forwarding state.

•Point-to-point links—If you connect a port to another port through a point-to-point link and the local port becomes a designated port, it negotiates a rapid transition with the other port by using the proposal-agreement handshake to ensure a loop-free topology.

As shown in Figure 15-2, Switch A is connected to Switch B through a point-to-point link, and all of the ports are in the blocking state. Assume that the priority of Switch A is a smaller numerical value than the priority of Switch B. Switch A sends a proposal message (a configuration BPDU) with the proposal flag set) to Switch B, proposing itself as the designated switch.

After receiving the proposal message, Switch B selects as its new root port the port from which the proposal message was received, forces all nonedge ports to the blocking state, and sends an agreement message (a BPDU with the agreement flag set) through its new root port.

After receiving Switch B's agreement message, Switch A also immediately transitions its designated port to the forwarding state. No loops in the network are formed because Switch B blocked all of its nonedge ports and because there is a point-to-point link between Switches A and B.

When Switch C is connected to Switch B, a similar set of handshaking messages are exchanged. Switch C selects the port connected to Switch B as its root port, and both ends immediately transition to the forwarding state. With each iteration of this handshaking process, one more switch joins the active topology. As the network converges, this proposal-agreement handshaking progresses from the root toward the leaves of the spanning tree.

The switch determines the link type from the port duplex mode: a full-duplex port is considered to have a point-to-point connection; a half-duplex port is considered to have a shared connection. You can override the default setting that is determined by the duplex setting by using the spanning-tree link-type interface configuration command.



PVST (Cisco)

Per-VLAN Spanning Tree (PVST) — проприетарный протокол компании Cisco Systems, который для каждого VLAN строит отдельное дерево. Он предполагает использование ISL для создания транков (тегированных портов) и позволяет порту быть заблокированным для одних VLAN и разблокированным для других.

Аннотация: Цель: Понять функционирование протоколов связующего дерева и изучить их настройку на коммутаторах D-Link.

Протокол Spanning Tree Protocol (STP)

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

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

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

Процесс вычисления связующего дерева начинается с выбора корневого моста ( Root Bridge ), от которого будет строиться дерево . Второй этап работы STP — выбор корневых портов ( Root Port). Третий шаг работы STP — определение назначенных портов ( Designated Port ).

В процессе построения топологии сети каждый порт коммутатора проходит несколько стадий: Blocking (" Блокировка "), Listening ("Прослушивание"), Learning ("Обучение"), Forwarding ("Продвижение"), Disable ("Отключен").

Протокол Rapid Spanning Tree Protocol (RSTP)

Протокол Rapid Spanning Tree Protocol ( RSTP ) является развитием протокола STP . Основные понятия и терминология протоколов STP и RSTP одинаковы. Существенным их отличием является способ перехода портов в состояние продвижения и то, каким образом этот переход влияет на роль порта в топологии. RSTP объединяет состояния Disabled, Blocking и Listening , используемые в STP , и создает единственное состояние Discarding ("Отбрасывание"), при котором порт не активен. Выбор активной топологии завершается присвоением протоколом RSTP определенной роли каждому порту: корневой порт ( Root Port), назначенный порт ( Designated Port ), альтернативный порт ( Alternate Port), резервный порт ( Backup Port).

Протокол RSTP предоставляет механизм предложений и соглашений, который обеспечивает быстрый переход корневых и назначенных портов в состояние Forwarding, а альтернативных и резервных портов в состояние Discarding . Для этого протокол RSTP вводит два новых понятия: граничный порт и тип соединения. Граничным портом ( Edge Port) объявляется порт , непосредственно подключенный к сегменту сети, в котором не могут быть созданы петли. Граничный порт мгновенно переходит в состояние продвижения, минуя состояния прослушивания и обучения. Назначенный порт может выполнять быстрый переход в состояние продвижения в соединениях типа "точка — точка" (Point-to-Point, P2P), т.е. если он подключен только к одному коммутатору.

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

Протокол Multiple Spanning Tree Protocol (MSTP)

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

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

Для того чтобы два и более коммутатора принадлежали одному региону 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 , настроенные на коммутаторах данного MST -региона, по умолчанию привязаны к IST ;
  • Common Spanning Tree (CST) — единое связующее дерево, вычисленное с использованием протоколов STP , RSTP , MSTP и объединяющее все регионы MST и мосты SST ;
  • Common and Internal Spanning Tree (CIST) — единое связующее дерево, объединяющее CST и IST каждого MST -региона;
  • Single Spanning Tree (SST) Bridge — это мост, поддерживающий только единственное связующее дерево, CST . Это единственное связующее дерево может поддерживать протокол STP или протокол RSTP .

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

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

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

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

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

Роли портов

Протокол MSTP определяет роли портов, которые участвуют в процессе вычисления активной топологии CIST и MSTI аналогичные протоколам STP и RSTP . Дополнительно в MSTI используется еще роль — мастер- порт (Master Port).

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

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

Пользователь может установить значение счетчика переходов от 1 до 20. Значение по умолчанию — 20.

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

Цель: Понять функционирование протоколов связующего дерева и изучить их настройку на коммутаторах D-Link.

Оборудование:

Перед выполнением задания необходимо сбросить настройки коммутаторов к заводским настройкам по умолчанию командой

Настройка протокола RSTP (IEEE 802.1w)

Схема 1

Примечание. Не соединяйте кабелем Ethernet порты коммутатора с образованием петли во время настройки.

Настройка DES-3200-28_A

Настройте IP-адрес интерфейса управления коммутатора

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

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

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

Установите на коммутаторе наименьшее значение приоритета, чтобы он мог быть выбран корневым мостом (приоритет по умолчанию = 32768 )


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

Что настраивать STP, RSTP или MST?

В современных стандартах протокол STP уже нигде не фигурирует. Известный всем 802.1d в последней редакции (802.1d-2004) описывает протокол RSTP. При этом MST перекочевал в 802.1q (802.1q-2014). Как мы помним, ранее RSTP описывался стандартом 802.1w, а MST — 802.1s.

RSTP и MST имеют существенно меньшее время сходимости. Они намного быстрее перестраивают топологию сети в случае отказа оборудования или каналов связи. Время сходимости для ряда отказов этих протоколов меньше 1 секунды против 30+ секунд в случае STP. Поэтому классический STP рекомендуется использовать только там, где задействуется старое оборудование, не поддерживающее более современные протоколы.

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

Таким образом, MST является хорошей альтернативой между стандартным RSTP и проприетарным PVRST+. Особенно если наша сеть построена на базе коммутаторов разных производителей. Стоит заметить, что все три вариации быстрого STP совместимы друг с другом.

В дальнейшем, упоминая RSTP, мы будем подразумевать в том числе и его расширения MST/PVRST+.

Какие технологии обеспечивают быстроту реакции в работе RSTP?

RSTP в первую очередь опирается на работу механизмов, не привязанных к стандартным таймерам. Именно поэтому он позволяет получить существенно меньшее время сходимости сети. Можно выделить следующие улучшения в работе RSTP по сравнению с классическим STP:

  • точка-точка (point-to-point) – к такому порту подключен только один RSTP коммутатор;
  • общий (shared) — к такому порту подключено несколько RSTP коммутаторов (через хаб, что в наше время является большой экзотикой).

В классическом STP порт, который должен стать корневым, проходит все стадии по переходу в режим передачи (Listening → Learning → Forwarding), что занимает более 30 секунд.

Прежде чем коснуться механизма Proposal/Agreement, нужно отметить два разных типа портов в RSTP: пограничный порт (Edge port) и не пограничный (non-Edge port). В Edge порт подключаются оконечные устройства (ПК, серверы, в ряде случаев маршрутизаторы и пр.). В не Edge-порт подключаются другие коммутаторы, участвующие в топологии STP.

На коммутаторах Cisco тип порта Edge задаётся командой spanning-tree portfast.

RSTP использует механизм Proposal/Agreement для быстрого переходя портов из состояния Discarding в состояние Forwarding. Этот механизм запускается, когда у коммутатора меняется Root Port (как минимум при включении в сеть). В этом случае он выключает все порты, не являющиеся Edge-портами. Об этом оповещает вышестоящий коммутатор (куда как раз смотрит Root port), после чего включает в режим Forwarding только Root port. Остальные порты (не Edge) находятся в заблокированном состоянии, пока не произойдёт одно из двух:


RSTP отличается от STP тем, что состояние порта отвязали от его роли. Это позволило описать роль порта в топологии сети без оглядки на его состояние. А значит, обладать лучшим видение топологии сети и возможностью оперативно реагировать на изменения в ней. Так появились альтернативный (alternative) и резервный (backup) порты. Альтернативный порт – замена корневому. Через него может быть достигнут корневой коммутатор, но при этом данный порт не имеет роли корневого (т.е. получает BPDU c худшей метрикой) и не является назначенным (т.е. не является лучшим в данном сегменте сети для достижимости корневого устройства).

В протоколе RSTP альтернативный порт переходит в состояние передачи сразу же после того, как откажет корневой. Такого же поведения можно добиться в классическом STP, используя проприетарные доработки. Например, Cisco предлагает для этих целей технологию UplinkFast.


В такой ситуации, если у устройства есть другой маршрут к корневому коммутатору, в классическом STP порт, который ранее был заблокирован, пройдёт все стадии и переключится в режим передачи только через 50 секунд (MaxAge + 2x Forward Delay).


RSTP в своей работе использует обычные таймеры в следующих случаях:

    К порту подключается устройство, поддерживающее только классический STP. В этом случае порт коммутатора из режима работы RSTP переходит в режим STP. А значит проходит все стандартные для STP стадии: Blocking, Listening, Learning, Forwarding (в зависимости от того, с какими значениями корневого коммутатора и стоимости будет получен BPDU).

Деление на порты Edge и non-Edge характерно не только для RSTP, но и для STP. Но в случае STP – это вендорная доработка протокола, нежели требования стандарта.

С настройкой порта в режиме Edge нужно быть аккуратными.

Давайте посмотрим на поведение коммутатора Cisco с портом в режиме portfast (Edge). Порт сразу переходит в режим передачи. Но он продолжает участвовать в передаче BPDU и главное продолжает слушать сеть на наличие BPDU от других устройств, на случай если по ошибке к нему подключили другой коммутатор. Если вдруг приходит BPDU, порт теряет свое состояние portfast и проходит стандартные фазы RSTP. Так в чём же может быть проблема?

Если сеть многовендорная, причём часть оборудования вообще не поддерживает STP ни в каком виде, всё будет плохо?

Это вопрос не совсем связан с работой RSTP, но всё же я решил его включить. Как это ни странно, подобные вопросы периодически возникают у наших заказчиков. Поэтому есть смысл на нём остановиться.

Если коммутатор не поддерживает STP ни в каком виде, что же он будет делать с BPDU пакетами? Ответ прост – передавать такие пакеты через все порты. В качестве MAC адреса назначения BPDU пакета STP и RSTP устанавливают адрес 0180.C200.0000, который является multicast адресом. Такой BPDU пакет передаётся в рамках VLAN 1.

Протокол MST данные обо всех топологиях упаковывает в один BPDU (кстати, именно поэтому максимальное количество инстансов для MST — 64). В качестве адреса назначения используется стандартный MAC-адрес 0180.C200.0000.

Протоколы PVST+ и PVRST+ в своей работе используют два типа BPDU:

  • IEEE-formatted BPDU для совместимости с другими версиями STP, содержит данные топологии STP для VLAN 1. В качестве адреса назначения используется стандартный MAC-адрес 0180.C200.0000.
  • PVST+ BPDU, которые содержат данные топологии STP для разных VLANов. В качестве адреса назначения используется MAC-адрес 0100.0CCC.CCCD.

Ещё один занятный момент связан с тем, что даже если мы исключим VLAN 1 из транка между коммутаторами, BPDU для первого VLAN всё равно будут передаваться.

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


Нужен ли STP/RSTP/MST/… в сети, если там нет петель?

Безусловно. Если петли нет сейчас, не факт, что она не появится в будущем. Например, из-за простой человеческой ошибки, когда один access-порт коммутатора подключается к другому access-порту того же устройства.

Данный FAQ не претендует на полноту. Он носит скорее ознакомительный характер и задаёт некий вектор дальнейших изысканий по тому или иному вопросу, связанному с работой современных протоколов семейства STP.

Ethernet легко подвержен бродкаст-штормам, когда в сети возникают петли.

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

STP как раз дает возможность использовать резервирование, но избежать петель.

Juniper поддерживает данные вариации STP: STP, RSTP(используется по дефолту), MSTP, VSTP.

Итого зачем вообще нужен STP:

- Предотвращает бродкаст штормы - Обеспечивает резервирование дополнительными линками, без петель - Позволяет подключать к сети устройства, не поддерживающие STP (используя edge ports)

Корень дерева (root tree | root bridge) - это свитч, который выбирается алгоритмом STP на основании Bridge ID (Bridge Priority [0 - 65535] + MAC-addr свитча). Default priority = 32 768. В приоритете коммутатор с наименьшим Bridge ID. В дальнейшем он используется для рассчета наилучшего пути от bridge до root bridge.

Фреймы ходят по сети к получателю - leaf (ПК или любой другой не транзитный хост) - вдоль ветвей (branches).

Tree branch (ветвь) - сегмент сети или линк между бриджами.

Designated bridges - свитчи, которые передают фреймы по STP-дереву.

STP создает единственный возможный путь между root и leaf. Альтернативные пути переводятся в standby режим.

Роли портов (RSTP)

  • Root port - ближайший к root bridge. Это единственный порт, который получает фреймы от root bridge и пересылает их на него. Root bridge от себя отправляет BPDU с cost = 0. свитч, получивший BPDU - добавляет cost интерфейса, с которого пришел BPDU. И так далее. В случае, когда cost равнозначны с двух интерфейсов - будет выбран с наименьшим номером (ge-0/0/0, в не ge-0/0/10).
  • Designated port - порт, передающий трафик от root bridge к leaf. Designated bridge имеет один designated порт для каждого LAN. Root bridge передает фреймы во все designated порты. Также определяется по наименьшей cost. На root bridge все порты designated. На Leaf только один designated, иначе петля.
  • Alternate port - альтернатиный порт к root bridge. Он не является частью активного spanning tree, но когда root port накрывается (если падает линк или переходит в состояние отбрасывания пакетов), то alternate port сразу принимает на себя его роль. Отсутствует в обычном STP, за счет чего STP отстает по времени сходимости.
  • Backup port - резервный для desidnated порта. Работает аналогично alternate port.
  • Disabled port - порт, не принимает участия в активном spanning tree.
  • Edge port - порт в сторону хоста, не поддерживаюшего STP (ПК, сервер, роутеры, тупиковые хабы). Т.к. предполагается, что хосты не способны образовать петлю => edge port сразу переходит в состояние передачи фреймов. Можно назначить edge порт, а также STP может сам распознать edge порт (через отсутствие связи с конечными станциями).
  • root
  • designated
  • non-designated
  • disabled

Состояния портов (RSTP)

  • Discarding - отбрасывает все BPDU, все data-фреймы и не изучает mac-адреса. [в STP аналогичен по функциям: blocking, disabled, learning]
  • Learning - изучает маки, и строит таблицу коммутации и пересылает BPDU
  • Forwarding - порт пересылает и фильтрует фреймы > становится частью активного spanning tree. Также есть обмен BPDU.
  • blocking - ничего не шлет, но слушает BPDU
  • listening - начинает отправлять BPDU, но пока не фреймы
  • learning
  • forwarding
  • disabled - admin down. ничего не пересылает.

BPDU (bridge protocol data units)

Когда отработал STA (spanning tree algorithm), всем портам назначены роли и состояния, идентифицированы root и designated bridges, требуется механизм для поддержания данной топологии в актуальном состоянии. Используем BPDU.

Root bridge отправляет BPDU каждые 2 сек (дефолтный hello time interval RSTP) на мультикаст-адрес: 01:80:c2:00:00:00. Когда на порт приходит BPDU, он сравнивает данные, с полученными ранее, и на основании сравнения:

- Если данные BPDU совпадают с существующей записью в таблице MAC-адресов, порт сбрасывает таймер max age на 0 и пересылает новый BPDU с текущей активной информацией о топологии на следующий порт в spanning tree. - Если топология в BPDU была изменена, обновляется таблица MAC-адресов, max age устанавливается в 0, и новый BPDU пересылается с текущей активной информацией о топологии на следующий порт в spanning tree. - Когда порт не получает BPDU в течение 3 * hello (3*2 = 6 сек), он реагирует одним из двух способов. -Если bridge является root port: происходит полное перестроение spanning tree. -Если bridge является любым некорневым мостом: RSTP обнаруживает, что подключенный хост не умеет отправлять BPDU, и назначает этот порт в edge port.

STP генерирует свои BPDUs. Сетевуха на хосте (ПК, сервер, . ) тоже генерирует свои BPDUs. Эти BPDU хостов могут быть обработаны STP свитча и привести к проблемам на сети. Поэтому лучше включать BPDU Protection на edge ports.

  • configuration BPDUs
  • topology change notification (TCN) BPDUs
  • topology change acknowledgment (TCA) BPDUs

Root Bridge Fails

Когда link на root port падает, в BPDU добавляется флаг, topology change notification (TCN).

Когда этот BPDU доходит до следующего порта в VLAN, таблица MAC-адресов сбрасывается, и BPDU едет на следующий bridge. В итоге, все порты во VLAN обнулили свои таблицы MAC. После этого RSTP назначает новый root port.

Если root port или designated port падают - alternate или backup port берут на себя их роль после обмена BDPU (proposal-agreement handshake).

Если локальный порт становится root или designated, то он согласовывает быстрое изменение тем же proposal-agreement handshake с ближайшим свитчем.

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

Включенный ARP (address resolution protocol) заставляет коммутатор активно отправлять ARP-запросы на IP-адреса в кэше ARP.

Включение ARP в STP наиболее полезно для избегания чрезмерного флуда в L2.

Модификации STP

STP работает на основании "создания" bridge (switch).

Root bridge (switch) - в самом верху.

Ethernet от root switch подсоединяет другие свитчи в Local Area Network (LAN).

В STP и RSTP инстансах свитчам присваиваются extended system-id.

При изменении топологии, bridge извещает об этом root bridge, который требует от остальных почистить записи текущей топологии.

В построенном дереве только root bridge генерирует BPDU.

Дефолтные тайминги 50 sec до перехода в состояние forwarding.

Нахождение порта в состояниях:

  • blocking (20 sec)
  • listening (15 sec)
  • learning (15 sec)
  • forwarding
  • Hello (2 sec)
  • Max Age (20 sec)
  • Forward delay timer (15 sec)
  • Работает с 802.1D 1998 bridges
  • STP обратносовместим с RSTP, можно включать STP на 802.1D 1998 bridges
  • Годится для устаревших сетей, где не требуется быстрая сходимость.
  • STP и RSTP ограничены одним инстансом для одного интерфейса. Используется set rstp interface для включения интерфейса в RSTP инстанс.
  • STP медленее RSTP
  • Не разделяет вланы. Создает spanning tree без учетов вланов и возможности постоения топологии для каждого влана. (в MSTP решена эта проблема)
  • Не обеспечивает быструю сходимость. STP использует тайминги, RSTP использует handshake механизм.
  • В IEEE 802.1D STP не используются edge ports.

На MX (c 14.1R1): - Без включения traceoptions работает логирование состояний и ролей интерфейсов STP. - Сбор информации что стриггерило изменения в STP (роль или статус).

На SRX: Поддерживается начиная с 15.1X49-D70 на некоторых девайсах.

На EX: По дефолту используется RSTP. Если работаем с Junos, поддерживающем Enhanced Layer 2 Software (ELS) - можно указать чтобы STP использовался принудительно (через указание force-version в конфиге).

Config

1. удаляем RSTP глобально или выключаем на конкретных интерфейсах:

2. включаем STP глобально или для конкретных интерфейсов:

3. для более быстрого изучения маков - включаем Address Resolution Protocol (ARP) [при использовании irb | rvi]

RSTP (Rapid STP)

Отличие в скорости реакции на изменение топологии. При изменении топологии, свитч немедленно чистит записи о текущей топологии. Для p2p и edge-портов - быстрый переход к forwarding state.

+ появились alternate и backup роли портов. Что дает возможность заранее подготовиться к факапу, а не принимать решение во время факапа.

RSTP: сходимость 6 сек (3 * hello BPDU interval)

В построенной топологии (дереве) все свитчи генерируют BPDU каждые 2 sec.

В RSTP добавились port-mode:

  • shared (half duplex) - p2p между свитчами, проходит обычный цикл во всеми таймингами blocking > listening > learning > forwarding.
  • p2p (full duplex) - тут свитч сам запрашивает у соседа-свитча на p2p линке - давай дружить (тут вся инфа о нашем bridge), я вижу root bridge вот так. Сосед принимает решение, сравнивая полученные данные с уже имеющимися. Для обмена данными используются proposal BPDU (запрос локального bridge) и agreement BPDU (ответ соседа). Этот метод обмена данными обходит стороной дефолтные тайминг STP и является основням ускорителем RSTP.
  • egde - для конечных устройств. Моментально становятся в состояние - forwarding.

По дефолту именно RSTP используется в Juniper.

  • Быстрее в сходимости при факапах.
  • Voice и video лучше использовать с rstp.
  • RSTP обратносовместим с STP, причем на свитче не обязательно использовать именно RSTP.
  • Поддерживается больше портов, чем в MSTP или VSTP
  • Поддерживает edge ports на MX и ACX роутерах
  • STP и RSTP ограничены одним инстансом для одного интерфейса. Используется set rstp interface для включения интерфейса в RSTP инстанс.
  • Не работает с 802.1D 1998 bridges
  • Не разделяет вланы. Создает spanning tree без учетов вланов и возможности постоения топологии для каждого влана. (в MSTP решена эта проблема)

Config

[глобально, внутри routing instance, внутри logical system]

  • Добавляем интерфейсы [все последующие фичи применимы и к 'interface all']
  • Назначаем приоритет интерфейса для определения root port. [default priority = 128, значение должно быть кратно 16 (16,32,112 и т.п.)]
  • Назначаем тип интерфейса. [defaults: full-duplex = p2p mode, half-duplex = shared]
  • Задаем bridge-priority (switch priority). [default priority = 32 768, значение должно быть кратно 4096]
  • Max время ожидания hello-BPDU . [defaults: 20 sec]
  • Интервал пересылки configuration-BPDU от root bridge. [defaults: 2 sec]

Опционально:

  • Для поддержания устаревших bridge включаем чистый stp. [чтобы откатить - удаляем force-version из конфига и clear spanning-tree protocol-migration]
  • Добавление provider-bridge в rstp. [dst mac-address BPDU выставляется = 01:80:c2:00:00:08 и он не блочится RE, на которую прилетел]
  • Задать extended system ID. [это ID STP|RSTP инстанса]
  • interface cost (вместо определения cost по interface speed - задаем cost вручную)
  • Настроить интерфейс как edge - не ожидает BPDU от хоста. Если прилетела BPDU, порт становится non-edge port и переводится в forwarding state. [не работает для чистого STP]
  • bridge port пребывает в learning и listening 15 sec, до перехода в forwarding state. Можно этот интервал изменить. [defaults: 15 sec]

NSB - non stop bridging ptorotoсol синхронизирует RSTP на обоих RE, чтобы избежать перерыва сервиса при RE switchover.

  • Включаем NSB, если на девайсе две RE [кстати, работает для STP, RSTP, MSTP]:

MSTP (Multiple STP)

Является расширением RSTP. На одну физическую топологию накладывается несколько STP-инстансов (STI). Одна STI может состоять из одного или нескольких вланов.

В отличие от STP и RSTP, для одного влана порт будет в состоянии forwarding, для другого - blocked.

Если требуется разбалансировать нагрузку или просто часть вланов пустить по одному дереву, а остальные по-другому, то MSTP для этого подойдет лучше всего. Будет создано столько STP, сколько топологий мы хотим использовать.

Быстрая сходимость сети унаследована от RSTP.

MSTI (MST instance) - это по сути набор вланов.

MSTP region - это группка свитчей с одинаковыми MSTI. Также у свитчей одного региона должны быть одинаковыми:

  • region name - задается админом - это просто зазвание
  • revision level - задается админом
  • mapping table

MSTP region поддерживает до 64 MSTI, каждый MSTI может содержать до 4094 vlans.

Когда мы создаем регион, MSTP автоматом создает internal STI (IST instance 0), в котором определяется Regional Root Bridge и добавляются все вланы, которые не определены в другие MSTI.

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

IST (MST instance 0) - по умолчанию существует в каждом MSTP region.

Кроме региона, MSTP создает CIST: Common and Internal Spanning Tree, которое управляет всеми MSTP регионами, а также отдельными устройствами, на которых запущен RSTP/STP [MSTP определяет их как отдельные части дерева].

CIST рассматривает MSTP регион как виртуальный bridge, несмотря на то сколько внутри региона девайсов, и позволяет коннектиться разным регионам внутри MSTP.

Благодаря CIST - в MSTP может работать с STP и RSTP.

Также есть Common Apanning Tree, который собирает IST (MSTI) и CIST вместе.

Ещё немного обобщив терминологию:

  • IST - дерево внутри региона
  • CIST - дерево между регионами
  • CST - деревья внутри региона + деревья между регионами

О плюсах и минусах MSTP:

  • Работает с несколькими вланами
  • Поддерживает несколько инстансов для одного физ интерфейса
  • Поддерживает edge ports на MX и ACX роутерах
  • Не со всеми протоколами совместим
  • Поддерживает ограниченное кол-во портов. MSTP регион поддерживает до 64 MSTIs (а в каждом инстансе 1-4094 вланов)
  • MSTP больше нагружает CPU.
  • Не так быстр как RSTP

Config

Для QFX5100 и других, которые не поддерживают interface all включаем mstp для диапазона интерфейсов:

Для конкретного интерфейса:

Для протокола (аналогично RSTP):

msti-id уникальна в рамках региона. То есть в другом регионе можно использовать тот же msti-id. CIST (common instance ST) msti-id = 0.

VSTP (VLAN STP)

Для PVST для каждого влана рассчитывается своя топология - при этом будут затрачены значительные ресурсы свитча (CPU, память) и по мере роста вланов - их будет тратиться всё больше и больше.

  • Работает в разными вланами. Включаем VSTP внутри вланов, для которых требуется работа STP.
  • VSTP и RSTP могут быть включены на свитче одновременно.
  • Совместим с Cisco PVST+ и Rapid-PVST+ (но без поддержки ISL trunks)
  • Можно добавить интерфейс как в global level, так и в VLAN level. Если добавить global, то VSTP будет включен во всех вланах этого интерфейса. Если будет добавлен global и VLAN level, то конфиг VLAN level будет приоритетнее и перезапишеи global level.
  • Поддерживает edge ports на MX и ACX роутерах
  • 1 инстанс на один влан
  • Использует ограниченное кол-во портов
  • VSTP может работать максимум с 509 вланами. Однако, лучше использовать не более 190.
  • Для одного влана нельзя включить и VSTP и RSTP.
  • Если на свитче одновременно включаем VSTP + RSTP и на свитче более 253 вланов, то для 1-253 влана будет работаеть VSTP, для остальных RSTP.
  • Не работает на SRX. Также имеет разные спецификации по кол-ву вланов для разныех моделей свитчей. Лучше смотреть на сайте juniper.

- Рекомендуется включать VSTP во всех вланах. - При использовании: set protocol vstp vlan all, vlan-id 1 туда не включен, если он нужен, то добавляем отдельно: set protocol vstp vlan 1 - Максимальное кол-во вланов, используемых в VSTP - опредлеляется типов свитча и его OS. - Можно использовать VSTP вместе с cisco-свитчами PVST+ и Rapid-PVST+

Читайте также: