Принцип работы протокола STP / Habr
Причина создания STP
Причиной создания протокола STP стало возникновение петель на коммутаторах. Что такое петля? Определение петли звучит так:
Петля коммутации (Bridging loop, Switching loop) — состояние в сети, при котором происходит бесконечная пересылка фреймов между коммутаторами, подключенными в один и тот же сегмент сети.
Из определения становится ясно, что возникновение петли создает большие проблемы — ведет к перегрузке свитчей и неработоспособности данного сегмента сети. Как возникает петля? На картинке ниже приведена топология, при которой будет возникать петля при отсутствии каких-либо защитных механизмов:
Возникновение петли при следующих условиях:
1. Какой-либо из хостов посылает бродкаст фрейм:
- К примеру, VPC5 отправляет пакет с бродкастовым адресом назначения.
- Switch2 приняв данный пакет, должен отправить его через все порты, кроме порта, с которого пришел данный пакет. Пакет отправится через порты Gi0/0, Gi1/0.
- Коммутаторы Switch3, Switch4 приняв данный пакет также должны будут его разослать пакет. Таким образом Switch3, получивший пакет от Switch2 отправит его Switch4, а Switch4 отправит его Switch3.
- Далее, Switch3 получив пакет от Switch4, отправит его Switch2, а Switch4 получив пакет от Switch3, отправит его также Switch2. Тем самым, мы приходим к шагу 1) и она будет продолжаться бесконечно. Также все усугубляется тем, что на 4) шаге Switch2 будет иметь уже два экземляра фрейма, так как получит их и от Switch3, и от Switch4.
Шаги 1) — 4) будут повторяться бесконечно и на коммутоторах это происходит в долю секунды. Также образование петли приводит к тому, что постоянно будет меняться таблица мак-адресов на коммутаторах и мак-адрес отправителя VPC5 будет постоянно приписываться то к интерфейсу Gi0/0, то Gi1/0 или же Gi0/2( если в этот момент VPC5 будет отправлять другие пакеты). Такой цикл приведет к некорректной работе сети и всех коммутаторов. А отправка бродкастовых пакетов для хостов — это обычное дело, в качетсве примера протокол ARP. 2. Также петля может образоваться и без отправки бродкаст фрейма.
- К примеру, VPC5 отправляет фрейм с юникастовым мак-адресом назначения.
- Возможна ситуация, что мак-адрес назначения отсутствует в таблице мак-адресов коммутаторов. В данном случае, коммутатор будет пересылать пакет через все порты, кроме порта с которого получил данный фрейм. И получаем такую же ситуацию, как и с бродкаст фреймом.
- Ниже мы будем рассматривать протокол STP на коммутаторах Cisco. На них используется STP отдельно для каждого vlan-а, протокол PVST+. У нас всего один vlan, поэтому смысл от этого не меняется.
Основы STP
Принцип работы данного протокола построен на том, что все избыточные каналы между коммутаторами логически блокируются и трафик через них не передается. Для построения топологии без избыточных каналов строится дерево (математический граф). Чтобы построить такое дерево вначале необходимо определить корень дерева, из которого и будет строиться граф. Поэтому первым шагом протокола STP является определение корневого коммутатора (Root Switch). Для определения Root Switch-a, коммутаторы обмениваются сообщениями BPDU. В общем, протокол STP использует два типа сообщений: BPDU — содержит информацию о коммутаторах и TCN — уведомляет о изменении топологии. Рассмотрим BPDU более детально. Про TCN более подробно поговорим ниже. При включении STP на коммутаторах, коммутаторы начинают рассылать BPDU сообщения. В данных сообщениях содержится следующая информация:
Фрейм BPDU имеет следующие поля:
- Идентификатор версии протокола STA (2 байта). Коммутаторы должны поддерживать одну и ту же версию протокола STA
- Версия протокола STP (1 байт)
- Тип BPDU (1 байт). Существует 2 типа BPDU — конфигурационный и уведомление о реконфигурации
- Флаги (1 байт)
- Идентификатор корневого коммутатора (8 байт)
- Стоимость маршрута до корневого свича (Root Path Cost)
- Идентификатор отправителя (Bridge ID) (8 байт)
- Идентификатор порта, из которого отправлен данный пакет (Port ID) (2 байта)
- Время жизни сообщения (2 байта). Измеряется в единицах по 0,5 с, служит для выявления устаревших сообщений
- Максимальное время жизни сообщения (2 байта). Если кадр BPDU имеет время жизни, превышающее максимальное, то кадр игнорируется коммутаторами
- Интервал hello (2 байт), интервал через который посылаются пакеты BPDU
- Задержка смены состояний (2 байта). Минимальное время перехода коммутатора в активное состояние
Основные поля, которые требуют особого внимания следующие:
- Идентификатор отправителя (Bridge ID)
- Идентификатор корневого свича (Root Bridge ID)
- Стоимость маршрута до корневого свича (Root Path Cost)
Для определения корневого коммутатора используется индентификатор коммутатора — Bridge ID. Bridge ID это число длиной 8 байт, которое состоит из Bridge Priority (приоритет, от 0 до 65535, по умолчанию 32768) и MAC-адреса устройства. Корневым коммутатором выбирается коммутатор с самым низким приоритетом, если приоритеты равны, то сравниваются MAC-адреса (посимвольно, тот который меньше, тот побеждает).
Вот вывод информации о Bridge ID с коммутатора Switch2 из первой картинки. Priority — 32769 ( по умолчанию 32768 + Vlan Id), MAC-адреса — Address 5000.0001.0000:
Представим картину, коммутаторы только включились и теперь начинают строить топологию без петель. Как только коммутаторы загрузились, они приступают к рассылке BPDU, где информируют всех, что они являются корнем дерева. В BPDU в качестве Root Bridge ID, коммутаторы указывают собственный Bridge ID. Например, Switch2 отправляет BPDU коммутатору Switch4, а Switch4 отправляет к Switch2. BPDU от Switch2 к Switch4:
BPDU от Switch4 к Switch2:
Как видим из Root Identifier, оба коммутотара друг другу сообщают, что именно он является Root коммутатором.
Выбор корневого коммутатора
Пока топология STP не построена, обычный трафик не передается из-за специальных состояний портов, о которых будет сказано ниже. Итак, Switch4 получается BPDU от Switch2 и изучает данное сообщение. Switch4 смотрит в поле Root Bridge ID и видит, что там указан другой Root Bridge ID, чем в том сообщении, которое отправил сам Switch4. Он сравнивает Root Bridge ID в данном сообщении со своим Root Bridge ID и видит, что хоть Priority одинаковые, но MAC-адрес данного коммутатора (Switch2) лучше (меньше), чем у него. Поэтому Switch4 принимает Root Bridge ID от Switch2 и перестает отправлять свои BPDU, а только слушает BPDU от Switch2. Порт, на котором был получен наилучший BPDU становится Root Port-ом. Switch2 также получив BPDU от Switch4, проводит сравнение, но в этом случае поведение Switch2 не меняется, так как полученный BPDU содержит худший Root Bridge ID, чем у Switch2. Таким образом, между Switch2 и Switch4 был определен корневой коммутатор. По аналогичной схеме происходит выбор корневого коммутатора между Switch2 и Switch3. Порты Gi0/0 на Switch3 и Switch4 становятся Root Port — порт, который ведет к корневому коммутатору. Через данный порт коммутаторы Switch3 и Switch4 принимают BPDU от Root Bridge. Теперь разберемся, что произойдет с каналом между Switch3 и Switch4.
Блокирование избыточных каналов
После того, как выбран Root Bridge, Switch3 и Switch4 перестают отправлять BPDU через Root Port-ы, но BPDU, полученные от Root Bridge, они пересылают через все свои остальные активные порты, при этом изменив в данных BPDU только следующие поля:
- Идентификатор отправителя (Bridge ID) — заменяется на свой идентификатор.
- Идентификатор порта, из которого отправлен данный пакет (Port ID) — изменяется на идентификатор порта, с которого будет отправлен BPDU.
- Стоимость маршрута до корневого свича (Root Path Cost) — вычисляется стоимость маршрута относительно самого коммутатора.
Таким образом, Switch3 получает cледующий BPDU от Switch4:
А Switch4 от Switch3 получает такой BPDU:
После обмена такими BPDU, Switch3 и Switch4 понимают, что топология избыточна. Почему коммутаторы понимают, что топология избыточна? И Switch3, и Switch4 в своих BPDU сообщают об одном и том же Root Bridge. Это означает, что к Root Bridge, относительно Switch4, существует два пути — через Switch2 и Switch3, а это и есть та самая избыточность против которой мы боремся. Также и для Switch3 два пути — через Switch2 и Switch4. Чтоб избавиться от этой избыточности
Выбор на каком коммутатоторе заблокировать порт происходит по следующей схеме:
- Меньшего Root Path Cost.
- Меньшего Bridge ID.
- Меньшего Port ID.
В данной схеме Root Path Cost играет более важную роль, чем Bridge ID. Раньше я думал, что данный выбор происходит аналогично выбору Root коммутатора и был удивлен, что, например, в такой топологии будет блокироваться не порт на коммутаторе с самым плохим приоритетом:
Здесь как оказалось заблокируется порт Gi 0/1 на коммутаторе Sw2. В данном голосовании определяющим становится Root Path Cost. Вернемся к нашей топологии. Так как путь до Root Bridge одинаковый, то в данном выборе побеждает Switch3, так как его priority равны, сравниваются Bridge ID. У Switch3 — 50:00:00:02:00:00, у Switch4 — 50:00:00:03:00:00. У Switch3 MAC-адрес лушче (меньше). После того, как выбор сделан, Switch4 перестает переслать какие-либо пакеты через данный порт — Gi1/0, в том числе и BPDU, а только слушает BPDU от Switch3. Данное состояние порта в STP называется Blocking(BLK). Порт Gi1/0 на Switch3 работает в штатном режиме и пересылает различные пакеты при необходимости, но Switch4 их сразу отбрасывает, слушая только BPDU. Таким образом, на данном примере мы построили топологию без избыточных каналов. Единственный избыточный канал между Switch3 и Switch4 был заблокирован при помощи перевода порта Gi1/0 на Switch4 в специальное состояние блокирования — BLK. Теперь более детально разберем механизмы STP.
Состояния портов
Мы говорили выше, что, например, порт Gi1/0 на Switch4 переходит в специальное состояние блокирования — Blocking. В STP существуют следующие состояния портов:
Listening — прослушивание. Как мы говорили выше, что до того, пока еще не выбран корневой коммутатор, порты находятся в специальном состоянии, где передаются только BPDU, фреймы с данными не передаются и не принимаются в этом случае. Состояние Listening не переходит в следующее даже, если Root Bridge определен. Данное состояние порта длится в течении Forward delay timer, который, по умолчанию, равен 15. Почему всегда надо ждать 15 секунд? Это вызвано осторожностью протокола STP, чтоб случайно не был выбран некорректный Root Bridge. По истечению данного периода, порт переходит в следующее состояние — Learning.
Learning — обучение. В данном состояние порт слушает и отправляет BPDU, но информацию с данными не отправляет. Отличие данного состояния от Listening в том, что фреймы с данными, который приходят на порт изучаются и информация о MAC-адресах заносится в таблицу MAC-адресов коммутатора. Переход в следующее состояние также занимает Forward delay timer.
Forwarding — пересылка. Это обычное состояние порта, в котором отправляются и пакеты BPDU, и фреймы с обычными данными. Таким образом, если мы пройдемся по схеме, когда коммутаторы только загрузились, то получается следующая схема:
- Коммутатор переводит все свои подключенные порты в состояние Listening и начинает отправлять BPDU, где объявляет себя корневым коммутатором. В этот период времени, либо коммутатор остается корневым, если не получил лучший BPDU, либо выбирает корневой коммутатор. Это длится 15 секунд.
- После переходит в состояние Learning и изучает MAC-адреса. 15 секунд.
- Определяет какие порты перевести в состояние Forwarding, а какие в Blocking.
Роли портов
Помимо состояний портов, также в STP нужны определить портам их роли. Это делается для того, чтоб на каком порте должен ожидаться BPDU от корневого коммутатора, а через какие порты передавать копии BPDU, полученных от корневого коммутатора. Роли портов следующие:
Root Port — корневой порт коммутатора. При выборе корневого коммутатора также и определяется корневой порт. Это порт через который подключен корневой коммутатор. Например, в нашей топологии порты Gi0/0 на Switch3 и Switch4 являются корневыми портами. Через данные порты Switch3 и Switch4 не отправляют BPDU, а только слушают их от Root Bridge. Возникает вопрос — как выбирается корневой порт? Почему не выбран порт Gi1/0? Через него ведь тоже можно иметь связь с коммутатором? Для определения корневого порта в STP используется метрика, которая указывает в поле BPDU — Root Path Cost (стоимость маршрута до корневого свича). Данная стоимость определяется по скорости канала.
Switch2 в своих BPDU в поле Root Path Cost ставит 0, так как сам является Root Bridge. А вот, когда Switch3, когда отправляет BPDU к Switch4, то изменяет данное поле. Он ставит Root Path Cost равным стоимости канала между собой и Switch2. На картинке BPDU от Switch3 и Switch4 можно увидеть, что в данном поле Root Path Cost равен 4, так как канал между Switch2 и Switch3 равен 1 Gbps. Если количество коммутаторов будет больше, то каждый следующий коммутатор будет суммировать стоимость Root Path Cost. Таблица Root Path Cost.
Designated Port — назначенный порт сегмента. Для каждого сегмента сети должен быть порт, который отвечает за подключение данного сегмента к сети. Условно говоря, под сегментом сети может подразумеваться кабель, который осуществляет подключение данного сегмента. Например, порты Gi0/2 на Switch2, Switch4 подключают отдельные сегменты сети, к которым ведет только данный кабель. Также, например, порты на Root Bridge не могут быть заблокированы и все являются назначенными портами сегмента. После данного пояснения можно дать более строгое определения для назначенных портов:
Designated Port (назначенный) — некорневой порт моста между сегментами сети, принимающий трафик из соответствующего сегмента. В каждом сегменте сети может быть только один назначенный порт. У корневого коммутатора все порты — назначенные.
Также важно заметить, что порт Gi1/0 на Switch3 также является назначенным, несмотря на то, что данный канал связи заблокированным на Switch4. Условно говоря, Switch3 не имеет информации о том, что на другом конце порт заблокирован.
Nondesignated Port — неназначенный порт сегмента. Non-designated Port (неназначенный) — порт, не являющийся корневым, или назначенным. Передача фреймов данных через такой порт запрещена. В нашем примере, порт Gi1/0 является неназначенным.
Disabled Port — порт который находится в выключенном состоянии.
Таймеры и сходимость протокола STP
После того, как STP завершил построение топологии без петель, остается вопрос — Как определять изменения в сети и как реагировать на них? Сообщения BPDU при помощи которых работает STP, рассылаются Root Bridge каждые 2 секунды, по умолчанию. Данный таймер называется Hello Timer. Остальные коммутаторы получив через свой root port данное сообщение пересылают его дальше через все назначенные порты. Выше сказано более подробно какие изменения происходят с BPDU при пересылки его коммутаторов. Если в течении времени, определенным таймером Max Age (по умолчанию — 20 секунд), коммутатор не получил ни одного BPDU от корневого коммутатора, то данное событие трактуется как потеря связи с Root Bridge. Для того, чтобы более корректно описать сходимость протокола необходимо изменить нашу топологию и поставить между коммутаторами хабы. Мы добавили хабы, чтоб при выходе из строя одного из коммутаторов или выхода из строя линка, другие коммутаторы не определяли это по падению линка, а использовали таймеры:
Перед тем, как начать также важно рассказать подробнее о другом типе сообщения STP — TCN. TCN рассылается коммутаторами в случае изменения топологии — как только на каком-либо коммутаторе изменилась топология, например, изменилось состояние интерфейса. TCN отправляется коммутатором только через Root Port. Как только корневой коммутатор получит TCN, он сразу меняет параметр времени хранения MAC-адресов в таблице с 300 секунд до 15 (для чего это делается будет сказано ниже) и в следующем BPDU, Root Switch проставляет флаг — TCA ( Topology Change Acknledgement ), который отправляется коммутатору отправившем TCN для уведовления о том, что TCN был получен. Как только TCN достигает Root Bridge, то он рассылает специальный BPDU, который содержится TCN флаг по всем остальным интерфейсам к другим коммутаторам. На картинке показана структура TCN:
TCN был включен в STP, чтоб некорневые коммутаторы могли уведовлять об изменении в сети. Обычными BPDU они этого делать не могут, так как некорневые коммутаторы не отправляют BPDU. Как можно заметить структура TCN не несет в себе никакой информации о том, что именно и где изменилось, а просто сообщает что где-то что-то изменилось. Теперь перейдем к рассмотрению вопроса о сходимости STP.
Посмотрим, что произойдет если мы отключим интерфейс Gi0/1 на Switch2 и посмотрим при помощи каких механизмов перестроится дерево STP. Switch3 перестанет получать BPDU от Switch2 и не будет получать BPDU от Switch4, так как на Switch4 данный порт заблокирован. У Switch3 уйдет 20 секунд ( Max Age Timer ), чтоб понять потерю связи с Root Bridge. До этого времени, Gi0/0 на Switch3 будет находится в состоянии Forwarding с ролью Root Port. Как только истечет Max Age Timer и Switch3 поймет потерю связи, он будет заново строить дерево STP и как это свойственно STP начнет считать себя Root Bridge. Он отправит новый BPDU, где укажет самого себя в качестве Root Bridge через все активные порты, в том числе и на Switch4. Но таймер Max Age, истекший на Switch3 также истек и на Switch4 для интерфейса Gi1/0. Данный порт уже 20 секунд не получал BPDU и данный порт перейдет в состояние LISTENING и отправит BPDU c указанием в качестве Root Bridge — Switch2. Как только Switch3 примет данный BPDU, он перестанет считать себя Root Bridge и выберет в качестве Root Port — интерфейс Gi1/0. В этот момент Switch3 также отправит TCN через Gi1/0, так как это новый Root Port. Это приведет к тому, что время хранения MAC-адресов на коммутаторах уменьшится с 300 секунд до 15. Но на этом работоспособность сети не восстановится полностью, необходимо подождать пока порт Gi1/0 на Switch4 пройдет состояние Listening, а затем Learning. Это займет время равное двум периодам Forward delay timer — 15 + 15 = 30 секунд. Что мы получаем — при потери связи Switch3 ждет пока истечет таймер Max Age = 20 секунд, заново выберает Root Bridge через другой интерфейс и ждет еще 30 секунд пока ранее заблокированный порт перейдет в состояние Forwarding. Суммарно получаем, что связь между VPC5 и VPC6 прервется на 50 секунд. Как было сказано несколькими предложениями выше при изменение Root Port с Gi0/0 на Gi1/0 на Switch3 был отправлен TCN. Если бы этого не произошло, то все MAC-адреса, изученные через порт Gi 0/0, оставались бы привязаны к Gi0/0. Например, MAC-адрес VPC5 и VPC7 несмотря на то, что STP завершит сходимость через 50 секунд, связь между VPC6 и VPC5, VPC7 не была бы восстановлена, так как все пакеты предназначенные VPC5, VPC7 отправлялись через Gi0/0. Надо было бы ждать не 50 секунд, а 300 секунд пока таблица MAC-адресов перестроится. При помощи TCN, время хранение изменилось с 300 секунд до 15 и пока интерфейс Gi1/0 на Switch4 проходил состояния Listening, а затем Learning и данные о MAC-адресах обновятся.
Также интересен вопрос, что произойдет, если мы заново включим интерфейс Gi0/1 на Switch2? При включение интерфейса Gi0/1, он, как и подобает, перейдет в состояние Listening и начнет рассылать BPDU. Как только Switch3 получит BPDU на порту Gi0/0, то сразу перевыберет свой Root Port, так как тут Cost будет наименьшем и начнет пересылать траффик через интерфейс Gi0/0, но нам необходимо подождать пока интерфейс Gi0/1 пройдет состояния Listening, Learning до Forwarding. И задержка будет уже не 50 секунд, а 30.
В протоколе STP также продуманы различные технологии для оптимизации и безопасности работы протокола STP. Более подробно в данной статье рассматривать их не буду, материалы по поводу них можно найти в избытке на различных сайтах.
habr.com
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco
STP (Spanning Tree Protocol) — сетевой протокол (или семейство сетевых протоколов) предназначенный для автоматического удаления циклов (петель коммутации) из топологии сети на канальном уровне в Ethernet-сетях. Первоначальный протокол STP описан в стандарте 802.1D. Позже появилось несколько новых протоколов (RSTP, MSTP, PVST, PVST+), отличающихся некоторыми особенностями в алгоритме работы, в скорости, в отношении к VLANам и ряде других вопросов, но в целом решающих ту же задачу похожими способами. Все их принято обобщённо называть STP-протоколами.
Протокол STP в своё время был разработан мамой Интернета Радией Перлман (Radia Perlman), а позже, в начале 90х превратился в стандарт IEEE 802.1D.
В настоящее время протокол STP (или аналогичный) поддерживается почти всеми Ethernet-коммутаторами, как реальными, так и виртуальными, за исключением самых примитивных.
Алгоритм действия STP (Spanning Tree Protocol)
- После включения коммутаторов в сеть, по умолчанию каждый коммутатор считает себя корневым (root).
- Каждый коммутатор начинает посылать по всем портам конфигурационные Hello BPDU пакеты раз в 2 секунды, максимальный промежуток 20 секунд.
- Если мост получает BPDU с идентификатором моста (Bridge ID) меньшим, чем свой собственный, он прекращает генерировать свои BPDU и начинает ретранслировать BPDU с этим идентификатором. Таким образом в конце концов в этой сети Ethernet остаётся только один мост, который продолжает генерировать и передавать собственные BPDU. Он и становится корневым мостом (root bridge).
- Остальные мосты ретранслируют BPDU корневого моста, добавляя в них собственный идентификатор и увеличивая счетчик стоимости пути (path cost).
- Для каждого сегмента сети, к которому присоединены два и более портов мостов, происходит определение designated port — порта, через который BPDU, приходящие от корневого моста, попадают в этот сегмент.
- После этого все порты в сегментах, к которым присоединены 2 и более портов моста, блокируются за исключением root port и designated port.
- Корневой мост продолжает посылать свои Hello BPDU раз в 2 секунды.
BPDU кадр
Bridge Protocol Data Unit
- Protocol Identifier размер 2 байта
- Protocol Version Identifier размер 1 байт
- BPDU Type размер 1 байт
- Flags размер 1 байт
- Root Identifier размер 8 байт
- Root Path Cost размер 4 байт
- Bridge Identifier размер 8 байт
- Port Identifier размер 2 байт
- Message Age размер 2 байт
- Max Age размер 2 байт
- Hello Time размер 2 байт
- Forward Delay размер 2 байт
Вот как выглядит BPDU кадр STP
кадр BPDU
Состояния портов:
1. Блокировка (blocking)
2. Прослушивание (listening)
3. Обучение (learning)
4. Передача (forwarding)
Настройка stp
Обща схема примера работы и настройки STP. Два коммутатора соединенных двумя линками, видно то STP уже работает и один порт у второго коммутатора погашен чтобы не было петли
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-01
Посмотрим на первом коммутаторе настройки stp. Логинимся и вводим команду
Видим, что это рутовый коммутатор и все порты в состоянии передача.
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-02
Смотрим, тоже на втором коммутаторе.
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-03
Видим, что это не рутовый коммутатор. Интерфейс Fa0/2 является рутовым портом. Fa0/3 ждет в запасе.
Теперь предположим, что интерфейс Fa0/2 упал, что будет. Для примера выключим его. Заходим на 1 коммутатор.
config t interface Fa0/2 shutdown
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-04
Видим, что линк пропал
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-05
Зайдем в этот момент на второй коммутатор и посмотрим состояние портов.
Видим, что порт Fa0/3 в состоянии обучения
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-06
теперь в состоянии передачи, прошло около 20 секунд и линк поднялся.
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-07
Восстановим на первом коммутаторе Fa0/2 командой
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-08
И видим, что все мгновенно восстановилось.
Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-09
Все же переключение в 20 секунд очень нехорошо, поэтому уже придуманы улучшенные версии протокола rstp и lacp, но о них в следующих публикациях.
Как настроить RSTP на коммутаторах Cisco
RSTP или как его еще называют в более развернутом виде Rapid spanning tree protocol, по сути тот же STP но более быстрый где время сходимости мгновение, вы потеряете один пакет.
Включить RSTP можно командой с режиме глобального конфигурирования, где нужно изменить режим на rapid-pvst.
spanning-tree mode rapid-pvst
Все теперь при падении одного линка, время схождения между коммутаторами будет 1 секунда, очень быстро, как видите RSTP, гораздо лучше STP и настраивается одной командой.
Материал сайта pyatilistnik.org
pyatilistnik.org
Урок 20. Описание и принцип работы протокола STP
Проблемы в сетях L2
Рассмотрим сеть
Сеть является замкнутой и на первый взгляд кажется надежной. Ведь при обрыве одного из кабелей все устройства по прежнему будут «на связи». Однако в этом кроется потенциальная проблема.
Предположим, что питание только что включили и естественно коммутаторы не имеют записи в своих таблицах МАС адресов.
Алиса отправляет данные Кате. Коммутатор А посылает кадры от Алисы на все порты, кроме того порта, от которого принял кадр, используя при этом широковещательную рассылку, то есть по адресу ff:ff:ff:ff:ff:ff.
Остальные коммутаторы делают тоже самое, то есть они копируют полученные кадры и заполняют ими всю сеть, то есть создают широковещательный шторм. Некоторые копии тех кадров достигают коммутатора А и он также копирует их и посылает на все порты.
Возникает замкнутая петля, которая может привести к отказу всей сети.
Кроме того, это приводит к нестабильности таблицы МАС адресов, так как коммутаторы находятся постоянно в состоянии изучения МАС адресов от поступающих кадров.
Например, когда Алиса посылает Кате данные, то коммутатор А вносит изменения в свою таблицу:
Через некоторое время копия такого же кадра поступает на коммутатор А от коммутатора D через коммутаторы С и B. Коммутатор А сразу же изменит свою таблицу в соответствии с полученной информацией:
То есть пока циркулируют копии кадров по сети таблицы коммутаторов будут меняться, и некоторые кадры не достигнут своих пункта назначения.
Чтобы избежать подобных проблем был создан протокол связующего дерева STP (Spanning Tree Protocol — стандарт IEEE 802.1d).
Принцип работы STP
Принцип работы протокола основан на создании логического дерева соединений коммутаторов. На верхушке дерева находится корневой коммутатор (Root switch), далее следуют ответвления, то есть некорневые коммутаторы. Причем все избыточные связи просто блокируются. Это позволяет избежать петель в сети. Например, вышеописанная сеть после включения STP будет выглядеть так (ее логическая структура)
Так как же работает STP?
Процесс построения дерева состоит из следующих этапов:
- Выбор корневого коммутатора (root switch)
- Выбор корневых портов (root port)
- Выбор назначенных портов (designated port)
Выбор корневого коммутатора (в сети может быть только один коммутатор) основывается на минимальных значениях приоритета коммутатора и его ID. Под ID подразумевается его МАС адрес. То есть, чем они меньше, тем больше шансов стать корневым. Коммутаторы каждые 2с посылают Hello BPDU кадры. Кадры содержат следующую информацию:
- Свой приоритет (по умолчанию у всех 32769)
- Свой ID
- ID корневого коммутатора
- Стоимость пути к корневому коммутатору
В самом начале все коммутаторы претендуют быть корневым, поэтому указывают свой ID в качестве корневого.
Соседи сравнивают значения приоритета и ID в полученных кадрах и чьи значения окажутся выше, тот перестает претендовать на пост корневого и начинает распространять Hello победителя. И так до тех пор, пока не найдется коммутатор с еще низшим значением.
Следует знать, что сначала сравниваются приоритеты и, если они равны, то сравниваются уже их ID.
Наконец, корневой коммутатор избран. Что дальше?
Далее выбираются корневые порты (root ports), то есть порты, которые ближе всего к корню.
И как же они узнают, что они ближе?
Как только выбран корень, он начинает каждые 2с генерировать Hello кадры. Все остальные коммутаторы пересылают эти кадры дальше по дереву, при этом внося небольшие изменения, то есть добавляет стоимость своего интерфейса. На всем протяжении маршрута к корню все эти стоимости суммируются и анонсируются далее
Стоимость интерфейса зависит от его скорости. Ниже представлена таблица стоимости интерфейсов:
Скорость интерфейса |
Стоимость интерфейса |
10 Мбит/с |
100 |
100 Мбит/с |
19 |
1 Гбит/с |
4 |
10 Гбит/с |
2 |
Если некорневой коммутатор получает Hello с наименьшей стоимостью к корню, то сразу переводит порт, через который он получил кадр, в состоянии пересылки (forwarding), а сам порт становится корневым
А что если получены Hello с одинаковыми значениями стоимости маршрута к корню? Что будет в данном случае?
Такая ситуация возможна только в 2-х случаях.
1-й случай.
Кадры получены от разных коммутаторов. В данном случае выбирается порт, который подключен к коммутатору с наименьшим ID. Второй порт переводится в состояние блокировки (blocking).
2-й случай.
Кадры получены от одного коммутатора, то есть имеются параллельные каналы.
Возможны 2 варианта:
1-й вариант.
Коммутатор объединяет эти параллельные каналы в один логический канал и использует для балансировки нагрузки. Причем все параллельные каналы должны иметь одинаковые характеристики, то есть скорость, тип интерфейса, VLAN, дуплекс и так далее.
2-й вариант.
Сравниваются порядковые номера портов. У кого он меньше, тот и становится корневым. Проигравший порт блокируется. Например, если сравнить порты Fa0/1 и Fa0/2, то выиграет Fa0/1.
И наконец, выбирается назначенный порт (designated port). Назначенные порты всегда подключены к другим сегментам сети (коммутаторам), а также к конечным терминалам (компьютерам). Выбирается он по тем же правилам, что и корневой порт – сравниваются стоимости маршрута к корню
После того, как определены корневые и назначенные порты, все остальные порты блокируются
Состояние портов
В процессе работы протокола STP порты могут находиться в одном из следующих состояний:
- Выключен (down) – порт физически выключен
- Блокирование (blocking) – устойчивое состояние, порт данные не передает.
- Прослушивание (listening) – промежуточное состояние, порт данные не передает. BPDU пакеты передаются. Все таблицы МАС адресов обнуляются. Длительность состояния 15с.
- Самообучение (learning) — промежуточное состояние, порт данные не передает. BPDU пакеты передаются. Коммутатор обновляет таблицу МАС адресов за счет поступающих кадров. Длительность состояния 15 с.
- Пересылка (forwarding) – устойчивое состояние, порт активно передает данные и BPDU пакеты.
При включении коммутатора или подключения другого коммутатора порты проходят последовательно через вышеописанные стадии.
Промежуточные состояния необходимы для предотвращения возникновения случайных петель во время конвергенции STP.
Реакция сети на изменения в топологии
Теперь представим, что порт Fa 2 коммутатора D отключается
Коммутатор C перестает получать Hello от корневого коммутатора. Запускается таймер устаревания (Max Age), который равен 20 с. Если в течении работы таймера не поступит Hello от корневого коммутатора, то порт Fa 2 данного коммутатора перейдет в состояние прослушивания. Таблица МАС адресов обнулится. Через 15 с порт перейдет в состояние самообучения. В этом состоянии коммутатор изучает МАС адреса входящих кадров, а также Hello кадры, которые все еще передаются от коммутатора А через коммутатор B.
Так как порт Fa 2 единственный, который подключен к корневому коммутатору, то он переходит в состояние пересылки и становится корневым.
Протокол PVST+
Протокол STP разрабатывался до появления VLAN, поэтому, когда в сети настроено несколько VLAN, то STP этого не учитывает и работает так, словно сеть настроена только для одной VLAN.
Чтобы учитывать все VLAN компания Cisco разработала протокол, которые работает точно так же, как и STP, однако учитывает все настроенные VLAN, то есть создает по экземпляру STP для каждой VLAN. Этот протокол получил название PVST+ (Per VLAN STP). Данный протокол использует стандарт 802.1Q (стандарт описывает тегирование трафика VLAN). По умолчанию во всех Cisco коммутаторах уже включен PVST+.
easy-network.ru
Отличия в работе STP и RSTP
Всем привет! Сегодня мы поговорим о различиях в работе протоколов связующего дерева Spanning Tree Protocol (далее STP) и Rapid Spanning Tree Protocol (далее RSTP).
Итак, после стандарта 802.1d институт IEEE выпустил новый стандарт 802.1w. Во многом эти протоколы аналогичны. Я уже описывал механизм работы протокола STP, поэтому поясню то, чем эти протоколы отличаются. Всё дело в скорости конвергенции (схождения) дерева. Протокол RSTP заявляет более быструю сходимость за счёт некоторых изменений в работе.
Для сравнения, в STP используется таймер ожидания в 20 секунд в случае, когда топология сети меняется. Затем порт переходит в состояние прослушивания и самообучения – ещё по 15 секунд на каждое. Итого мы имеем 20 + 15 + 15 = 50 секунд на конвергенцию. Достаточно долго.
Протокол RSTP предусматривает ожидание, равное утроенному значению таймера Hello, то есть 2 * 3 = 6 секунд. Кроме того устраняются 15-тисекундные задержки в переходе между неустойчивыми состояниями прослушивания и самообучения.
Как правило, время конвергенции протокола RSTP составляет менее 10 секунд, зачастую даже меньше 2 секунд.
Так же изменились названия состояний портов. Думаю, лучше всего это будет выразить в виде таблицы:
Название по 802.1d | Название по 802.1w | Передача данных через порт |
Блокирование | Игнорирование | не происходит |
Прослушивание | Игнорирование | не происходит |
Самообучение | Игнорирование | не происходит |
Выключено | Выключено | не происходит |
Перенаправление | Перенаправление | происходит |
Как и в протоколе STP, протокол RSTP имеет два устойчивых состояния. Все остальные состояния называются переходными и существуют только пока происходит конвергенция (за исключением состояния Выключено). Фреймы передаются только в состоянии перенаправления, во всех остальных случаях они отбрасываются. Проходят только специальные кадры BPDU, которые и являются кадрами протокола построения дерева.
Ещё в 802.1w введено понятие альтернативного порта. Этот термин относится к тому порту коммутатора, который является наилучшей альтернативой текущему корневому порту. В общем виде в этот разряд портов попадают те интерфейсы, которые так же принимают BPDU кадры, но их характеристики (стоимость пересылки) не доходят до оптимальных.
ТопологияТеперь, в случае отказа корневого порта (имеется в виду изменение топологии сети) будет выбираться наилучший альтернативный порт, что ускоряет конвергенцию протокола.
Ещё одно понятие стандарта 802.1w – резервный порт. Этот термин применяется, если в каком-то коммутаторе имеется два или более каналов к одному и тому же сегменту сети. Это значит, что имеются избыточные линии связи, которые отключаются после конвергенции (переводятся в состояние игнорирования), но пропускают BPDU кадры, так, что коммутатор знает, что имеется резервный канал в этот сегмент.
В работе протокола RSTP есть ещё одно отличие. Коммутаторы вырабатывают собственные кадры BPDU и рассылают их по всем другим магистралям. Протокол STP же подразумевает, что после схождения дерева этим занимается только корневой коммутатор.
Loading …litl-admin.ru
STP — это… Что такое STP?
Stp — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. {{{image}}} Sigles d une seule lettre Sigles de deux lettres > Sigles de trois lettres … Wikipédia en Français
STP — steht für: São Tomé und Príncipe, als ISO 3166 und olympisches Länderkürzel Segmenting, Targeting, Positioning (dt. Marktsegmentierung, Zielmarktfestlegung, Positionierung), eine Vorgehensweise im Marketing Serenity, Tranquility, Peace, eine… … Deutsch Wikipedia
STP — Saltar a navegación, búsqueda STP puede hacer referencia a: Shielded Twisted Pair (cable par trenzado apantallado) Spanning Tree Protocol Socialismo Teoría y Práctica Servicios Técnicos y Prevención Stone Temple Pilots, una banda estadounidense… … Wikipedia Español
STP — argot, agente psicodélico, dimetoxi 4 metilanfetamina (DOM). STP es una abreviatura de serenidad, tranquilidad y paz. Diccionario Mosby Medicina, Enfermería y Ciencias de la Salud, Ediciones Hancourt, S.A. 1999 … Diccionario médico
STP — STP, acrónimo de Shielded Twisted Pair o Par Trenzado Apantallado. El cable de par trenzado apantallado es justamente lo que su nombre implica: cables de cobre aislados dentro de una cubierta protectora, con un número específico de trenzas por… … Enciclopedia Universal
STP — STP: 1) [Abk. für engl. standard temperature and pressure = Normtemp. u. Normdruck]: ↑ Normzustand 2) [angeblich Abk. von engl. serenity, tranquility, peace =Heiterkeit, Ruhe, Frieden, oder von lat. st … Universal-Lexikon
stp — stp; STP; … English syllables
STP — (Serenity, Tranquility, and Peace) n. nickname for a strong hallucinogenic drug introduced in the 1960 s (4 Methyl 2,5 dimethoxyamphetamine) … English contemporary dictionary
STP — abbrev. standard temperature (0°C) and air pressure (760 mm of mercury) … English World dictionary
STP — Не следует путать с Straight through processing. англ. Spanning Tree Protocol (STP) (протокол остовного дерева) сетевой протокол. Основной задачей STP является устранение петель в топологии произвольной сети … Википедия
STP — The three letter acronym STP can have several meanings:Commercial*Straight Through Processing is a banking term where a financial transaction is automatically completed without manual intervention. *STP is a motor oil company. * STP is the… … Wikipedia
normative_en_ru.academic.ru
Что такое счет STP? :: BusinessMan.ru
Часто можно услышать такое понятие, как STP-брокеры «Форекс». Кто они такие и чем занимаются? Такие компании специализируются на обеспечении быстрой продажи от торговых ордеров клиентов до поставщиков. На счетах STP ведется полностью анонимная и очень быстрая (быстрее, чем у остальных брокеров) продажа.
Обычно известные банки и крупные брокеры — гарантия ликвидности. Ордер Straight Through Processing (именно так расшифровывается STP) торгуется именно у них, а посредники при таких сделках отсутствуют. Поэтому у клиентов со STP-счетами ордеры производятся без задержек и прочих трудностей.
Как это работает?
Основной доход таких брокеров приходит от малой наценки на спреде «Форекс». Иногда встречается и какой-то процент комиссии, что также приносит доход. Положение получается крайне выгодное, так как брокеры получают прибыль всегда (комиссия и наценка), а вот трейдеры могут как потерять, так и приобрести деньги.
Бывает и так, что брокеры разрешают доступ только к единственному поставщику ликвидности, а некоторые сотрудничают с несколькими одновременно (хорошим примером является FXCM). От количества поставщиков ликвидности и зависит быстрота и качество исполняемого ордера.
Быстрые операции
Благодаря STP-платформе осуществляется быстрая торговля в среде реального рынка, и ордеры исполняются без посредников в короткие сроки.
Также могут предоставляться плавающие или фиксированные спреды. Это обеспечивают брокеры со STP-счетом. Вообще, в цепочке осуществления ордера брокер — среднее звено между клиентом и международным банком, котировка берётся, конечно же, со спредом с помощью межбанковского рынка. Некоторые фиксированные спреды предлагаются самими банками.
Спреды на торговых счетах STP PRO
STP-брокер может выбрать одно из двух:
- Плавающие спреды; для самоопределения самых удачных ценовых предложений по bid и ask «Форекс», которые предоставляются участниками рынка (банками), брокер должен обнулить спред с фиксацией. Качество прямо пропорционально количеству этих спредов, как говорилось ранее. Такую систему работы можно встретить у брокеров NDD (No Dealing Desk). Их ордеры отличаются быстротой исполнения и бесконфликностью на почве интересов. Здесь стоит отметить и то, что реквоты тоже отсутствуют. Клиенты могут выбрать ECN-счет/STP-исполнение.
- Можно выбрать и фиксированные спреды — в этом случае спреды, полученные от межбанка, оставляются STP без изменений. При этом убираются некоторые аспекты прибыли, тогда вводится комиссия STP-счетов.
Предназначение технологии STP
Все ордеры сопровождаются так называемым расчетным риском, и именно его хотят обойти многие инвесторы. Можно объяснить значение этого понятия с помощью примера банковского перевода.
Во время перевода денег (можно взять для примера 200 единиц любой условной валюты) отправка занимает около трех дней. Так, если перевод этого номинала в долларах США (USD) осуществляет определенное лицо, спустя три дня после начала операции курс валюты может сильно измениться, но никто не знает как. Инвестор может потерять определенный процент или же, напротив, преуспеть и получить выгоду. Эта случайность и есть расчетный риск.
Теперь можно понять, из-за чего возникает риск: из-за задержки платежа. В представленном выше случае три дня нужны для выяснения деталей перевода и связи с посредниками для уточнения информации. На «Форекс» же в это время сделка корректируется и проверяется дилером.
Даже в краткосрочные секундные проверки, как в ситуациях с валютным рынком, курс может резко измениться. В малых объемах разница несущественна, чего не скажешь о крупных переводах. Котировка валюты здесь важна в первую очередь.
Таким образом, риски минимализируются на STP-счетах, для этого они и устроены. Не зря их название значит «прямая обработка» в переводе на русский язык. Их суть в том, что ордер не попадает к посредникам. Банк сразу рассматривает его автоматом, и все проходит по специальным «мостикам».
Это означает, что STP-обработка действительно выполняет свою работу, ускоряя процесс и уменьшая риск всевозможных потерь. На STP-счетах различных брокеров вы можете ознакомиться со средней продолжительностью обработки ордеров.
На чем зарабатывают брокеры STP?
Как уже было указано выше, STP-брокеры обычно получают прибыль от спреда за проторгованный лот от трейдера «Форекс» или за счет имеющейся комиссии.
С одинаковыми котировками всегда поступают в банки ордера, которые смогли открыть трейдеры «Форекс», у которых имеется собственный торговый счет STP. Представители за данные торговые лоты берут комиссии. Заинтересованными в прибыли данных трейдеров являются именно брокеры с STP-счетами, поскольку от дохода трейдера они получают с комиссии свой заработок.
Как построен счет STP?
Новому трейдеру всегда важно знать, как же именно устроен счет STP и как он работает. Данный счет устроен таким образом, что риски сведены к минимуму, и поэтому их можно даже назвать незначительными.
Движение средств по такому счету
На примере можно рассмотреть, как именно происходит работа такого счета STP PRO:
- Произошел запрос на выставление ордера, и он сразу направляется в банк, минуя дилера, через специальные «мосты».
- Организация банка моментально принимается за обработку такого ордера, и в дальнейшем работает строго автоматический режим.
Когда трейдер имеет счета ECN или STP, то он не получит зависания от исполнения ордеров. Такая работа помогает увеличивать скорость исполнения таких команд на порядок.
У каких брокеров имеются счета STP?
Когда трейдер решил выбрать именно счет STP, то он должен знать, у каких брокеров они имеются. Вот какие брокеры имеют именно эти счета:
- RVDMarkets.
- GKFX.
- FXopen.
- Forex4you.
- «Финам» (счет STP и ECN-счет одновременно).
Преимущества от счетов STP
Предпочтительнее всего будет работать с такими счетами владельцам с особо крупными депозитами. Важно уделить внимание тому, чтобы при выставлении ордера выполнялось условие его открытия по наиболее выгодной цене (по такой, которая будет интересна именно трейдеру). Это объясняется тем, что здесь даже незначительное движение котировки будет заметно отражаться на самом счете.
Следует отметить, что счет STP просто идеален для тех, кто привык применять в работе стратегию скальпинга. Таким участникам рынка наиболее важно быстрое исполнение ордеров. Именно в этой стратегии берутся небольшие по объему профиты, и поэтому столь необходимо иметь возможность выйти из рынка вовремя.
Трейдеры, которые привыкли ценить свое время, обязательно открывают счета STP. Важно иметь строго проверенную тактику и умело ею пользоваться.
Заключительное слово
Вышесказанное позволяет понять, что такое STP-счет и как он работает. После того как понимание его принципов стало ближе, и вся информация о его преимуществах принята к сведению, трейдер может приступить к выбору соответствующего брокера. Как можно увидеть, этот инструмент способен в значительной мере защитить от убытков.
businessman.ru
STP — это… Что такое STP?
1) Общая лексика: hum. сокр. Sulfate Transport Protein, simplified technical proposal , sewage treatment plant , Standard Plan3) Авиация: типовая методическая разработка для слушателей
5) Спорт: Scenario Tables Pool, Smothers Tackles Punches
6) Военный термин: SAGE system training program, Segmentation Targeting And Positioning, Segmenting Targeting And Positioning, Service Transformation Project, Short Term Project, Site Transition Plan, scientific and technical potential, security technology program, selection and test plan, simultaneous track processor, soldier training publication, space test program, standard test procedure, standardized test program, strategic target planning, subsystem test plan, systems training program8) Шутливое выражение: Stomp The Petroleum
10) Религия: Serenity Tranquillity And Peace, Study, Teach, Pray11) Юридический термин: Stuffing The Pipe
12) Ветеринария: Society of Toxicologic Pathology
13) Грубое выражение: Stupid Tubby Principal
14) Музыка: Stones Touring Party
15) Оптика: standard thermal profile
16) Телекоммуникации: Service Traffic Position, Services Transaction Program , Signal Transfer Point 17) Сокращение: Security Test Plan, Sensor Track Processor, Shielded Twisted Pairs, Short term plan, Signaling Transfer Point , Software Through Pictures, Soldiers Training Publication, Space Test Payload / Program , Status Test Panel, Systems Technology Programme, stamp18) Университет: Sanctae Theologiae Professor, Student Top Performance
19) Физиология: Standard temperature and pulse, Sulfate Transport Protein
20) Вычислительная техника: Selective Tape Print, Software Testing Program, System Training Program, shielded twisted-pair wiring, Service Transaction Program , Spanning Tree Protocol , Signaling Transfer Point , Shielded Twisted Pair , Shielded Twisted Pair , Standard Temperature and Pressure 21) Нефть: sanitary treatment package, нормальные температура и давление , процедура проверки системы22) Космонавтика: Standard Temperative and Pressure
23) Банковское дело: специализированная панель предложения , сквозная обработка транзакций24) Геофизика: стандартная температура и давление
25) Транспорт: Sailing To Philadelphia, Seattle To Portland, Surface Transportation Program
26) Фирменный знак: Software Technology Park
27) СМИ: Stop The Presses
28) Деловая лексика: Same Ten People, Small Team Project, Strategic Technology Planning
30) Нефтепромысловый: submerged turret production31) Образование: Self Test Problem, Summer Training Program
35) Программирование: план тестирования программного обеспечения
37) Океанография: Science and Technology Policy
42) Нефть и газ: (сокр. от) surface treatment pressure = давление обработки (ГРП) на поверхности, поверхностное давление обработки (ГРП), Senior Toolpusher43) Водоснабжение: трифосфат натрия
44) Фантастика Stone Temple Pilots
45) Чат: See The People
Универсальный англо-русский словарь. Академик.ру. 2011.
universal_en_ru.academic.ru