Spanning tree cost не работает
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
Состояния портов:
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 коммутатор.
Что такое и как настроить протокол 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.
Все теперь при падении одного линка, время схождения между коммутаторами будет 1 секунда, очень быстро, как видите RSTP, гораздо лучше STP и настраивается одной командой.
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Траблшутинг STP (Spanning tree protocol)
Часть.2 4 кейса по проблемам с STP
Предыдущая статья этого цикла:
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Следующая статья этого цикла:
Case #1
На рисунке представлена топология, состоящая из трех коммутаторов, и между коммутаторами у нас есть два канала связи для резервирования. Коммутатор А был выбран в качестве корневого моста для VLAN 1. Когда вы имеете дело со связующим деревом, лучше всего нарисовать небольшую схему сети и записать роли интерфейса для каждого коммутатора (назначенного, не назначенного/альтернативного или заблокированного). Обратите внимание, что одним из каналов связи между коммутатором A и коммутатором C является интерфейс Ethernet (10 Мбит). Все остальные каналы — это FastEthernet.
Мы используем команду show spanning-tree для проверки ролей интерфейса для коммутатора A и коммутатора C. Вы видите, коммутатор C выбрал свой интерфейс Ethernet 0/13 как корневой порт, а интерфейс FastEthernet 0/14 выбран в качестве альтернативного порта. Это не очень хорошая идея. Это означает, что мы будем отправлять весь трафик вниз по линии 10 Мбит, в то время как 100 Мбит не используется вообще. Когда коммутатор должен выбрать корневой порт он выберет его следующим образом:
- Выбирается интерфейс, который имеет самую низкую стоимость для корневого моста.
- Если стоимость равная, выбирается наименьший номер интерфейса. Обычно стоимость интерфейса Ethernet выше, чем Fast Ethernet, поэтому он должен выбрать интерфейс FastEthernet.
Почему коммутатор выбрал интерфейс Ethernet 0/13?
Мы видим, что интерфейс Ethernet 0/13 и FastEthernet0/14 имеют одинаковую стоимость. Затем коммутатор С выберет самый низкий номер интерфейса, который является interface Ethernet 0/13.
После проверки конфигурации интерфейса, видно, что кто-то изменил стоимость интерфейса на 19 (по умолчанию для интерфейсов FastEthernet).
Уберем настройки команды cost.
После того, как мы убрали настройки команды cost, видно, что состояние порта изменилось. FastEthernet 0/14 теперь является корневым портом, а стоимость интерфейса Ethernet 0/13 равна 100 (это значение по умолчанию для интерфейсов Ethernet). Задача решена!
Извлеченный урок: убедитесь, что интерфейс, которым вы хотите сделать в качестве корневого порта, имеет наименьшую стоимость пути.
Case #2
Итак, новый сценарий. Все интерфейсы равны (FastEthernet). Коммутатор A является корневым мостом для VLAN 10, и после проверки ролей интерфейса мы находим следующее:
Хм, интересно. Коммутатор A является корневым мостом, а FastEthernet 0/17 был выбран в качестве резервного порта. Это то, что вы видите каждый день. Коммутатор B выбрал корневой порт, а все остальные интерфейсы являются альтернативными портами. Мы ничего не видим на коммутаторе С.
Мы видим, что Коммутатор A и Коммутатор B используют связующее дерево для VLAN 10. Коммутатор C, однако, не использует связующее дерево для VLAN 10. В чем может быть проблема?
Конечно, неплохо проверить, работают ли интерфейсы на коммутаторе C или нет (но, конечно, это то, что вы уже изучили и сделали в первой статье).
Интерфейсы выглядят хорошо. VLAN 10 активна на всех интерфейсах коммутатора C. Это означает, что остовное дерево должно быть активным для VLAN 10.
Давайте еще раз посмотрим на это сообщение. Это говорит о том, что остовное дерево для VLAN 10 не существует. Есть две причины, по которым можно увидеть это сообщение:
- Для VLAN 10 нет активных интерфейсов.
- Spanning-дерево было отключено для VLAN 10.
Мы подтвердили, что VLAN 10 активна на всех интерфейсах коммутатора C, поэтому, может быть, связующее дерево было отключено глобально? SwitchC(config)#spanning-tree vlan 10
Вот так выглядит лучше! Теперь связующее дерево включено для VLAN 10 и работает . проблема решена! Эта проблема может показаться немного странной, но она появляется ее время от времени в реальном мире. Сценарий, который мы рассмотрели раньше, — это событие из реальной жизни, где клиент, которому поставщик беспроводной связи отключил остовное дерево для интерфейсов, которые подключаются к точке беспроводного доступа. Ниже то, что клиент ввел на коммутаторе:
В интерфейсе они набрали no spanning-tree vlan 10 , но как вы видите, что они оказались в режиме глобальной конфигурации. Нет команды для отключения остовного дерева на интерфейсе, подобного этой, поэтому коммутатор думает, что вы ввели глобальную команду для отключения остовного дерева. Коммутатор принимает команду отключения остовного дерева для VLAN 10 и возвращает вас в режим глобальной конфигурации. проблема решена!
Извлеченный урок: проверьте, включено ли связующее дерево.
Case #3
Давайте продолжим по другому сценарию! Та же топология. наш клиент жалуется на плохую работу. Начнем с проверки ролей интерфейсов:
Посмотрите на картинку выше. Видите ли вы, что интерфейс FastEthernet 0/16 на коммутаторе B и коммутаторе C обозначены? На Коммутаторе A все интерфейсы обозначены. Как вы думаете, что произойдет, когда один из наших коммутаторов переадресует трансляцию или должен передать кадр? Правильно! У нас будет цикл . Обычно в этой топологии интерфейсы FastEthernet 0/16 и 0/17 на коммутаторе C должны быть альтернативными портами, поскольку коммутатор C имеет худший ID моста. Так как они оба обозначены, мы предполагаем, что Коммутатор C не получает BPDU на этих интерфейсах.
Так почему же остовное дерево провалилось здесь? Здесь важно помнить, что связующему дереву требуются блоки BPDU, передаваемые между коммутаторами для создания топологии без петель. BPDU могут быть отфильтрованы из-за MAC access-lists, VLAN access-maps или из-за spanning-tree toolkit?
Ни на одном из коммутаторов нет VLAN access maps.
Нет списков доступа.
Нет port security. как насчет команд, связанных с остовным деревом?
Вот что-то есть!Фильтр BPDU был включен на интерфейсах FastEthernet 0/16 и 0/17 коммутатора B. Из-за этого коммутатор C не получает BPDU от коммутатора B.
Удалим настройки фильтра BPDU.
Теперь вы видите, что FastEthernet 0/16 и 0/17 являются альтернативными портами и блокируют трафик. Наша топология теперь без петель. проблема решена!
Извлеченный урок: убедитесь, что блоки BPDU не заблокированы и не отфильтрованы между коммутаторами.
Case #4
Новая топология. Коммутатор A был выбран в качестве корневого моста для VLAN 10. Все интерфейсы являются FastEthernet каналами.
После использования команды show spanning-tree vlan 10 вот, что мы видим. Все интерфейсы одинаковы, но по какой-то причине коммутатор B решил выбрать FastEthernet 0/16 в качестве корневого порта. Разве вы не согласны с тем, что FastEthernet 0/13 должен быть корневым портом? Стоимость доступа к корневому мосту ниже, чем у FastEthernet 0/16.
Используем команду show spanning-tree interface , чтобы проверить информацию о spanning-tree для каждого интерфейса. Как вы можете видеть, существует только связующее дерево для VLAN 1, активное на интерфейсе FastEthernet 0/13 и 0/14.
Есть несколько вещей, которые мы могли бы проверить, чтобы увидеть, что происходит:
Во-первых, всегда полезно проверить, активно ли связующее дерево для определенной VLAN. Можно отключить spanning-tree с помощью команды no spanning-tree vlan X. В этом сценарии связующее дерево активно для VLAN 10, потому что мы можем видеть на FastEthernet 0/16 и 0/17.
Мы знаем, что остовное дерево активно глобально для VLAN 10, но это не значит, что оно активно на всех интерфейсах. Мы можем использовать команду show interfaces switchport, чтобы проверить, работает ли VLAN 10 на интерфейсе FastEthernet 0/13 и 0/14. Это отобразит нам некоторую интересную информацию. Вы видите, что эти интерфейсы оказались в режиме доступа, и они находятся в VLAN 1.
Давайте изменим режим интерфейсов на магистральный, чтобы трафик VLAN 10 мог проходить через эти интерфейсы.
Ну вот, теперь все намного лучше выглядит. Трафик VLAN 10 теперь передается по интерфейсу FastEthernet 0/13 и 0/14, и вы видите, что интерфейс FastEthernet 0/13 теперь выбран в качестве корневого порта. Задача решена!
Извлеченный урок: убедитесь, что VLAN активна на интерфейсе, прежде чем рассматривать проблемы связующего дерева.
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Источник