Меню

Stp оборудование что это



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

Рассмотрим, допускается ли в Ethernet кольцевое соединение между коммутаторами. Например, в сети 4 коммутатора и они соединены 4 кабелями, так что образуется кольцо. Вопрос состоит в том, может ли работать такая сеть? К сожалению, такая сеть работать не может, потому что в ней возникает широковещательный шторм.

p, blockquote 1,0,0,0,0 —>

p, blockquote 2,0,0,0,0 —>

Широковещательный шторм

p, blockquote 3,0,0,0,0 —>

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

p, blockquote 4,0,0,0,0 —>

p, blockquote 5,0,0,0,0 —>

Компьютеры, которые подключены к портам коммутатора увидят, что этот кадр предназначен не для них и просто отбросят их. А два порта на картинке ниже, подключены к другим коммутаторам и кадр через эти порты будет передан в другие коммутаторы 2 и 3.

p, blockquote 6,0,0,0,0 —>

p, blockquote 7,0,0,0,0 —>

Предположим, что у коммутаторов 2 и 3 тоже нет записей об адресе получателя этого кадра в таблице коммутации. Поэтому они вынуждены передавать этот кадр на все порты.

p, blockquote 8,0,0,0,0 —>

p, blockquote 9,0,0,0,0 —>

Как и на предыдущем этапе компьютеры отбросят кадры, которые предназначены не для них, а через соединение кадр будет передан на коммутатор 4.

p, blockquote 10,0,0,0,0 —>

p, blockquote 11,0,0,0,0 —>

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

p, blockquote 12,0,0,0,0 —>

p, blockquote 13,0,0,0,0 —>

Кроме этого кадр 1 передастся в коммутатор 3, а кадр 2 передастся в коммутатор 2. Таким образом, кадры будут ходить по кругу и передаваться на все порты.

p, blockquote 14,0,0,0,0 —>

p, blockquote 15,0,0,0,0 —>

Через некоторое время таких кадров будет очень много и сеть окажется неработоспособной. Такая ситуация называется широковещательный шторм и из-за него кольцевое соединение в сети Ethernet невозможно.

p, blockquote 16,0,1,0,0 —>

Протокол STP

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

p, blockquote 17,0,0,0,0 —>

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

p, blockquote 18,0,0,0,0 —>

Протокол STP определен в стандарте IEEE 802.1D. Благодаря этому протоколу можно создавать несколько соединений между коммутаторами. Это повышает надежность работы сети. Если по какой-то причине одно соединение разорвется, то можно будет использовать другое соединение.

p, blockquote 19,0,0,0,0 —>

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

p, blockquote 20,0,0,0,0 —>

Место протокола STP в модели OSI

В модели взаимодействия открытых систем протокол STP находится на канальном уровне, он реализуется на коммутаторах.

p, blockquote 21,0,0,0,0 —>

Работа протокола STP

Рассмотрим, как работает протокол STP. В примере с 4-мя коммутаторами одно из соединений (между коммутатором 3 и 4) будет отключено на программном уровне.

p, blockquote 22,0,0,0,0 —>

p, blockquote 23,0,0,0,0 —>

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

p, blockquote 24,0,0,0,0 —>

p, blockquote 25,0,0,0,0 —>

Протокол STP может автоматически включить заблокированное соединение, и коммутатор по-прежнему сможет передавать данные в сеть.

p, blockquote 26,0,0,0,0 —>

Этапы работы протокола STP

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

p, blockquote 27,0,0,0,0 —>

Протокол STP придумала Ради Перлман и написала стихотворение, как протокол работает.

p, blockquote 28,0,0,0,0 —>

p, blockquote 29,0,0,0,0 —>

Сообщения протокола STP

Чтобы реализовать протокол STP, коммутаторы обмениваются между собой сообщениями, которые называются Bridge Protocol Data Units (BPDU). Протокол STP был разработан в 80-е годы, поэтому вместо термина коммутатор switch используется термин bridge мост, который был более популярен в то время.

p, blockquote 30,0,0,0,0 —>

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

p, blockquote 31,0,0,0,0 —>

В качестве адреса получателя используется групповой МАК-адрес STP. Все Ethernet коммутаторы, которые поддерживают STP принимают и обрабатывают кадры, которые приходят на этот групповой адрес (01:80:С2:00:00:00).

p, blockquote 32,1,0,0,0 —>

Выбор корневого коммутатора

Подробно рассмотрим, как работает протокол STP. На первом этапе выполняется выбор корневого коммутатора. Выбор выполняется по идентификатору, в качестве корневого выбирается коммутатор, у которого этот идентификатор минимальный.

p, blockquote 33,0,0,0,0 —>

Сейчас в качестве идентификатора коммутаторов используется его МАК-адрес, но можно повлиять на значение идентификатора вручную, чтобы выбрать в качестве корневого наиболее мощный коммутатор в вашей сети, а не тот коммутатор, у которого случайно оказался самый маленький МАК-адрес.

p, blockquote 34,0,0,0,0 —>

Предположим, что в нашей сети коммутаторы используют в качестве идентификаторов простые, целые числа. У коммутатора 1 идентификатор 4, у коммутатора 2 BID=2 и так далее, смотри по картинке ниже. В качестве корневого по протоколу будет выбран коммутатор 4 с идентификатором 1.

p, blockquote 35,0,0,0,0 —>

p, blockquote 36,0,0,0,0 —>

Как происходит выбор корневого коммутатора? На первом этапе коммутаторы ничего не знают про всю остальную сеть, соответственно, каждый коммутатор считает себя корневым и рассылает всем своим соседям сообщение, что он корневой коммутатор. Коммутатор 1 отправит такие сообщения на коммутатор 2 и 3, а 2 и 3 отправят сообщение на коммутаторы 1 и 4. Получив сообщение от своих соседей, коммутаторы сравнивают идентификатор сообщений со своим идентификатором.

p, blockquote 37,0,0,0,0 —>

p, blockquote 38,0,0,0,0 —>

Например, коммутатор 2 получит сообщение от коммутаторов с идентификатором BID=4 и BID=1. Он поймет, что из его соседей и его самого, коммутатор с минимальным идентификатором это коммутатор 4.

p, blockquote 39,0,0,0,0 —>

p, blockquote 40,0,0,0,0 —>

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

p, blockquote 41,0,0,0,0 —>

p, blockquote 42,0,0,0,0 —>

Например, коммутаторы 2 и 3 получили сообщение от четвертого, который меньший чем их идентификатор и рассылают, что теперь корневой коммутатор это коммутатор с номером 4 BID=1. Коммутатор 1 получил сообщение от коммутаторов 2 и 3, он выбрал минимальное значение BID=2 и теперь рассылает, что корневой коммутатор, по его мнению, это коммутатор с номером 2.

p, blockquote 43,0,0,0,0 —>

p, blockquote 44,0,0,0,0 —>

На следующем этапе информация о том, что корневой коммутатор это коммутатор с номером 4, доходит до 1 коммутатора в нашей сети и теперь все коммутаторы считают, что корневой коммутатор это коммутатор 4 с BID=1. На этом выбор корневого коммутатора заканчивается.

p, blockquote 45,0,0,0,0 —>

Видео о работе корневого коммутатора

p, blockquote 46,0,0,0,0 —>

Расчет кратчайших путей

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

p, blockquote 47,0,0,0,0 —>

  • количество промежуточных коммутаторов;
  • скорость соединений между промежуточными коммутаторами.

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

p, blockquote 48,0,0,1,0 —>

Расстояние между коммутаторами определено в стандарте IEEE 802.1D. Предположим, что у нас соединение с коммутаторами 1 Гбит/с в этом случае в качестве значения расстояния мы используем число 4,как в таблице ниже.

p, blockquote 49,0,0,0,0 —>

p, blockquote 50,0,0,0,0 —>

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

p, blockquote 51,0,0,0,0 —>

p, blockquote 52,0,0,0,0 —>

В нашем случае скорость соединения 1 Гбит/с значения расстояния равно 4.Затем это кратчайшее расстояние до корневого коммутатора рассылается в четвертый коммутатор. 4-эй коммутатор берет это значение 4, определяет скорость соединения с этими коммутаторами 1 Гбит/с расстояние 4 и суммарное расстояние 8. Теперь мы знаем расстояние от всех портов до корневого коммутатора.

Читайте также:  Очистка оборудования от сажи

p, blockquote 53,0,0,0,0 —>

p, blockquote 54,0,0,0,0 —>

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

p, blockquote 55,0,0,0,0 —>

Если порты нумеруются слева направо, то будет отключен порт справа.

p, blockquote 56,0,0,0,0 —>

p, blockquote 57,0,0,0,0 —>

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

p, blockquote 58,0,0,0,0 —>

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

p, blockquote 59,0,0,0,0 —>

p, blockquote 60,0,0,0,0 —>

Состояние портов в STP

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

p, blockquote 61,0,0,0,0 —>

  • На первом этапе, когда кабель только что подключен к порту коммутатора, порт работает в режиме Listening — порт обрабатывает управляющее сообщение протокола STP, но не передаёт никакие данные.
  • На втором этапе, который называется Learning — порт принимает данные, но никуда их не передает. Из принятых кадров извлекаются адреса отправителей, которые используются для создания таблицы коммутации.
  • На следующем этапе возможно два варианта. Если выяснилось, что к порту подключен компьютер или коммутатор без образования кольца, то порт переходит в состояние Forwarding — порт принимает и передает данные, а также принимает и передает управляющее сообщение протоколу STP.
  • Но если оказалось, что к порту подключен коммутатор и образовалось кольцо, то порт переходит в состояние Blocking — порт блокируется на программном уровне для того, чтобы не было кольца.
  • Кроме этого у администратора есть возможность принудительно выключить порт, переведя его в состояние Disabled. В этом случае данные не будут передаваться независимо от того, что подключено к порту компьютер, коммутатор, есть кольцо или нет.

Развитие STP

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

p, blockquote 62,0,0,0,0 —>

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

p, blockquote 63,0,0,0,0 —>

Кроме этого возможны проблемы при взаимодействии протокола STP с технологией VLAN. Вы можете попытаться создать несколько соединений между коммутаторами, которые будут принадлежать разным Vlan. Но STP в исходном варианте ничего не знает про vlan поэтому соединение между коммутаторами в разных vlan будут отключены.

p, blockquote 64,0,0,0,0 —> p, blockquote 65,0,0,0,1 —>

Для того, чтобы можно было использовать технологию vlan совместно с протоколом STP необходимо, чтобы связующее дерево строилось для каждого vlan отдельно. Эту возможность реализовали в протоколе Multiple Spanning Tree Protocol (MSTP), который определен в стандарте 802.1s.

Источник

Протокол покрывающего дерева (STP)

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

  • STP / 802.1D (оригинальный STP)
  • PVST + (улучшения Cisco для STP, добавление функции для каждой VLAN)
  • RSTP / 802.1W (улучшенный STP с гораздо более быстрой конвергенцией)
  • Быстрый PVST + (улучшение RSTP в Cisco, добавление для каждой функции VLAN)

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

Прежде чем мы рассмотрим потребность в STP, давайте кратко рассмотрим, как работает уровень 2, когда ему нужно узнать адрес конкретного хоста.

Когда коммутатор получает пакет, но у него нет MAC-адреса узла назначения в его таблице, он транслирует сообщения на все узлы, кроме тех, от которых он получает. Если вы хотите узнать больше об этом, пожалуйста, обратитесь к этой статье на ARP.

Сценарий 1: широковещательный шторм

Давайте посмотрим на сценарий ниже:

Допустим, в сети есть три коммутатора, как показано выше. Все переключатели связаны друг с другом. Коммутатор B отправляет широковещательную рассылку, а коммутатор A и коммутатор C принимают ее. Они не находят адрес и повторно транслируют сообщение.

Коммутатор B снова получает ретранслируемое сообщение от коммутатора A и коммутатора C. Думая об этой трансляции как о новой трансляции, коммутатор B снова транслирует те же сообщения, которые уже транслировались ранее. Таким образом, широковещательный шторм имеет место. Это продолжается до тех пор, пока порты не выйдут из строя или не произойдет сбой коммутатора.

Сценарий 2: дубликаты пакетов

Рассмотрим ту же архитектуру сети, которая приведена в сценарии выше. Здесь есть небольшой поворот. На этот раз коммутатор C подключен к хосту назначения, который искал коммутатор B. Что теперь?

Переключатель B будет транслироваться снова. Трансляция также достигает коммутатора C и коммутатора A. Коммутатор C просматривает пакет и доставляет пакет на хост назначения.

Однако на другой параллельной стороне коммутатор A также проверил свою таблицу и не смог найти хост назначения. Таким образом, он также транслировал сообщение, и коммутатор C снова получил тот же пакет. Таким образом, он просматривает пакет и снова доставляет его на хост назначения.

В чем здесь проблема? Можете ли вы угадать, не читая дальше?

Самая большая проблема здесь — двойная доставка и потеря пропускной способности.

Теперь давайте выясним решение для сценария 2. Одним из лучших и самых простых решений было бы отключить коммутатор B от коммутатора C, чтобы не было дублирования пакетов. Потому что, в любом случае, коммутатор A будет транслировать пакет на коммутатор C, если хост назначения не найден в списке коммутатора A. Теперь это выглядит примерно так:

Если вы снова посмотрите на определение, теперь вы узнаете, почему STP был изобретен в первую очередь.

Хотя мы нашли решение, мы, тем не менее, не уверены, что блокировка соединения между B и C была более выгодной, или блокирование того же между коммутатором B и A. Давайте рассмотрим все это подробнее.

Какой порт заблокировать в STP?

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

Корневой мост

Как и «Корень» в древовидной структуре, Корневой мост является основным коммутатором или мостом на графике, где разные узлы представляют все другие мосты. Корневой мост управляет топологией связующего дерева.

Назначенный мост

Назначенный мост — это коммутатор, ближайший к корневому мосту, через который кадры будут перенаправлены на корневой мост.

Альтернативный мост

Это альтернативный путь к корневому коммутатору, но он отличается от пути к корневому мосту.

Резервный мост

Это резервный путь к сегменту, хотя будет другой существующий путь.

Порты, которые отключены.

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

Порт экспедирования

Порт, который полноценно работает.

Порт обучения

Порт, который не пересылает кадры, но изучает MAC-адреса.

Порт прослушивания

Порт, который не пересылает кадры и не изучает MAC-адреса.

Отбрасывание порта

Порт, который не передает никаких данных.

Давайте посмотрим, как работает STP, и решим, какой коммутатор, мост и порт должны находиться в каком состоянии:

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

Вот очень красивый пример из Википедии.

RP: корневой порт
DP: назначенный порт
BP: заблокированный порт

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

Операция протокола связующего дерева

Происходит следующий набор операций.

Определение корневого моста

Читайте также:  Продажа медицинского оборудования без лицензии статья

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

Чтобы подтвердить утверждение, все коммутаторы должны транслировать свой идентификатор моста (BID), используя BPDU (блоки данных протокола моста). Общий идентификатор моста составляет 8 байтов, из которых 2 байта зарезервированы для приоритета моста, а остальные 6 байтов зарезервированы для MAC-адреса.

Идентификатор моста представляет собой комбинацию приоритета моста и MAC-адреса. За кулисами BID представляет собой сцепленную версию приоритета моста и MAC-адреса коммутатора / моста. По умолчанию каждый мост будет иметь идентификатор моста 32768, а каждый идентификатор моста будет кратен 4096.

Как определяется корневой мост?

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

Пример:

Допустим, есть связь между двумя мостами с BID:

Мост A: 32768.df56.6765.7876 и,
Мост B: 32768.df56.6765.7875

Теперь у вас есть вопрос — какой мост станет здесь корневым мостом? Если вы догадались, что это Мост B, значит, вы были правы.

Давайте посмотрим, как эти отдельные коммутаторы реагируют на BPDU:

В тот момент, когда все коммутаторы включены, все коммутаторы, как упоминалось ранее, объявляют, что они являются корневым мостом, отправляя свой идентификатор моста в пакете приветствия.

Переключатель 1:

Когда коммутатор 1 получает приветственные BPDU от коммутатора 2 и коммутатора 3, он сравнивает значения идентификатора моста. В этой ситуации у коммутатора 1 самый низкий BID. Таким образом, коммутатор 1 отбрасывает пакеты приветствия, полученные от остальных коммутаторов, и продолжает объявлять себя корневым мостом.

Переключатель 2:

Здесь коммутатор 2 получает приветственные BPDU от обоих коммутаторов, то есть от коммутатора 1 и коммутатора 3. Давайте посмотрим, как коммутатор 2 реагирует на оба BPDU.

Когда Коммутатор 2 получает пакет от Коммутатора 1, он сравнивает значения BID и, безусловно, приветственный пакет BPDU от Коммутатора 1 заменяет его BID. Таким образом, коммутатор 2 изменяет свой BID на коммутатор 1. Когда он также получает BPDU от коммутатора 3, он будет сравнивать значения и будет продолжать отбрасывать BPDU из коммутатора 3.

Переключатель 3:

Допустим, коммутатор 3 сначала получает BPDU от коммутатора 2. Таким образом, он меняет свой BID на тот, что у коммутатора 2. Но когда он дополнительно получает BPDU от коммутатора 1, он снова меняет его на коммутатор 1.

В этот момент все коммутаторы получили BPDU друг друга и согласились с тем, что коммутатор 1 имеет самое низкое значение BID и, следовательно, является подходящим кандидатом на роль корневого моста сети.

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

Но выбор корневого моста — это не конец игры. Это только начало. И игра следует за: —

Определение маршрута с наименьшей стоимостью до корневого моста

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

В теории графов остовное дерево является подмножеством графа. Остовное дерево позволяет покрыть все вершины графа с минимально возможным числом ребер. Следовательно, остовное дерево не имеет петли, и, кроме того, оно также не может быть отключено.

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

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

В качестве первого шага Root Bridge отправляет поток BPDU всем остальным коммутаторам. Корневая стоимость определяется путем суммирования затрат сегментов на пути, по которому он прошел пакет BPDU для прохождения от корневого моста к узлу.

Стоимость сегмента также зависит от скорости соединения конкретного сегмента. Вот диаграмма того же самого.

Пропускная способность Затраты
10 Mbit 100
100 Mbit 19
1000 Mbit 4

Иногда эти затраты на соединение возникают в захватывающих ситуациях, связанных с наименьшей стоимостью пути к корневому мосту. Посмотрите на картинку ниже: —

Можете ли вы угадать корневой порт для коммутатора 3 на рисунке выше?

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

Корневой мост -> Переключатель 2 -> Переключатель 4 -> Переключатель 3

Вы можете догадаться, почему? В соответствии с таблицей выше, вот расходы.

Переключатель 3 на Root Bridge напрямую равен 100 из-за его канала 10 Мбит / с. Но если мы вычислим путь, как сказано выше, он будет (19 + 19 +4 = 42).

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

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

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

Источник

Урок 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 кадры. Все остальные коммутаторы пересылают эти кадры дальше по дереву, при этом внося небольшие изменения, то есть добавляет стоимость своего интерфейса. На всем протяжении маршрута к корню все эти стоимости суммируются и анонсируются далее

Читайте также:  Газовое оборудование для авто в рубцовске

Стоимость интерфейса зависит от его скорости. Ниже представлена таблица стоимости интерфейсов:

Источник

Stp оборудование что это

STP (от англ. Spanning Tree Protocol) — сетевой протокол, работающий на втором уровне модели OSI. Основан на одноимённом алгоритме, который разработала Радья Перлман (англ. Radia Perlman). Протокол описан в стандарте IEEE 802.1D.

Основной задачей данного протокола является приведение сети Ethernet с множественными связями к древовидной топологии, исключающей зацикливание пакетов. Все устройства, на которых включен протокол STP, выполняют это в автоматическом режиме.

Если связать для надежности сетевое оборудование большим количеством связей (для надежности), то без принятия дополнительных мер возникнут проблемы в работе сети (рис.1). Поэтому важно иметь протокол, который позволяет использовать избыточные связи в качестве резерва и автоматически их использовать по мере надобности. Разумеется, резервируемый канал не должен пропускать трафик (за исключением служебного трафика самого протокола). Конечно, с этой задачей способен справиться и администратор сети, но он скорее отдаст богу душу, чем осилит мониторинг сети 24х7 с пробежками до каждого проблемного коммутатора.

Рис. 1

Терминология

Так как протокол STP обычно настраивается на коммутаторах, то я, соответственно, буду указывать описание для коммутаторов. Также прошу обратить внимание на то, что сам протокол оперирует понятием «bridge», то есть мост.

Введем следующую терминологию.

Избыточная связь — если коммутатор А имеет с коммутатором Б больше одной физической или логической (на L2 уровне модели оси) связи.

Петля коммутации — состояние в сети, при котором идет бесконечная пересылка кадров между коммутаторами (или аналогичными устройствами), подключенными в один и тот же сегмент сети (пример — http://netwild.ru/petlya/).

Граф — совокупность непустого множества вершин и наборов пар вершин (связей между вершинами). Проще говоря — это объекты и связи между ними. В протоколе STP также используют термин «древо» или «дерево», что является своеобразным синонимом.

Корень дерева (root) — один из STP-совместимых коммутаторов, с которого начинается построение дерева.

Выбор корня — процесс определения коммутатора, с которого начнется построение дерева. Сам процесс будет описан ниже. Процесс выполняется при включении протокола на устройстве и инициируется каждый раз при изменении топологии сети.

Стоимость порта — относительная величина, характеризуемая типом порта в коммутаторе (fast ethernet или gigabyte ethernet). Чем меньше стоимость порта, тем он приоритетнее.

Стоимость пути — сумма стоимостей портов от корневого коммутатора до искомого коммутатора.

BPDU (Bridge Protocol Data Units) — основная единица (кадр) обмена информацией в протоколе STP.

Фрейм BPDU имеет следующие поля:

  • Идентификатор версии протокола и алгоритма STA. Коммутаторы должны поддерживать одну и ту же версию протокола STA. Размер – 2 байта.
  • Версия протокола STP. Размер – 1 байт.
  • Тип BPDU. Существует 2 типа BPDU – конфигурационный и уведомление о реконфигурации. Размер – 1 байт.
  • Флаги:

бит 1 является флагом изменения топологии (Topology Change).

бит 8 является флагом Topology Change Acknowledgement (подтверждение смены топологии).

  • Идентификатор корневого коммутатора. Размер – 8 байт.
  • Расстояние до корневого коммутатора. Размер – 4 байта.
  • Идентификатор коммутатора. Размер – 8 байт.
  • Идентификатор порта. Размер – 2 байта.
  • Время жизни сообщения. Измеряется в единицах по 0.5 сек, служит для выявления устаревших сообщений. Размер – 2 байта.
  • Максимальное время жизни сообщения. Если кадр BPDU имеет время жизни, превышающее максимальное, то кадр игнорируется коммутаторами. Размер – 2 байта.
  • Интервал hello. Интервал, через который посылаются пакеты BPDU. Размер – 2 байта.
  • Задержка смены состояний. Минимальное время перехода коммутатора в активное состояние. Размер – 2 байта.

Выборы корня

Для своей работы протокол строит граф (дерево), создание которого начинается с корня (root).

После включения коммутатора в сеть он считает себя корнем и начинает обмениваться BPDU с соседями. В каждом BPDU коммутатор указывает себя в качестве корневого коммутатора. Каждый коммутатор имеет свой уникальный Bridge ID, по которому, собственно, и происходит выбор корневого коммутатора.

Bridge ID содержит следующие два поля:

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

Получив BPDU с наименьшим Bridge ID, коммутатор перестает считать себя корневым и начинает передавать BPDU коммутатора с меньшим Bridge ID (который он считает корневым).

В итоге, корнем становится коммутатор с самим меньшим Bridge ID в сети.

Нужно учесть следующие моменты:

— адрес отправки BPDU является групповым (multicast), что обеспечивает его пропуск неинтеллектуальным оборудованием (под «адресом» имеется в виду mac-адрес);

— расчет Bridge ID идет по следующей формуле:

Bridge priority + MAC;Bridge priority = vlan xxx + 32768 (default cost);Cost — «стоимость портов». По умолчанию равна 32768 (2 в 15 степени);Hello BPDU = root ID + bridge ID + cost;

Очевидно, что в сети с единственным STP-совместимым устройством оно и будет корнем.

Выбранный корень, или назначенный корневой коммутатор (Designated Root Bridge, в соответствии с терминологией стандарта) не несет никакой дополнительной нагрузки — он всего лишь служит отправной точкой для построения топологии, от него будут «расти» все передающие данные соединения коммутаторов между собой.

Построение топологии

Далее для всех остальных мостов в сети определяется корневой порт (Root Port), т.е. ближайший к корневому мосту порт. От других портов, соединенных с корневым мостом непосредственно или через другие мосты, он отличается своим идентификатором — комбинации из его номера и задаваемым администратором приоритетом. У каждого коммутатора может быть только один корневой порт!

Помимо выделенного корневого коммутатора в STP вводится логическое понятие назначенного коммутатора (Designated Bridge) — владелец этого статуса считается главным в обслуживании данного сегмента локальной сети. Статус назначенного коммутатора также выборный и может переходить от одного устройства к другому.

Аналогичным образом вводится логическое понятие выборного назначенного порта (Designated Port, он обслуживает данный сегмент сети), а для него — понятие соответствующей стоимости пути (Designated Cost).

После определения корневого и назначенного портов, все остальные порты блокируются (рис. 2).

Рис. 2

Далее наступает фаза стабильности, характеризуемая следующими условиями:

  • В сети только одно устройство считает себя корнем, а остальные периодически анонсируют его как корень.
  • Корневой мост регулярно посылает на все свои порты пакеты с BPDU. Интервал времени, через который происходит рассылка, называется интервалом приветствия (Hello Time).
  • В каждом сегменте сети имеется единственный корневой порт, через который происходит обмен трафиком с корневым мостом. Он имеет наименьшее значение стоимости пути до корня по сравнению с другими портами в сегменте. При равенстве этой величины в качестве назначенного выбирается порт с наименьшим идентификатором порта (MAC-адрес порта и его приоритет, Bridge ID).
  • BPDU принимаются и отправляются STP-совместимым устройством на всех его портах, даже на тех, которые были «отключены» в результате работы STP. Однако BPDU не принимаются на портах, которые были «отключены» администратором (т.е. те, которые имеют Admin Status: Down).
  • Каждый мост осуществляет пересылку (Forwarding) пакетов только между корневым портом и назначенными портами соответствующих сегментов. Все остальные находятся в блокированном состоянии (Blocking).

Как следует из последнего пункта, STP управляет топологией путем изменения состояния портов, которое может принимать следующие значения:

  • Блокирован (Blocking). Порт заблокирован, однако, в отличие от пользовательских кадров, кадры с пакетами STP (BPDU) принимаются и обрабатываются (но и только).
  • Ожидает (Listening). Первый этап подготовки к состоянию пересылки. В отличие от пользовательских кадров, кадры с пакетами STP (BPDU) принимаются и обрабатываются. Обучения не происходит, так как в этот период в таблицу коммутации может попасть недостоверная информация.
  • Обучается (Learning). Второй этап подготовки к состоянию пересылки. Кадры с пакетами STP (BPDU) принимаются и обрабатываются, а пользовательские кадры мост принимает для построения таблицы коммутации, но не пересылает данные, а понемногу дропает.
  • Передает (Forwarding). Рабочее состояние портов, когда передаются как кадры с пакетами STP, так и кадры пользовательских протоколов.

Таким образом, во время реконфигурации сети (т.е. когда порты мостов находятся в одном из трех состояний — Blocking, Listening или Learning) на данных портах пользовательские кадры не передаются, и сеть работает только на протокол STP.

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

Следует учесть тот факт, что протокол STP работает вне VLAN’ов. Если же вы хотите построить топологию с учетом разбиения на VLAN’ы, то используйте протокол MSTP.

Источник