ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать

“раблшутинг STP (Spanning tree protocol)

„асть.2 4 кейса по проблемам с STP

ћерион Ќетворкс

8 минут чтени€

ѕредыдуща€ стать€ этого цикла:

  1. ”странение неполадок коммутации Cisco

—ледующа€ стать€ этого цикла:

  1. ”странение неисправностей EtherChannel

Case #1

топологи€, состо€ща€ из трех коммутаторов

Ќа рисунке представлена топологи€, состо€ща€ из трех коммутаторов, и между коммутаторами у нас есть два канала св€зи дл€ резервировани€.  оммутатор ј был выбран в качестве корневого моста дл€ VLAN 1.  огда вы имеете дело со св€зующим деревом, лучше всего нарисовать небольшую схему сети и записать роли интерфейса дл€ каждого коммутатора (назначенного, не назначенного/альтернативного или заблокированного). ќбратите внимание, что одним из каналов св€зи между коммутатором A и коммутатором C €вл€етс€ интерфейс Ethernet (10 ћбит). ¬се остальные каналы Ч это FastEthernet.

коммутатор C выбрал свой интерфейс Ethernet 0/13 как корневой порт

ћы используем команду show spanning-tree дл€ проверки ролей интерфейса дл€ коммутатора A и коммутатора C. ¬ы видите, коммутатор C выбрал свой интерфейс Ethernet 0/13 как корневой порт, а интерфейс FastEthernet 0/14 выбран в качестве альтернативного порта. Ёто не очень хороша€ иде€. Ёто означает, что мы будем отправл€ть весь трафик вниз по линии 10 ћбит, в то врем€ как 100 ћбит не используетс€ вообще.  огда коммутатор должен выбрать корневой порт он выберет его следующим образом:

  1. ¬ыбираетс€ интерфейс, который имеет самую низкую стоимость дл€ корневого моста.
  2. ≈сли стоимость равна€, выбираетс€ наименьший номер интерфейса. ќбычно стоимость интерфейса Ethernet выше, чем Fast Ethernet, поэтому он должен выбрать интерфейс FastEthernet.

ѕочему коммутатор выбрал интерфейс Ethernet 0/13?

интерфейс Ethernet 0/13 и FastEthernet0/14 имеют одинаковую стоимость

ћы видим, что интерфейс Ethernet 0/13 и FastEthernet0/14 имеют одинаковую стоимость. «атем коммутатор — выберет самый низкий номер интерфейса, который €вл€етс€ interface Ethernet 0/13.

видно, что кто-то изменил стоимость интерфейса на 19

ѕосле проверки конфигурации интерфейса, видно, что кто-то изменил стоимость интерфейса на 19 (по умолчанию дл€ интерфейсов FastEthernet).

SwitchC(config)#interface Ethernet 0/13
SwitchC(config-if)#no spanning-tree cost 19

”берем настройки команды cost.

”берем настройки команды cost

ѕосле того, как мы убрали настройки команды cost, видно, что состо€ние порта изменилось. FastEthernet 0/14 теперь €вл€етс€ корневым портом, а стоимость интерфейса Ethernet 0/13 равна 100 (это значение по умолчанию дл€ интерфейсов Ethernet). «адача решена!

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

Case #2

¬се интерфейсы равны

»так, новый сценарий. ¬се интерфейсы равны (FastEthernet).  оммутатор A €вл€етс€ корневым мостом дл€ VLAN 10, и после проверки ролей интерфейса мы находим следующее:

 оммутатор A €вл€етс€ корневым мостом

’м, интересно...  оммутатор A €вл€етс€ корневым мостом, а FastEthernet 0/17 был выбран в качестве резервного порта. Ёто то, что вы видите каждый день.  оммутатор B выбрал корневой порт, а все остальные интерфейсы €вл€ютс€ альтернативными портами. ћы ничего не видим на коммутаторе —.

 оммутатор C, однако, не использует св€зующее дерево дл€ VLAN 10

ћы видим, что  оммутатор A и  оммутатор B используют св€зующее дерево дл€ VLAN 10.  оммутатор C, однако, не использует св€зующее дерево дл€ VLAN 10. ¬ чем может быть проблема?

статус интерфейсов коммутатора

 онечно, неплохо проверить, работают ли интерфейсы на коммутаторе C или нет (но, конечно, это то, что вы уже изучили и сделали в первой статье).

VLAN 10 активна на всех интерфейсах коммутатора C

»нтерфейсы выгл€д€т хорошо. VLAN 10 активна на всех интерфейсах коммутатора C. Ёто означает, что остовное дерево должно быть активным дл€ VLAN 10.

остовное дерево дл€ VLAN 10 не существуе

ƒавайте еще раз посмотрим на это сообщение. Ёто говорит о том, что остовное дерево дл€ VLAN 10 не существует. ≈сть две причины, по которым можно увидеть это сообщение:

  • ƒл€ VLAN 10 нет активных интерфейсов.
  • Spanning-дерево было отключено дл€ VLAN 10.

ћы подтвердили, что VLAN 10 активна на всех интерфейсах коммутатора C, поэтому, может быть, св€зующее дерево было отключено глобально? SwitchC(config)#spanning-tree vlan 10

spanning-tree vlan 10

¬от так выгл€дит лучше! “еперь св€зующее дерево включено дл€ VLAN 10 и работает ... проблема решена! Ёта проблема может показатьс€ немного странной, но она по€вл€етс€ ее врем€ от времени в реальном мире. —ценарий, который мы рассмотрели раньше, - это событие из реальной жизни, где клиент, которому поставщик беспроводной св€зи отключил остовное дерево дл€ интерфейсов, которые подключаютс€ к точке беспроводного доступа. Ќиже то, что клиент ввел на коммутаторе:

SwitchC(config)#interface fa0/1
SwitchC(config-if)#no spanning-tree vlan 10
SwitchC(config)#

¬ интерфейсе они набрали no spanning-tree vlan 10, но как вы видите, что они оказались в режиме глобальной конфигурации. Ќет команды дл€ отключени€ остовного дерева на интерфейсе, подобного этой, поэтому коммутатор думает, что вы ввели глобальную команду дл€ отключени€ остовного дерева.  оммутатор принимает команду отключени€ остовного дерева дл€ VLAN 10 и возвращает вас в режим глобальной конфигурации... проблема решена!

»звлеченный урок: проверьте, включено ли св€зующее дерево.

Case #3

“а же топологи€

ƒавайте продолжим по другому сценарию! “а же топологи€... наш клиент жалуетс€ на плохую работу. Ќачнем с проверки ролей интерфейсов:

интерфейс FastEthernet 0/16 на коммутаторе B и коммутаторе C обозначены

ѕосмотрите на картинку выше. ¬идите ли вы, что интерфейс 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?

SwitchA#show vlan access-map
SwitchB#show vlan access-map
SwitchC#show vlan access-map

Ќи на одном из коммутаторов нет VLAN access maps.

SwitchA#show access-lists
SwitchB#show access-lists
SwitchC#show access-lists

Ќет списков доступа...

Ќет списков доступа port security

Ќет port security... как насчет команд, св€занных с остовным деревом?

‘ильтр BPDU был включен на интерфейсах

¬от что-то есть!‘ильтр BPDU был включен на интерфейсах FastEthernet 0/16 и 0/17 коммутатора B. »з-за этого коммутатор C не получает BPDU от коммутатора B.

SwitchB(config)#interface fa0/16
SwitchB(config-if)#no spanning-tree bpdufilter enable
SwitchB(config-if)#interface fa0/17
SwitchB(config-if)#no spanning-tree bpdufilter enable

”далим настройки фильтра BPDU.

FastEthernet 0/16 и 0/17 €вл€ютс€ альтернативными портами и блокируют трафик

“еперь вы видите, что FastEthernet 0/16 и 0/17 €вл€ютс€ альтернативными портами и блокируют трафик. Ќаша топологи€ теперь без петель... проблема решена!

»звлеченный урок: убедитесь, что блоки BPDU не заблокированы и не отфильтрованы между коммутаторами.


Case #4

Ќова€ топологи€

Ќова€ топологи€.  оммутатор A был выбран в качестве корневого моста дл€ VLAN 10. ¬се интерфейсы €вл€ютс€ FastEthernet каналами.

show spanning-tree vlan 10

ѕосле использовани€ команды show spanning-tree vlan 10 вот, что мы видим. ¬се интерфейсы одинаковы, но по какой-то причине коммутатор B решил выбрать FastEthernet 0/16 в качестве корневого порта. –азве вы не согласны с тем, что FastEthernet 0/13 должен быть корневым портом? —тоимость доступа к корневому мосту ниже, чем у FastEthernet 0/16.

show spanning-tree interface

»спользуем команду show spanning-tree interface, чтобы проверить информацию о spanning-tree дл€ каждого интерфейса.  ак вы можете видеть, существует только св€зующее дерево дл€ VLAN 1, активное на интерфейсе FastEthernet 0/13 и 0/14.

≈сть несколько вещей, которые мы могли бы проверить, чтобы увидеть, что происходит:

активно ли св€зующее дерево дл€ определенной VLAN

¬о-первых, всегда полезно проверить, активно ли св€зующее дерево дл€ определенной VLAN. ћожно отключить spanning-tree с помощью команды no spanning-tree vlan X. ¬ этом сценарии св€зующее дерево активно дл€ VLAN 10, потому что мы можем видеть на FastEthernet 0/16 и 0/17.

остовное дерево активно глобально дл€ VLAN 10

ћы знаем, что остовное дерево активно глобально дл€ VLAN 10, но это не значит, что оно активно на всех интерфейсах. ћы можем использовать команду show interfaces switchport, чтобы проверить, работает ли VLAN 10 на интерфейсе FastEthernet 0/13 и 0/14. Ёто отобразит нам некоторую интересную информацию. ¬ы видите, что эти интерфейсы оказались в режиме доступа, и они наход€тс€ в VLAN 1.

SwitchB(config)#interface fa0/13
SwitchB(config-if)#switchport mode trunk

SwitchB(config-if)#interface fa0/14
SwitchB(config-if)#switchport mode trunk

ƒавайте изменим режим интерфейсов на магистральный, чтобы трафик VLAN 10 мог проходить через эти интерфейсы.

FastEthernet 0/13 теперь выбран в качестве корневого порта

Ќу вот, теперь все намного лучше выгл€дит. “рафик VLAN 10 теперь передаетс€ по интерфейсу FastEthernet 0/13 и 0/14, и вы видите, что интерфейс FastEthernet 0/13 теперь выбран в качестве корневого порта. «адача решена!

»звлеченный урок: убедитесь, что VLAN активна на интерфейсе, прежде чем рассматривать проблемы св€зующего дерева.

¬ следующей статье мы расскажем, как траблшутить проблемы с EtherChannel.