Edge port что это

Обновлено: 30.06.2024

Протокол связующего дерева 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 edged-port (аналог portfast у Cisco) через него продолжают передаваться STP BPDU.

Неочевидно это потому, что edge port предполагает подключение в него конечных хостов, а также то, что порт не будет получать STP BPDU и потому участвовать в построении топологии STP.

Это действительно так - не нужно каждый раз флудить по домену STP TC и заставлять ишачить все коммутаторы новую топологию, если дело только в том, что у кого-то компьютер перезагрузился. Компьютер опять же не будет генерировать STP BPDU, кроме случая злого умысла

Что если клиент закоротит на коммутаторе два порта? Допустим, случайно это сделать трудновато, но он ведь может и по злоботе душевной, затаив обиду на инженера провайдера, уволокшего на выпускном его девушку у него из под носа.

Для случая если петля окажется на одном порту у нас есть loopback-detect - он посылает в порт тестовый пакет и, если получит его обратно в этот же порт, то блокирует его (или уведомляет NMS). А вот для разных портов непонятно - Storm-control позволит ограничить широковещательный трафик, но CPU по-прежнему может быть под ударом.

И вот тут кажется совершенно логичным, чтобы Edge-port продолжал слать BPDU - если тот ревнивец закоротит два клиентских порта, то один из них получит BPDU и заблокируется - удобно.

Интересно, что в документации об этом нигде не говорится и пришлось проверить догадку на симуляторе ENSP.

Однако есть и ещё одна тонкость в работе Edged-port (portfast).
Вы можете надеяться, что за ним находится компьютер, но реальность такова, что там может оказаться что угодно, в том числе коммутатор. Просто так игнорировать BPDU коммутатор не имеет морального права.
На полученные BPDU может быть две реакции:
1) Заблокировать этот порт от греха подальше (если включет BPDU protection (он же BPDU Guard).
2) Перевести порт в режим non-edge и пересчитать топологию - это действие по умолчанию.
То есть мы заведомо считаем, что хакеров там нет, а новое подключение легитимное.

Portfast на циске работает аналогично, как меня заверила Наташа Самойленко.

В настоящее время мы наблюдаем в наших сетях все больше и больше маршрутизации. Протоколы маршрутизации, такие как OSPF и EIGRP, намного быстрее адаптируются к изменениям в сети, чем spanning-tree . Чтобы не отставать от скорости этих протоколов маршрутизации, была создана еще одна разновидность связующего дерева. ( rapid spanning tree ) быстрое связующее дерево.

Rapid spanning tree - это не революция spanning tree, а его эволюция. Некоторые вещи были изменены для того, что бы ускорить процесс, но с точки зрения конфигурации - это то же самое, что классический spanning tree . Я называю оригинальное spanning tree " классическим spanning tree ".

АЗЫ RAPID SPANNING TREE

Помните состояние портов spanning tree? У нас есть блокирующее, прослушивающее, обучающее и пересылающее состояние порта. Это первое различие между spanning tree и rapid spanning tree. Rapid spanning tree имеет только три состояния портов:

Вы уже знакомы с состоянием порта в режиме обучения и пересылки, но отбрасывание - это новое состояние порта. В основном он объединяет в себе блокировку и прослушивание состояния порта.

Вот хороший обзор с различными состояниями портов для spanning tree и rapid spanning tree. В таблице отображено состояние портов: активны ли они и узнают ли они MAC-адреса или нет.

Помните ли вы все остальные роли портов, которые есть у spanning tree? Давайте сделаем небольшой обзор, и будет показано отличие от rapid spanning tree.

Коммутатор с лучшим ID моста (priority + MAC -адрес) становится корневым мостом. Другие коммутаторы ( non-root ) должны найти кратчайший путь стоимости к корневому мосту. Это корневой порт. Здесь нет ничего нового, все это работает аналогично и в rapid spanning tree.

Коммутатор C получает лучшие BPDU на своем интерфейсе fa0/16 от коммутатора B , и таким образом он будет заблокирован. Это альтернативный порт, и это все еще то же самое, что и для rapid spanning tree.

Вот вам новый порт, взгляните на интерфейс fa0/17 коммутатора B . Он называется резервным портом и является новым для rapid spanning tree. Однако вы вряд ли увидите этот порт в производственной сети. Между коммутатором B и коммутатором C был добавлен хаб. Обычно (без промежуточного концентратора) оба fa0/16 и fa0/17 будут назначены портами. Из-за хаба интерфейсы fa0/16 и fa0/17 коммутатора B теперь находятся в одном домене коллизий. Fa0/16 будет выбран в качестве назначенного порта, а fa0/17 станет резервным портом для интерфейса fa0/16. Причина, по которой коммутатор B видит интерфейс fa0/17 в качестве резервного порта, заключается в том, что он получает свои собственные BPDU на интерфейсах fa0/16 и fa0/17 и понимает, что у него есть два соединения с одним и тем же сегментом. Если вы удалите хаб, то fa0/16 и fa0/17 будут назначены портами точно так же, как classic spanning tree.

BPDU отличается для rapid spanning tree. В classic spanning tree поле flags использовало только два бита:

  • Topology change .;
  • Topology change acknowledgment .;

Теперь используются все биты поля flags. Роль порта, который создает BPDU, будет добавлена с помощью поля port role, оно имеет следующие параметры:

  • Unknown ;
  • Alternate / Backup port ;
  • Root port ;
  • Designated port .

Эта BPDU называется BPDUv2. Коммутаторы, работающие со старой версией spanning tree, проигнорируют эту новую версию BPDU. Если вам интересно . rapid spanning tree и старое spanning tree совместимы! Rapid spanning tree способно работать с коммутаторами, работающими под управлением более старой версии spanning tree.

ЧТО ПОМЕНЯЛОСЬ

BPDU теперь отправляются каждый hello time. Только корневой мост генерирует BPDU в classic spanning tree, и они ретранслировались non-root, если они получали его на свой корневой порт. Rapid spanning tree работает по-разному. все коммутаторы генерируют BPDU каждые две секунды (hello time). Это hello timeпо умолчанию, но вы можете его изменить.

classic spanning tree использует максимального время жизни (20 секунд) для BPDU, прежде чем они будут отброшены. Rapid spanning работает по-другому! BPDU теперь используются в качестве механизма поддержания активности, аналогичного тому, что используют протоколы маршрутизации, такие как OSPF или EIGRP. Если коммутатор пропускает три BPDU от соседнего коммутатора, он будет считать, что подключение к этому коммутатору было потеряно, и он немедленно удалит все MAC-адреса.

Rapid spanning tree будет принимать низшие BPDU. Classic spanning tree игнорирует их. Скорость перехода (время сходимости) является наиболее важной характеристикой rapid spanning tree. Classic spanning tree должно было пройти через состояние прослушивания и обучения, прежде чем оно переведет интерфейс в forwarding состояние, это занимает 30 секунд (таймер по умолчанию). Classic spanning было основано на таймерах.

Rapid spanning не использует таймеры, чтобы решить, может ли интерфейс перейти в forwarding состояние или нет. Для этого он будет использовать переговорный (negotiation) механизм. Чуть позже я покажу вам, как это работает.

Помните ли вы понятие portfast? Если мы включим portfast во время запуска classic spanning tree, оно пропустит состояние прослушивания и обучения и сразу же переведет интерфейс в forwarding состояние. Помимо перевода интерфейса в forwarding состояние, он также не будет генерировать изменения топологии, когда интерфейс переходит в состояние UP или DOWN. Мы все еще используем portfast для rapid spanning tree, но теперь он называется пограничным портом (edge port).

Rapid spanning tree может только очень быстро переводить интерфейсы в forwarding состояние на edge ports (portfast) или интерфейсы типа point-to-point. Он будет смотреть на link type, и есть только два ink types:

  • Point-to-point (full duplex) ;
  • Shared (half duplex) .

Обычно мы используем коммутаторы, и все наши интерфейсы настроены как full duplex, rapid spanning tree видит эти интерфейсы как point-to-point. Если мы введем концентратор в нашу сеть, то у нас будет half duplex, который рассматривается как shared interface к rapid spanning-tree.

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+

Все, о чем мы говорили ранее в этой статье, относится к первой реализация протокола STP, которая была разработана в 1985 году Радией Перлман (ее стихотворение использовано в качестве эпиграфа). В 1990 году эта реализации была включена в стандарт IEEE 802.1D. Тогда время текло медленнее, и перестройка топологии STP, занимающая 30-50 секунд (. ), всех устраивала. Но времена меняются, и через десять лет, в 2001 году, IEEE представляет новый стандарт RSTP (он же 802.1w, он же Rapid Spanning Tree Protocol, он же Быстрый STP).

Чтобы структурировать предыдущий материал и посмотреть различия между обычным STP (802.1d) и RSTP (802.1w), соберем таблицу с основными фактами:

В уже сложившейся топологии только корневой свич шлет BPDU,

Все свичи шлют BPDU в соответствии с hello-таймером (2 секунды по умолчанию)

discarding (отбрасывание, заменяет disabled, blocking и listening)

root (корневой), участвует в пересылке данных, ведет к корневому свичу

designated (назначенный), тоже работает, ведет от корневого свича

non-designated (неназначенный), не участвует в пересылке данных

alternate (дополнительный), не участвует в пересылке данных

Использует процесс Proposal and Agreement (предложение и соглашение)

Свич, обнаруживший изменение топологии, извещает корневой свич.

Тот, в свою очередь, требует от всех остальных очистить их записи

Обнаружение изменений в топологии влечет немедленную очистку записей

Если некорневой свич не получает hello-пакеты от корневого в течение Max Age,

Начинает действовать, если не получает BPDU в течение 3 hello-интервалов

Последовательное прохождение порта через состояния:

Как мы видим, в RSTP остались такие роли портов, как корневой и назначенный, а роль заблокированного разделили на две новых роли: Alternate и Backup. Alternate — это резервный корневой порт, а backup — резервный назначенный порт. Как раз в этой концепции резервных портов и кроется одна из причин быстрого переключения в случае отказа. Это меняет поведение системы в целом: вместо реактивной (которая начинает искать решение проблемы только после того, как она случилась) система становится проактивной, заранее просчитывающей “пути отхода” еще до появления проблемы. Смысл простой: для того, чтобы в случае отказа основного переключится на резервный линк, RSTP не нужно заново просчитывать топологию, он просто переключится на запасной, заранее просчитанный.

Ранее, для того, чтобы убедиться, что порт может участвовать в передаче данных, требовались таймеры, т.е. свич пассивно ждал в течение означенного времени, слушая BPDU. Ключевой фичей RSTP стало введение концепции типов портов, основанных на режиме работы линка — full duplex или half duplex (типы портов p2p или shared, соответственно), а также понятия пограничный порт (тип edge p2p), для конечных устройств. Пограничные порты назначаются, как и раньше, командой spanning-tree portfast, и с ними все понятно — при включении провода сразу переходим к forwarding-состоянию и работаем. Shared-порты работают по старой схеме с прохождением через состояния BLK — LIS — LRN — FWD. А вот на p2p-портах RSTP использует процесс предложения и соглашения (proposal and agreement). Не вдаваясь в подробности, его можно описать так: свич справедливо считает, что если линк работает в режиме полного дуплекса, и он не обозначен, как пограничный, значит, на нем только два устройства- он и другой свич. Вместо того, чтобы ждать входящих BPDU, он сам пытается связаться со свичом на том конце провода с помощью специальных proposal BPDU, в которых, конечно, есть информация о стоимости маршрута к корневому свичу. Второй свич сравнивает полученную информацию со своей текущей, и принимает решение, о чем извещает первый свич посредством agreement BPDU. Так как весь этот процесс теперь не привязан к таймерам, происходит он очень быстро, только подключили новый свич и он практически сразу вписался в общую топологию и приступил к работе (можете сами оценить скорость переключения в сравнении с обычным STP на видео). В Cisco-мире RSTP называется PVRST (Per-Vlan Rapid Spanning Tree).

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