Поиск и устранение неисправностей STP
Создана 24.03.2025
Отредактирована 05.04.2025
Отредактирована 05.04.2025
Заключительный обзор посвящён применению информации, представленной в обзоре Концепции протокола STP. Хотя этот раздел и поможет в поиске и устранении проблем STP в реальных сетях, его основная задача - подготовить к ответам на вопросы об STP на экзаменах CCNA.
Затруднения с вопросами о протоколе STP испытывают многие экзаменуемые. Протокол STP использует множества правил, иногда конфликтующих друг с другом. Не обладая достаточным практическим опытом работы с протоколом STP, люди обычно не доверяют собственным ответам. Кроме того, работающим с реальными сетями, вероятно, не часто приходится искать и устранять проблемы протокола STP, поскольку он запущен изначально и хорошо работает со стандартными параметрами конфигурации в малых и средних сетях. Поэтому, прежде чем приступать к сложным вопросам по протоколу STP, следует выработать хорошую стратегию поиска и устранения неисправностей.
Данный раздел содержит обзор правил STP, подчёркивая некоторые важные моменты поиска и устранения неисправностей. В частности, здесь более подробно рассматриваются схемы разрешения конфликтов, используемые протоколом STP при принятии решения. Кроме того, даны некоторые практические рекомендации по ответам на такие экзаменационные вопросы, как "Какой коммутатор является корневым?".
Определение корневого коммутатора
Определить корневой коммутатор STP очень просто, если известны BID всех коммутаторов: достаточно выбрать самое низкое значение. Если приоритеты и MAC-адреса в вопросе указаны отдельно, как это обычно бывает в выводе некоторых команд show, выберите коммутатор с самым низким приоритетом или, в ином случае, с наиболее низким значением MAC-адреса.
Для полной ясности скажем, что протокол STP не использует и не нуждается в схеме разрешения конфликтов для выбора корневого коммутатора. Для последних 48 битов идентификатора BID коммутатор использует свой иникальный MAC-адрес. Поскольку MAC-адреса уникальны (MAC-адрес прошивается непосредственно на заводе, при изготовлении коммутатора), одинаковых BID тоже никогда не будет, следовательно, нет необходимости в схеме разрешения конфликтов.
Экзаменационный вопрос о корневом коммутаторе не может быть столь простым, как список идентификаторов BID, из которых следует выбрать "лучший". Вероятней всего, это будет симлет, подразумевающий ввод любых команд show по вашему выбору или вопрос с несколькими вариантами ответов, содержащих вывод одной или двух команд. Для выяснения остального следует применить алгоритм STP.
Встретив экзаменационный вопрос об использовании эмулятора или содержащий строки вывода, используйте следующую простую стратегию исключения коммутаторов.
Стратегия поиска корневого коммутатора для экзаменационных вопросов
Этап 1. Начните со списка или с диаграммы коммутаторов, считая их все возможными корневыми
Этап 2. Исключите все коммутаторы, у которых есть корневой порт (show spanning-tree, show spanning-tree root), поскольку у корневых коммутаторов их нет
Этап 3. Всегда используйте команду show spanning-tree, поскольку она способна непосредственно идентифицировать локальный коммутатор как корневой, сообщение "This switch is the root" в пятой строке вывода
Этап 4. Всегда используйте команду show spanning-tree root, поскольку она способна косвено идентифицировать локальный коммутатор как корневой, если локальный коммутатор является корневым, столбец Root Port пуст (не указан интерфейс в этом столбце)
Этап 5. В случае симлета, вместо беспорядочных попыток опроса коммутаторов, проследите корневые порты. Например, если начать с коммутатора sw1 и если его порт Gi0/1 является корневы, стоит опросить коммутатор на другом конце канала, подключённого к порту Gi0/1
Этап 6. В случае симлета используйте команду show spanning-tree vlan x на нескольких коммутаторах и запишите корневой коммутатор, а порты RP (Root Port) и DP (Designated Port) позволяют быстро выяснить большинство фактов о протоколе STP. Если возможно, используйте эту стратегию.
Один из этапов этого списка, исключение коммутаторов, обладающих RP, зачастую игнорируют. У корневых коммутаторов нет корневых портов, поэтому любой коммутатор с портом RT может быть исключён из списка возможных корневых коммутаторов данной VLAN. Пример 1 демонстрирует две команды на коммутаторе sw2 в некой локальной сети, подтверждающие наличие у него порта RT. Следовательно, коммутатор sw2 не является корневым.
Пример 1. Исключение коммутатора из возможных корневых на основании наличия корневого порта
Обе команды идентифицируют порт Gi0/2 коммутатора sw2 как его порт RP (Root Port), поэтому, следуя рекомендациям, попробуйте опросить следующий коммутатор на другом конце интерфейса Gi0/2.
Определение корневого порта на некорневых коммутаторах
Определение корневого порта коммутатора в выводе команды show относительно просто. Как показано в примере 1, обе команды, указывают корневой порт локального коммутатора, подтверждая, что это некорневой коммутатор. Куда сложнее экзаменационный вопрос, требующий определить, как коммутаторы выбирают порт RP на основании корневой стоимости каждого пути к корневому коммутатору с применением схем разрешения конфликтов.
Напомним, что у каждого некорневого коммутатора есть один и только один порт RP для каждой VLAN. Для его выбора коммутатор прослушивает поступающие сообщения Hello модуля данных протокола моста (Bridge Protocol Data Unit - BPDU). Для каждого полученного сообщения Hello коммутатор добавляет указанную в нём стоимость к стоимости входящего интерфейса (интерфейса, на котором было получено сообщение Hello). Это суммарное значение - корневая стоимость по данному пути. Побеждает самая низкая корневая стоимость, и локальный коммутатор использует свой локальный порт с наименьшим значением стоимости корневого пути как корневой порт рис. 1.
Рис. 1. Так протокол STP фактически вычисляет стоимость от коммутатора sw3 до корневого коммутатора sw1
Если в экзаменационном вопросе есть схема сети LAN, то, как правило, лучше подходит немного иной способ решения проблемы. Вместо сообщений Hello и всего связанного с ним подойдите к вопросу с другой стороны, выясните сумму всех стоимостей исходящих маршрутов через порты между некорневым и корневым коммутаторами. Повторяя знакомый пример на рис. 1, но с некоторым изменением, рис 2 демонстрирует вычисление корневой стоимости. Обратите внимание, что порт Gi0/1 коммутатора sw3 снова изменил значение стоимости.
Схемы разрешения конфликтов STP при выборе корневого порта
На рис. 2 представлен основной процесс выбора корневого порта коммутатора sw3 путём добавления стоимости исходящих портов, расположенных по всему маршруту от sw3 до корня (sw1). Здесь также представлено равенство стоимосте, это сделанно намеренно, для того чтобы рассмотреть схему разрешения конфликтов.
Рис. 2. Вычисление корневых стоимостей на коммутаторе sw3 заканчивается равенством
Когда коммутатор выбирает свой корневой порт, сначала он выбирает локальный порт с наименьшей корневой стоимостью. При равенстве стоимостей коммутатор выбирает порт, соединяющий с соседом, обладающим более низким значением BID. Эта схема разрешения конфликтов обычно нарушает равенство, но не всегда. Поэтому упомянем три схемы разрешения конфликтов в порядке их применения коммутатором.
- Выбор на основании самого низкого идентификатора соседнего моста.
- Выбор на основании самого низкого приоритета соседнего порта.
- Выбор на основании самого низкого внутреннего номера соседнего порта.
ОБРАТИТЕ ВНИМАНИЕ!
Коммутатор применяет эти три схемы выше для разрешения конфликтов только при равенстве корневых путей рис. 2.
Например, на рис. 2 показано, что коммутатор sw3 не является корневым и что есть два пути доступа к корневому коммутатору с равными корневыми стоимостями 8. Первая схема разрешения конфликтов по самому низкому BID соседа. Значение BID коммутатора sw1 ниже, чем у sw2, поэтому в данном случае коммутатор sw3 выбирает в качестве RP свой интерфейс Gi0/1.
Последние две схемы разрешения конфликтов RP применяются, только если два коммутатора соединены друг с другом несколькими каналами связи, как показано на рис. 3. В этом случае коммутатор получает сообщения Hello на нескольких портах от того же соседнего коммутатора, поэтому их BID совпадают (например sw1 передаёт сообщения Hello через интерфейсы Gi0/1 и Gi0/2).
Рис. 3. Топология для двух последних схем разрешения конфликтов корневого порта
Рис. 4. Топология для двух последних схем разрешения конфликтов корневого порта
В данном конкретном случае корневым становится коммутатор sw1, а коммутатор sw2 должен выбрать свой порт RP. Стоимости маршрута через порты коммутатора sw2 равны (по 4 каждый), поэтому корневая стоимость коммутатора sw2 по каждому пути также будет равна 4. Коммутатор sw1 посылает сообщения Hello по каждому каналу связи с коммутатора sw2, поэтому коммутатор sw2 не может нарушить равенство на основании BID соседа, ведь в обоих случаях это BID коммутатора sw1. Поэтому коммутатор sw2 должен обратиться к двум другим схемам разрешения конфликтов.
ВНИМАНИЕ!
В реальной жизни большинство сетевых инженеров поместили бы эти два канала связи в канал EtherChannel.
Если приоритеты портов равны, что не редко бывает при стандартных значениях, протокол STP полагается на внутренний номер порта соседа. Для идентификации каждого интерфейса коммутаторы Cisco внутренне использует номера. Некорневой коммутатор находит порт соседа с самым низким внутренним номером (указываемом в сообщениях Hello) и выбирает свой RP на основании самого низкого значения.
Коммутаторы Cisco использует вполне очевидную нумерацию, начиная с самого низкого номера, Fa0/1, затем Fa0/2, Fa0/3 - Fa0/24, Gi0/1 и Gi0/2 (на рисунках 3 и 4 представлен 24 портовый коммутатор Cisco серии 2960, 24 порта FastEthernet и 2 порта GigabitEthernet) . Так, у интерфейса Gi0/1 коммутатора sw1 более низкий внутренний номер порта (128.25), чем у интерфейса Gi0/2 (смотрите Пример 2). Коммутатор sw2 узнал бы эти значения из сообщений Hello и использовал бы как RP свой порт Gi0/1.
ВНИМАНИЕ!
Да, и обратите внимание на столбец Prio.Nbr в примере 2, по умолчанию приоритет интерфейса равен 128, но мы видим значения 128.n, где n добавленное сквозное значение от 1 до 26, так как у данного коммутатора всего 26 портов. Если бы коммутатор был 48-ми портовый, и имел бы дополнительные 4 порта uplink'и, то значения были бы от 128.1 до 128.52
Пример 2. Приоритеты внутренних портов на коммутаторах sw1 и sw2
Рекомендации по решению проблем корневого порта на экзамене CCNA
Экзаменационные вопросы о портах RP могут оказаться простыми, если знать, где искать, и если доступен вывод некоторых ключевых команд. Однако, чем более концептуален вопрос, тем чаще придётся вычислять корневую стоимость по каждому пути, сопоставлять их с выводом различных команд show и объединять идеи. Вот несколько рекомендаций о том, как подходить к проблемам STP на экзамене.
Стратегия поиска корневого порта на некорневых коммутаторах для экзаменационных вопросов CCNA
- Если возможно, посмотрите вывод команд show spanning-tree и show spanning-tree root. Обе выводят корневой порт и корневую стоимость (см. пример 1).
- Команда show spanning-tree выводит стоимость в двух местах, корневая стоимость вначале, в разделе о корневом коммутаторе, и стоимость интерфейса внизу, в разделе интерфейса. Но будьте внимательны, стоимость внизу - это стоимость интерфейса, а не корневая стоимость!
- Для задач, в которых придётся вычислить корневую стоимость коммутатора:
- Запомните стандартные значения стоимостей: 100 для 10 Мбит/с, 19 для 100 Мбит/с, 4 для 1 Гбит/с и 2 для 10 Гбит/с.
- Ищите любые случаи команды конфигурации spanning-tree cost на интерфейсе, поскольку она переопределяет стандартную стоимость. Не рассчитывайте на то, что используется стандартная стоимость.
- Если известно, что используется стандартная стоимость, то можно проверить также текущую фактическую скорость. Коммутаторы Cisco выбирают стандартные стоимости STP на основании текущей скорости, а не максимально возможную.
Определение выделенного порта на каждом сегменте LAN
У каждого сегмента сети LAN есть один коммутатор, действующий как выделенный порт (Designated Port - DP) этого сегмента. В сегментах, соединяющих коммутатор с устройством, не использующим протокол STP (например, сегменты, соединяющие коммутатор с компьютером или маршрутизатором), всегда побеждает коммутатор, поскольку это единственное устройство, посылающее в канал связи сообщения Hello. Однако каналы связи с двумя коммутаторами требуют немного больше усилий при обнаружении выделенного порта.
Стратегия поиска выделенного порта для экзаменационных вопросов CCNA
Этап 1. Для коммутаторов, подключённых к тому же сегменту LAN, выделенным портом (DP) на этом канале связи становится коммутатор с самой низкой стоимостью доступа к корневому коммутатору, содержащейся в сообщениях Hello, посылаемых в канал связи.
Этап 2. В случае равенства стоимостей портом DP становится коммутатор с самым низким BID.
Рассмотрим, например, рис. 5, где представлены корневой коммутатор sw1, порты RP и DP, а также наименьшая для каждого коммутатора стоимость доступа к корневому коммутатору через его порт RP.
Коротко рассмотрим сегменты, соединяющие некорневые коммутаторы:
- Сегмент sw2 Gi0/2 « --- » sw4 Gi0/2. У коммутаторов sw2 и sw4 равная корневая стоимость (Cost 4). Коммутатор sw2 выигрывает, поскольку значение его BID лучше (ниже), смотрите рис. 5 и таблицу 1.
- Сегмент sw2 Gi0/1« --- » sw3 Gi0/1. У коммутаторов sw2 и sw3 равная корневая стоимость (Cost 4). Коммутатор sw2 выигрывает, поскольку значение его BID лучше (ниже).
- Сегмент sw3 Gi0/0 « --- » sw4 Gi0/0. У коммутаторов sw3 и sw4 равная корневая стоимость (Cost 4). Коммутатор sw3 выигрывает, поскольку значение его BID лучше (ниже).
Таблица 1. Сравнение BID между коммутаторами
Коммутатор | Корневая стоимость | Bridge ID для VLAN 1 | Integer | Наименьшее значение MAC по 4-х бальной системе, где 1 наименьшее значение |
---|---|---|---|---|
sw1 | | 32769:0c6e.9a26.0000 | 13669172117504 | 1 |
sw2 | Cost 4 Port 1 (Gi0/0) | 32769:0cc2.a8e1.0000 | 14030196506624 | 2 |
sw3 | Cost 4 Port 3 (Gi0/2) | 32769:0ce5.e5ff.0000 | 14181545738240 | 3 |
sw4 | Cost 4 Port 2 (Gi0/1) | 32769:0ceb.1760.0000 | 14203849015296 | 4 |
* так как приоритет для VLAN 1 равен 32769 (priority 32768 sys-id-ext 1), а MAC-адреса различаются, то BID будут разные. В столбце Integer представлен MAC-адрес, но только в целочисленном значении, так как это значение понятно для нас, какой MAC-адрес больше, а какой меньше. Вы можете тоже составить данную сетевую схему, но, возможно ваши MAC-адреса будут отличаться, перевести их в целочисленное значение можно на этом ресурсе.
Рис. 5. Выбор выделенного порта
А теперь изменим стоимость пути к порту Gi0/0 на коммутаторе sw2, для этого испольуйте подкоманду интерфейса spanning-tree cost x, где x стоимость , в нашем случае 8. Посмотрим как изменились роли на интерфейсах некорневых коммутаторах sw2, sw3 и sw4 см. рис. 6
Рис. 6. Выбор выделенного порта при изменении стоимости
Интересно, что коммутатор sw2 сейчас проигрывает выборы и не становится портом DP на каналах связи с коммутаторами sw3 Gi0/1 и sw4 Gi0/2, даже при том, что у него лучшее значение BID (ниже чем у sw3 и sw4). Схема разрешения конфликтов DP действительно использует самый низкий BID, но главным критерием является самая низкая корневая стоимость, а корневая стоимость коммутатора sw2 выше (Cost 8), чем у коммутаторов sw3 и sw4.
Рекомендации по решению проблем выделенного порта на экзамене CCNA
Подробно экзаменационным вопросом о портах RP, вопросы о портах DP могут оказаться простыми, если знать, где искать, и если доступен вывод некоторых ключевых команд. Однако, чем более концептуален вопрос, тем чаще придётся думать о критериях выбора порта DP, сначала корневая стомость конкурирующих коммутаторов, затем лучший BID, если корневые стоимости равны.
Ниже приведено несколько рекомендаций, которые стоит иметь в виду при решении задач о портах DP. Часть рекомендации совпадает с таковыми для задач о портах RP, но для завершённости они приведены тоже.
Рекомендации по решению задач о выделенных портах
- Если возможно, посмотрите в конце вывода команд show spanning-tree список интерфейсов. В столбце Role ищите записи Desg (designated), идентифицирующий все порты DP.
- Выясните корневую стоимость коммутатора непосредственно, используя команду show spanning-tree. Но будьте внимательны! Стоимость упоминается в двух местах, и только вверху, в разделе о корневом коммутаторе, указана корневая стоимость.
- Для задач, в которых придётся вычислить корневую стоимость коммутатора:
- Запомните стандартные значения стоимостей: 100 для 10 Мбит/с, 19 для 100 Мбит/с, 4 для 1 Гбит/с и 2 для 10 Гбит/с.
- Ищите любые случаи команды конфигурации spanning-tree cost на интерфейсе, поскольку она переопределяет стандартную стоимость. Не рассчитывайте на то, что используется стандартная стоимость.
- Если известно, что используется стандартная стоимость, то можно проверить также текущую фактическую скорость. Коммутаторы Cisco выбирают стандартные стоимости STP на основании текущей скорости, а не максимально возможную.
Конвергенция STP
Протокол STP переводит каждый порт RP и DP в состояние перенаправления, а другие порты, не являющиеся ни портом RP, ни DP, блокирует. В таком состоянии они могут оставаться многие дни, недели и месяцы. Но в один прекрасный момент некий коммутатор или канал связи отказывает, или канал связи изменяет скорость (изменяя стоимость STP), или изменяется конфигурация STP. Любое из этих событий может заставить коммутаторы снова запустить свой алгоритм STP, который, в свою очередь, может изменить порты RP и DP.
Причиной конвергенции STP является некое изменение, но не все порты должны изменить своё состояние. Например, перенаправляющий порт, если он всё ещё должен перенаправить, продолжает перенаправлять данные. Блокированный порт остаётся блокированным, если так и должно быть. Но когда порт должен изменить своё состояние, это происходит на основании следующих правил.
Действия при конвергенции STP
- У интерфейсов, остающихся в том же состоянии STP, ничего не изменяется.
- У интерфейсов, переходящих из состояния перенаправления в состояние блокировки, изменение происходит немедленно.
- У интерфейсов, переходящих из состояния блокировки в состояние перенаправления, сначала происходит переход в состояние прослушивания, затем в состояние самообучения, причём каждый на протяжении времени, определённого таймером задержки перенаправления (стандартно 15 секунд), и только затем интерфейс переходит в состояние перенаправления.
Поскольку переход из состояния блокировки в состояние перенаправления требует неких дополнительных этапов, следует быть готовым отвечать на концептуальные вопросы о переходе. Для этого можно повторить материал "Концепции протокола STP".
«-«-«- Назад | Вперед -»-»-» |
.