vk_logo twitter_logo facebook_logo googleplus_logo youtube_logo telegram_logo telegram_logo

#227 Властелин колец. STP 2

Дата публикации: 17.05.2005
Количество просмотров: 38049

Чтоб добрым быть,
я должен быть жестоким.

Разное.

На Урал пришла весна. Да, эта дежурная фраза появляется в майском обзоре уже 4-й год. Но что же делать, если за окном поют птицы, стоят покрытые новыми светло-зелеными листьями тополя, и видна огромная белая арка цветущей черемухи? А чуть в стороне - розоватые шапки яблонь, скрывающие безобразие липово-кленового бурелома, не успевшего покрыться защитным ковром травы и лопухов...

Все же провайдинг со всей его hi-tech'ной романтикой - по сравнению с пробуждающейся природой - очень скучная материя... Тем хуже для природы!

Для начала надо отдать должное особенностям национальной фильтрации почты. Причем, увы, национальной без кавычек (письмо прислал Николай).

Failed to deliver to '---@enimp.kiev.ua'
SMTP module(domain @195.2.83.173:enimp.kiev.ua) reports:
host enimp.kiev.ua says:
550 5.7.0 Your server IP address is in the Russia database, bye
Original-Recipient: rfc822;<---@enimp.kiev.ua>
Final-Recipient: rfc822;<---@enimp.kiev.ua>
Action: failed
Status: 5.0.0

Вот так. Коротко и незатейливо. Не какой-то там spamcop, не SORBS, - "All Russia - is a spam". Остается только узнать, это буйная фантазия сисадмина, или е-ксенофобия начала входить в моду?

Причем есть опасение, что это тенденция... С одним из корреспондентов, который поставил себе аж австралийский стоп-лист (reynolds.net.au), я не смог связаться даже через gmail. Отгораживаются админы страны кенгуру не только от дикомедвежьей России, но и от вполне метропольного google...

Так что скоро маразм с фильтрацией email достигнет вполне традиционных размеров. Вот, как на этой фотографии (прислал Магадан Тимофеев):

Забавное

Показан стенд пункта коллективного доступа в интернет одного из сибирских почтовых отделений связи. Смешно? А по мне так фильтрация "по стране" выглядит куда забавнее...

 


Пройдемся по ссылкам.

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

Технический тайм-аут... Таблица производительности маршрутизаторов Cisco на 2004 год.

И опять интриги. Отец-основатель покинул свою компанию. Событие прошло почти незаметно - но значение его для Екатеринбургского рынка интернет-услуг будет вполне серьезнейшим.
Если сюда добавить, что местная Электросвязь к осени собирается начать внедрение "чего-то Стримоподобного", плюс продолжающееся укрупнение Ethernet-провайдеров...
К зиме 2005 года Екатеринбургский интернет-рынок будет и не узнать...

Взрослая война за взрослые деньги. Битва за широкополосных пользователей в разгаре. Американские телефонные компании воспряли духом, и решили отобрать у операторов КТВ кусок рынка. Успехи относительно небольшие, но телефонисты стараются. Самое интересное, что даже в US эксперты считают нишу широкополосного доступа малоконкурентной. Что уж тут говорить про Россию...

"Стрим" перегнал dial-up. Видать знатно сократили количество пользователей коммутируемого доступа домашние сети, раз результат достигнут так быстро.

Впрочем, умалять заслуги Стрима то же будет неправильно - инициатива на московском рынке уже в его руках. Даже по внедрению новых услуг - того самого конька, на котором могли (да, уже именно могли) "выехать" относительно небольшие Ethernet-провайдеры. Достаточно посмотреть на сервис Stream-tv. Что характерно - Стрим на видео зарабатывает свои "законные" 2 бакса/фильм. А большинство московских домашних сетей - не хочет, и не может (уж не знаю, что тут первично).

Грустные фотографии сгоревшего оборудования.

Интим в "Электронной Москве". Источник конечно "желтый". Но проект "электронизации", похоже, более серьезного отношения и не заслужил...

 


Обновление в разделах

Сетевые полезности

Как обойтись без оптического кросса? Вот решение:

Корпуса

Внутренности

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

 

 


Так выглядела антенна резервного радиолинка. Что с ней стало весной - никто не знает.

абонент сама

Прислал Тимур

 


Встроили грозозащиту в хаб

встроили грозозащиту в хаб

 

Прислал Александр, Компьютерная компания "S-ПРИНТ" г. Тюмень

Властелин колец. STP.

Введение.
Алгоритм работы STP.
Параметры STP.
Практический пример.
Дополнительные функции.
Развитие STP.
Заключение.

Введение.

Как известно, грамотный дизайн отказоустойчивой сети подразумевает использование резервирования каналов. Наиболее подходящей для этого является кольцевая топология. Однако, в случае построения сети по технологии Ethernet в чистом виде, множественные связи между узлами не предусмотрены и могут привести к полной неработоспособности всей конструкции. Например, в случае попадания в кольцо широковещательного пакета, он будет передаваться активным оборудованием по кругу бесконечно, обеспечивая предельную загрузку. Для предотвращения подобных ситуаций был создан специальный протокол Spanning Tree Protocol (STP).

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

Рисунок 1

Алгоритм работы STP.

Spanning Tree Protocol переводится как "протокол покрывающего дерева". Кратко опишем алгоритм его действия:

  1. В сети выбирается один корневой коммутатор (Root Bridge). Вообще-то, согласно техническому стандарту нужно использовать слово "мост", однако, опуская незначительные различия, будем оперировать термином "коммутатор", что гораздо привычнее.

     

  2. Далее каждый отличный от корневого коммутатор просчитывает кратчайший путь к корневому. Соответствующий порт называется корневым портом (Root Port). Он у каждого коммутатора только один!

     

  3. После этого для каждого сегмента сети просчитывается кратчайший путь к корневому коммутатору. Коммутатор, через который проходит этот путь, становиться назначенным для этой сети (Designated Bridge). Непосредственно подключенный к сети порт коммутатора – назначенным портом.

     

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

Рисунок 2

На примере коммутатор A является корневым (Root Bridge) для всей сети. Его порт номер 1 является назначенным (Designated Port) для сегмента X, а порт номер 2 – назначенным для сегмента Y. Коммутатор B имеет корневой порт (Root Port) номер 1 и блокирует порт номер 2. Коммутатор C использует порт номер 2 как корневой и порт номер один в качестве назначенного порта для сегмента Z.

Параметры STP.

Получив некоторое представление об STP, перейдем к рассмотрению основных параметров этого протокола.

Технология STP предполагает конфигурирование некоторых дополнительных параметров на коммутаторах. Наиболее важными из них являются: приоритет коммутатора (Bridge Priority) и стоимость пути на каждом порту (Port Cost).

Приоритет коммутатора (Bridge Priority) имеет размер 2 байта и учитывается при выборах корневого коммутатора – тот, у кого приоритет ниже, становится корневым.

Стоимость пути на каждом порту (Port Cost) учитывается при вычислении кратчайшего пути до корня.

Функционирование STP базируется на использовании передачи специальных Ethernet пакетов Bridge Protocol Data Unit (BPDU). Они представляют собой оговоренные стандартом мультикастовые Ethernet фреймы (с MAC адресом назначения 01:80:C2:00:00:00).

Пакет BPDU состоит из множества полей, важнейшими из которых являются: идентификатор корневого коммутатора (Root Bridge Identifier RBID), расстояние до корня (Root Path Cost RPC), идентификатор текущего коммутатора (Bridge Identifier BID), идентификатор текущего порта (Port Identifier), время жизни сообщения (Message Age), максимальное время жизни сообщения (Max Age) и время приветствия (Hello Time).

Идентификатор коммутатора (Bridge Identifier BID) имеет размер 8 байт и состоит из MAC адреса и приоритета (BID = MAC + Priority) и описывает текущий коммутатор, через который прошел пакет BPDU.

Идентификатор корневого коммутатора (Root Bridge Identifier RBID) формируется так же как и BID (RBID = MAC + Priority), только характеризует корневой коммутатор и переносится неизменным в отдельном поле BPDU.

Расстояние до корня (Root Path Cost RPC) описывает расстояние до корневого коммутатора в условных единицах по конкретному пути.

Максимальное время жизни сообщения (Max Age) учитывается следующим образом: если пакет BPDU имеет время жизни (Message Age) превышающее максимальное, то он игнорируется.

Время жизни (Message Age) служит для выявления устаревших сообщений. Корневой коммутатор выпускает BPDU с Message Age равным нулю. Каждый коммутатор по пути следования BPDU увеличивает Message Age на единицу и ретранслирует дальше. Кроме того, входящее значение Message Age на порту внутри коммутатора является стартовым для таймера, который производит ежесекундное увеличение своего значения. В случае превышения таймером параметра Max Age информация о BPDU уничтожается, так как считается, что она устарела. Обычно задолго до устаревания приходит новый пакет BPDU и происходит сброс значения таймера до Message Age из нового BPDU. И так далее.

Время приветствия (Hello Time) характеризует интервал, через который посылаются пакеты BPDU.

STP управляет топологией путем изменения состояния портов, которое может принимать следующие значения: прослушивание (Listening), обучение (Learning), коммутация (Forwarding), блокирование (Blocking).

Блокированный порт (Blocking) принимает и обрабатывает только пакеты BPDU. Все остальные отбрасываются.

Состояние прослушивания (Listening) является промежуточным между блокированием и обучением.

Порт в режиме обучения (Learning) начинает принимать все пакеты и на основе MAC адресов источников строить таблицу коммутации. Однако коммутация (продвижение) на данном этапе не производится.

Режим коммутации (Forwarding) является штатным режимом продвижения всех пакетов.

Практический пример.

Для закрепления материала рассмотрим подробно работу протокола STP на следующем примере. Предположим, имеется сетевая топология из трех коммутаторов A, B, C. Коммутаторы связаны между собой через разделяемые сетевые сегменты X, Y и Z.

Рисунок 3

Сконфигурируем их следующим образом: приоритет коммутатора A установим 8192, приоритет B и C по 32768. Стоимость портов 1 и 2 коммутатора B установим 100. Стоимость портов 1 и 2 коммутатора C установим 50.

Рисунок 4

После включения STP (или коммутаторов с включенным STP) начинаются выборы корневого коммутатора. Все коммутаторы начинают рассылать BPDU с идентификатором корневого коммутатора в качестве которого вначале считают себя. После того, как коммутатор получает BPDU с идентификатором корневого коммутатора меньшим, чем он сам, он перестает считать себя корневым. В итоге выборов корневым становится коммутатор с наименьшим идентификатором. Мы этого намеренно добивались для коммутатора A, установив его приоритет заведомо меньше, чем у B и C. Корневой коммутатор в сети – единственный. Желательно, чтобы им становился наиболее мощный коммутатор ядра сети.

Непосредственно после выборов корневой коммутатор начинает генерировать (передавать) на всех своих портах BPDU с определенным периодом (период можно настраивать, обычно это 1-2 секунды). Все остальные коммутаторы только ретранслируют получаемые от корневого BPDU, изменяя в них только некоторые параметры (например, стоимость пути до корня).

Рисунок 5

Таким образом, BPDU от корневого коммутатора достигают всех коммутаторов в сети. В нашем случае корневой коммутатор A посылает в сторону B и C на портах 1 и 2 пакеты BPDU, содержащие RBID=[MAC A + A Priority] и RPC = 0, так как A является корневым и следовательно путь до корня от самого A равен 0. Коммутатор B при получении на порту 1 BPDU от A добавляет входную стоимость порта (которая равна 100) к RPC, содержащейся в BPDU (0). Коммутатор B запоминает стоимость пути к корню через порт 1 (RPC = 100) и посылает в сторону C пакет BPDU с RBID=A и RPC=100. Коммутатор C получает от A BPDU с RBID A, RPC=0 через порт 2 и BPDU от B с RBID = A , RPC=100 через порт 1. Коммутатор С добавляет к полученным RPC свои входные стоимости портов и в итоге получает RPC через порт 1 = 150 и RPC через порт 2 = 50. Он выбирает путь к корню с наименьшей стоимостью (а это RPC=50 через порт 2) и в соответствии с этим назначает корневой порт – 2. Тот же коммутатор С посылает в сторону B BPDU с RBID=A и RPC=50. Коммутатор B уже имеет информацию о достижении корня (порт 1, RPC=100) и, получив BPDU от С (RBID=A и RPC=50), и добавив к нему свою входную стоимость (100), выполняет несложный выбор – корневым (с наименьшим RPC=100) становится порт номер 1.

Рисунок 6

После выбора корневых портов коммутаторами решается какой коммутатор (Designated Bridge) и его порт (Designated Port) будет обслуживать каждый конкретный сегмент сети. Это происходит аналогично выбору корневых портов – для каждого сегмента просчитывается кратчайший путь до корня.

Рисунок 7

Последним этапом работы STP является блокирование на всех коммутаторах портов, не являющихся корневыми или назначенными. Заметим, что блокировка STP работает только для передаваемых данных – BPDU через блокируемые порты пропускаются и линк будет по-прежнему активным.

Рисунок 8

Дополнительные функции.

Кроме основной задачи построения беспетлевой топологии STP решает еще одну дополнительную – изменение времени хранения MAC адресов в таблицах коммутаторов в случае изменения состояния портов. Происходит это следующим образом: коммутатор, на котором произошло изменение (например, отключился и снова включился порт), посылает в сторону корневого специальный BPDU Topology Change Notification (TCN). Корневой после его получения рассылает TCN для всех коммутаторов и они изменяют время хранения MAC адресов в своих таблицах с целью обеспечения коммутации пакетов с учетом возможных изменений (например, на порту изменился MAC адрес клиента, а коммутатор по умолчанию продержит соответствующую запись в таблице слишком долго).

Развитие STP.

Дальнейшим развитием STP явилось появление таких протоколов как RSTP, PVSTP и MSTP.

Rapid STP (RSTP) характеризуется значительными усовершенствованиями STP, среди которых необходимо отметить уменьшение времени сходимости и более высокую устойчивость.

Per Vlan STP (PVSTP) в соответствии с названием расширяет функционал STP для использования виланов. В рамках данного протокола в каждом вилане работает отдельный экземпляр STP.

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

Заключение.

В заключение приведем описание работы STP, ориентированное на практическое применение при разработке сетевых топологий:

 

  1. Во всей сети выбирается ОДИН корневой мост. Это делается по наименьшему BID. BID=MAC+BRIDGE PRIORITY. По умолчанию Priority=32768, поэтому при равных приоритетах выбирается коммутатор с меньшим MAC адресом.

    Отсюда вывод: если требуется, чтобы коммутатор стал корневым - нужно сделать его приоритет наименьшим среди всех других коммутаторов.

     

  2. КАЖДЫЙ коммутатор анализирует ВСЕ возможные варианты связи и просчитывает самый кратчайший путь (то есть СУММАРНУЮ стоимость пути) до корневого коммутатора. Порт, через который это достигается становится корневым. Он ОДИН у каждого коммутатора. Если стоимости пути равны (например два параллельных линка между коммутаторами), то используется дополнительный параметр – Port ID, в который входит Port Priority.

    Вывод: если необходимо, чтобы конкретный линк связывал данный коммутатор с корневым – необходимо на конкретном порту получить наименьшую стоимость пути до корня. Это достигается изменением параметра "стоимость" на портах коммутаторов.

     

  3. Для КАЖДОГО сегмента сети просчитывается кратчайший путь до корневого коммутатора. Коммутатор, через который этот путь проходит, становится назначенным коммутатором, а его порт, соединенный с данным сегментом, – назначенным портом. Выбор назначенного порта в каждом сегменте происходит по наименьшей стоимости пути или, при равных стоимостях, - по наименьшему Bridge ID.

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

     

  4. Все порты не являющиеся Root или Designated – блокируются. Главное не забывать, что блокировка по STP не означает отсутствие физического линка! Блокирование касается только передаваемых данных, а BPDU должны передаваться безпрепятственно.

Автор Эдуард Афонцев

Анонс

 

  • Фактор времени (зарисовка на свободную тему);
  • Борьба с провайдерами глазами клиента;
  • Оптика на крыше;
  • Веселая сеть;
  • Конвертеры-зомби (видео);
  • Зарисовки узлов разных провайдеров. Вечная тема (много фотографий гарантировано);
  • Традиционный пункт - ссылки на интересные места Сети. Присылайте письма - они очень нужны для обзоров. Обязательно сообщайте, нужна ли Ваша подпись, ссылка, или лучше обойтись без нее;
  • В "ужастиках" - сразу несколько материалов - узел в туалете, зацементированная антенна, прокладка витой пары по крыше.
От редакции: если у вас есть чем поделиться с коллегами по отрасли, приглашаем к сотрудничеству
Ссылка на материал, для размещения на сторонних ресурсах
/articles/reviews/15455/vlastelin-kolets-stp.html

Обсудить на форуме

Оставлять комментарии могут только зарегистрированные пользователи

Зарегистрироваться