Перейти к основному содержанию

Боковая панель

Merion Academy

0

Уведомления

Уведомлений нет

Смотреть все

0

Личный кабинет

О пользователе

Оценки

Сообщения

Настройки

Выход

OCT-1

Участники

Значки

Компетенции

Добро пожаловать!

Введение в сетевые технологии

TCP и UDP

Принципы построения коммутируемых сетей

Про VLAN (Virtual Local Area Network)

Про DHCP (Dynamic Host Configuration Protocol)

Работа с маршрутизатором

Протокол динамической маршрутизации EIGRIP (Enhanced Interior Gateway Routing Protocol)

Протокол динамической маршрутизации OSPF (Open Shortest Path First)

Протокол динамической маршрутизации BGP (Border Gateway Protocol)

Говорим про Route Redistribution

Листы контроля доступа (ACL)

Протокол Spanning Tree (STP)

Агрегация по технологии EtherChannel

Настройка VPN (Site-To-Site IPSec, DMVPN)

WLAN (беспроводные сети)

Частный траблшутинг и устранение неисправностей

Финальный тест

Личный кабинет

Домашняя страница

Календарь

Личные файлы

Мои курсы

Сетевой инженер: основы сетевых технологий

Личный кабинет

Мои курсы

OCT-1

Протокол Spanning Tree (STP)

Протокол Spanning Tree (STP)

Печатать книгу

Печатать эту главу

Протокол Spanning Tree (STP)

Протокол Spanning Tree (STP) обеспечивает отсутствие петель в топологии любой сети.

3. Продвинутое руководство по Spanning Tree: Toolkit

Выходим на новый уровень. Для изучения следующей темы вы уже должны хорошо понимать связующее дерево. Связующее дерево (Spanning Tree Protocol STP) — это важная тема. Есть много вещей, которые могут пойти не так, и в этой статье мы рассмотрим ряд инструментов, которые мы можем использовать для защиты нашей топологии связующего дерева.

Для профессионалов

PortFast: Он настроит порт доступа как пограничный порт, поэтому он переходит в режим forwarding немедленно.

BPDU Guard: это отключит (err-disable) интерфейс, который имеет настроенный PortFast, если он получает BPDU.

BPDUFilter: это будет подавлять BPDU на интерфейсах.

Root Guard: это предотвратит превращение соседнего коммутатора в корневой мост, даже если он имеет лучший идентификатор моста.

UplinkFast: мы видели это в статье о связующем дереве. Он улучшает время конвергенции.

BackboneFast: мы также видели это в статье о связующем дереве. Оно улучшает время конвергенции, если у вас есть сбой косвенной связи.

UplinkFast и BackboneFast не требуются для rapid spanning tree, поскольку оно уже реализовано по умолчанию. Мы начнем с BPDUguard:

В топологии выше мы имеем идеально работающую топологию остовного дерева. По умолчанию связующее дерево будет отправлять и получать BPDU на всех интерфейсах. В нашем примере у нас есть компьютер, подключенный на интерфейсе fa0/2 коммутатора B. Есть кто-то, кто с враждебными намерениями мог бы запустить инструмент, который сгенерирует BPDU с превосходящим ID моста. Что же произойдет- так это то, что наши коммутаторы будут считать, что корневой мост теперь может быть достигнут через коммутатор B, и у нас будет повторный расчет связующего дерева. Звучит не очень хорошо, правда?

Можно поставить человека (хакера) в середине топологии для атаки так, чтобы никто не знал. Представьте себе, что хакер подключает свой компьютер к двум коммутаторам. Если хакер станет корневым мостом, то весь трафик от коммутатора А или коммутатора C к коммутатору В будет проходить через него. Он запустит Wireshark и подождет, пока произойдет чудо.

BPDUguard гарантирует, что, когда мы получаем BPDU на интерфейс, интерфейс перейдет в режим err-disable.

Чтобы продемонстрировать работу BPDUguard будем использовать два коммутатора. Настроем интерфейс fa0/16 коммутатора B так, что он перейдет в режим err-disable, если он получит BPDU от коммутатора C.

SwitchB(config)#interface fa0/16
SwitchB(config-if)#spanning-tree bpduguard enable

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

А-а... вот и наш интерфейс.

SwitchB(config-if)#no spanning-tree bpduguard
SwitchB(config-if)#shutdown
SwitchB(config-if)#no shutdown

Избавиться от BPDUguard можно используя команды shut/no shut, чтобы сделать интерфейс снова рабочим.

SwitchB(config)#spanning-tree portfast bpduguard

Вы также можете использовать команду spanning-tree portfast bpduguard. Это позволит глобально активировать BPDUguard на всех интерфейсах, которые имеют включенный portfast.

SwitchB(config)#spanning-tree portfast default

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

Это полезная команда, позволяющая проверить свою конфигурацию. Вы видите, что portfast и BPDUGuard были включены глобально.

BPDUGuard переведет интерфейс в режим err-disable. Кроме того, можно фильтровать сообщения BPDU с помощью BPDUfilter. BPDUfilter может быть настроен глобально или на уровне интерфейса и есть разница:

Глобальный: если вы включите bpdufilter глобально, любой интерфейс с включенным portfast станет стандартным портом.

Интерфейс: если вы включите BPDUfilter на интерфейсе, он будет игнорировать входящие BPDU и не будет отправлять никаких BPDU.

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

Для демонстрации работы BPDUfilter мы будем снова использовать коммутатор B и коммутатор C.

SwitchB(config)#interface fa0/16
SwitchB(config-if)#spanning-tree portfast trunk
SwitchB(config-if)#spanning-tree bpdufilter enable

Он перестанет посылать BPDU и будет игнорировать все, что будет получено.

SwitchB#debug spanning-tree bpdu

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

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

Давайте избавимся от команды BPDUfilter на уровне интерфейса.

SwitchB(config)#spanning-tree portfast bpdufilter default

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

Еще один вариант, с помощью которого мы можем защитить наше связующее дерево, - это использовать RootGuard. Проще говоря, RootGuard позаботится о том, чтобы вы не принимали определенный коммутатор в качестве корневого моста. BPDU отправляются и обрабатываются нормально, но, если коммутатор внезапно отправляет BPDU с идентификатором верхнего моста, вы не будете принимать его в качестве корневого моста. Обычно коммутатор D становится корневым мостом, потому что у него есть лучший идентификатор моста, к счастью, у нас есть RootGuard на коммутатое C, так что этого не произойдет!

Рассмотрим с вами конфигурацию с коммутатором B и коммутатором C.

SwitchB(config)#spanning-tree vlan 1 priority 4096

Давайте убедимся, что коммутатор C не является корневым мостом.

Вот как мы включаем RootGuard на интерфейсе.

SwitchB#debug spanning-tree events
Spanning Tree event debugging is on

Не забудьте включить отладку, если вы хотите увидеть события.

SwitchC(config)#spanning-tree vlan 1 priority 0

Давайте перенастроим коммутатор B, изменив приоритет на наименьшее возможное значение 0 на коммутаторе C. Он теперь должен стать корневым мостом.

Вот так коммутатор B не будет принимать коммутатор C в качестве корневого моста. Это заблокирует интерфейс для этой VLAN.

Вот еще одна полезная команда, чтобы проверить, работает ли RootGuard.

Связующее дерево становится все более безопасным с каждой минутой! Однако есть еще одна вещь, о которой мы должны подумать…

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

LoopGuard

UDLD

Давайте начнем с того, что внимательно рассмотрим, что произойдет, если у нас произойдет сбой однонаправленной связи.

Представьте себе, что между коммутаторами волоконно-оптические соединения. На самом деле имеется другой разъем для передачи и приема. Коммутатор C получает BPDU от коммутатора B, и в результате интерфейс стал альтернативным портом и находится в режиме блокировки.

Теперь что-то идет не так... transmit коннектор на коммутаторе B к коммутатору C был съеден мышами. В результате коммутатор C не получает никаких BPDU от коммутатора B, но он все еще может отправлять трафик для переключения между ними.

Поскольку коммутатор C больше не получает BPDU на свой альтернативный порт, он перейдет в forwarding режим. Теперь у нас есть one way loop (петля в один конец), как указано зеленой стрелкой.

Один из методов, который мы можем использовать для решения нашего однонаправленного сбоя связи — это настройка LoopGuard. Когда коммутатор отправляет, но не получает BPDU на интерфейсе, LoopGuard поместит интерфейс в состояние несогласованности цикла и заблокирует весь трафик!

Мы снова будем использовать эту топологию для демонстрации LoopGuard.

SwitchA(config)#spanning-tree loopguard default
SwitchB(config)#spanning-tree loopguard default
SwitchC(config)#spanning-tree loopguard default

Используйте команду spanning-tree loopguard по умолчанию, чтобы включить LoopGuard глобально

SwitchB(config)#interface fa0/16
SwitchB(config-if)#spanning-tree portfast trunk
SwitchB(config-if)#spanning-tree bpdufilter enable

В примере у нас нет никаких волоконных разъемов, поэтому мы не сможем создать однонаправленный сбой связи. Однако мы можем смоделировать его с помощью BPDUfilter на интерфейсе SwitchB fa0/16. Коммутатор C больше не будет получать никаких BPDU на свой альтернативный порт, что заставит его перейти в режим переадресации.

Обычно это вызвало бы петлю, но, к счастью, у нас есть настроенный LoopGuard. Вы можете увидеть это сообщение об ошибке, появляющееся в вашей консоли. Проблема решена!

SwitchC(config-if)#spanning-tree guard loop

Если вы не хотите настраивать LoopGuard глобально, вы т можете сделать это на уровне интерфейса.

Другой протокол, который мы можем использовать для борьбы с однонаправленными сбоями связи, называется UDLD (UniDirectional Link Detection). Этот протокол не является частью инструментария связующего дерева, но он помогает нам предотвратить циклы.

Проще говоря, UDLD — это протокол второго уровня, который работает как механизм keepalive. Вы посылаете приветственные сообщения, вы их получаете, и все прекрасно. Как только вы все еще посылаете приветственные сообщения, но больше их не получаете, вы понимаете, что что-то не так, и мы блокируем интерфейс.

Убедитесь, что вы отключили LoopGuard перед работой с UDLD. Мы будем использовать ту же топологию для демонстрации UDLD.

Существует несколько способов настройки UDLD. Вы можете сделать это глобально с помощью команды udld, но это активирует только UDLD для оптоволоконных линий связи! Существует два варианта для UDLD:

Normal (default)

Aggressive

Когда вы устанавливаете UDLD в нормальное состояние, он помечает порт как неопределенный, но не закрывает интерфейс, когда что-то не так. Это используется только для того, чтобы «информировать» вас, но это не предотвратит циклы.

Агрессивный - это лучшее решение, когда пропадает связь с соседом. Он будет посылать кадр UDLD 8 раз в секунду. Если сосед не отвечает, интерфейс будет переведен в режим errdisable.

SwitchB(config)#interface fa0/16
SwitchB(config-if)#udld port aggressive
SwitchC(config)#interface fa0/16
SwitchC(config-if)#udld port aggressive

Мы будем использовать коммутатор B и C, чтобы продемонстрировать UDLD. Будем использовать агрессивный режим, чтобы мы могли видеть, что интерфейс отключается, когда что-то не так.

Если вы хотите увидеть, что UDLD работает, вы можете попробовать выполнить отладку.

Теперь самое сложное будет имитировать однонаправленный сбой связи. LoopGuard был проще, потому что он был основан на BPDUs. UDLD запускает свой собственный протокол уровня 2, используя собственный MAC-адрес 0100.0ccc.сссс.

SwitchC(config)#mac access-list extended UDLD-FILTER
SwitchC(config-ext-macl)#deny any host 0100.0ccc.cccc
SwitchC(config-ext-macl)#permit any any
SwitchC(config-ext-macl)#exit
SwitchC(config)#interface fa0/16
SwitchC(config-if)#mac access-group UDLD-FILTER in

Это творческий способ создавать проблемы. При фильтрации MAC-адреса UDLD он будет думать, что существует сбой однонаправленной связи!
Вы увидите много отладочной информации, но конечным результатом будет то, что порт теперь находится в состоянии err-disable.
Вы можете проверить это с помощью команды show udld.

LoopGuard и UDLD решают одну и ту же проблему: однонаправленные сбои связи.

Они частично пересекаются, но есть ряд различий, вот общий обзор:

LoopGuard

UDLD

Настройки

Глобально/на порту

Глобально (для оптики)/на порту

VLAN?

Да

Нет, на порту

Автосохранение

Да

Да, но вам нужно настроить errdisable timeout.

Защита от сбоев STP из-за однонаправленных связей

Да - нужно включить его на всех корневых и альтернативных портах

Да - нужно включить его на всех интерфейсах.

Защита от сбоев STP из-за сбоев программного обеспечения (нет отправки BPDU)

Да

Нет

Защита от неправильного подключения (коммутационный оптический приемопередающий разъем)

Нет

Да

Есть еще одна последняя тема, которую хотелось бы объяснить, это не протокол связующего дерева, но речь идет о избыточных ссылках, поэтому я оставлю ее здесь. Это называется FlexLinks.

Вот в чем дело: при настройке FlexLinks у вас будет активный и резервный интерфейс. Мы настроим это на коммутаторе C:

Fa0/14 будет активным интерфейсом.

Fa0/16 будет интерфейс резервного копирования (этот блокируется!).

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

SwitchC(config)#interface fa0/14
SwitchC(config-if)#switchport backup interface fa0/16

Именно так мы делаем интерфейс fa0/16 резервной копией интерфейса fa0/14.

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

Проверьте нашу конфигурацию с помощью команды show interfaces switchport backup. Вот и все, что нужно было сделать. Это интересное решение, потому что нам больше не нужно связующее дерево. Ведь в любой момент времени активен только один интерфейс.

SwitchC(config)#interface f0/14
SwitchC(config-if)#shutdown

Давайте закроем активный интерфейс.

Вы можете видеть, что fa0/16 стал активным. Вот и все.

Теги:

Spanning Tree Protocol

STP

LoopGuard

BPDUguard

BPDUfilter

RootGuard

◄ Тестирование по блоку "Листы контроля доступа (ACL)"

Перейти на...

Перейти на...
Как проходить курс
ИТ термины
Как делать лабораторные работы (Cisco Packet Tracer)
10 нужных инструментов для сетевого администратора
Как проходить тесты
Объявления
1. Модель OSI – это просто!
2. Маршрутизатор. Коммутатор. Хаб. Что это и в чем разница?
3. Что такое LAN и чем отличается от WAN?
4. Что такое IP - адрес и можно ли по нему кого-то вычислить?
5. Что такое MAC - адрес и как его узнать?
6. TCP и UDP – в чем разница?
7. Ethernet на пальцах - что это?
8. Что такое инкапсуляция данных в сети?
9. DNS сервер - что это и как работает?
10. Разбиение сети на подсети: VLSM
11. Address Resolution Protocol - что это?
12. NAT на пальцах: что это?
13. Введение: IPv6 - это просто
14. Что такое VPN и как он обходит блокировки?
15. Режимы передачи данных в сетях
16. Сегментация сети – почему это важно?
17. Что такое витая пара и как ее обжать?
18. Иерархическая модель сети от Cisco
19. Консоль, Терминал, Telnet и SSH - что это и зачем нужно?
20. Про операционную систему Cisco IOS
21. Интерфейс командной строки Cisco IOS
22. Структура команд Cisco IOS
23. Troubleshooting в Cisco IOS
24. Типы сетевых атак
25. QoS в сетях
Рассмотрение моделей TCP/IP и OSI в действии
Тестирование по блоку "Введение в сетевые технологии"
Протоколы TCP/IP 4 уровня: TCP и UDP
Популярные приложения TCP/IP
Установление и прекращение TCP соединения
Нужно знать: про TCP и UDP
Закрепим знания тестом по TCP и UDP
Принципы коммутации и маршрутизации
Тестирование по блоку "Принципы построения коммутируемых сетей"
VLAN (Virtual Local Area Network)
Настройка сетей VLAN
Настройка маршрутизации между сетями VLAN с использованием конфигурации ROS (Router-on-a-Stick)
Тестирование по блоку "VLAN (Virtual Local Area Network)"
Все, что вам нужно знать про DHCP
Настройка DHCP на оборудовании Cisco
Пример настройки DHCPv6
Настройка DHCP Snooping и Dynamic Arp Inspection на Cisco
Траблшутинг DHCP на оборудовании Cisco
Настройка протокола DHCP с помощью команд Cisco IOS
Тестирование по блоку "DHCP (Dynamic Host Configuration Protocol)"
Базовая конфигурация маршрутизатора
Настройка статических маршрутов
Настройка NAT на Cisco
Port Forwarding: теория и настройка Cisco
Тестирование по знаниям работы с маршрутизатором
EIGRIP (Enhanced Interior Gateway Routing Protocol)
Полное руководство по EIGRP в PDF
Базовая настройка протокола EIGRP для IPv4
Тестирование по Протоколу динамической маршрутизации EIGRIP
OSPF (Open Shortest Path First)
Настройка базового протокола OSPFv2 для одной области
Поиск и устранение неполадок в работе OSPFv2 для одной области
Настройка OSPFv2 для нескольких областей
Протокол динамической маршрутизации OSPF (Open Shortest Path First)
BGP (Border Gateway Protocol)
Полное руководство по BGP в PDF
Тестирование по знаниям BGP
Перераспределение маршрутов (Route redistribution)
Тестирование по знаниям Route Redistribution
Основы IPv4 Access Control Lists
Соответствие пакетов в IP ACL
Wildcard в ACL: бинарные обратные маски
Стандартные листы контроля доступа (ACL)
Расширенные листы контроля доступа (Extended ACL)
ACL check - анализ списков доступа сетевого оборудования Cisco
Настройка стандартных именованных ACL-списков
Настройка расширенных ACL-списков
Тестирование по блоку "Листы контроля доступа (ACL)"
Тестирование по блоку "Протокол Spanning Tree (STP)"
Настройка EtherChannel на Cisco
Настройка EtherChannel на Cisco с минимальным даунтаймом
Устранение неисправностей EtherChannel
Настройка EtherChannel
Поиск и устранение неполадок в работе EtherChannel
Тестирование по блоку "Агрегация по технологии EtherChannel"
Настройка Site-To-Site IPSec VPN на Cisco
Настройка DMVPN на оборудовании Cisco
Настройка сетей VPN (дополнительно)
Итоговый тест по теме "Настройка VPN (Site-To-Site IPSec, DMVPN)"
Сравнение проводных и беспроводных сетей
Топологии беспроводных сетей
Анатомия защищенного соединения в беспроводных сетях
TKIP, CCMP и GCMP. Про безопасность Wi-Fi
Тест по WLAN (беспроводные сети)
Траблшутинг NAT/PAT на Cisco
Устранение неисправностей DHCP на Cisco
FHRP траблшутинг на Cisco
Траблшутинг Network Management Protocols
Сброс пароля на коммутаторах и маршрутизаторах Cisco
Troubleshooting в Cisco IOS
Проверка и отладка настроек NAT
Тестирование по знаниям траблшутинга и устранения неисправностей
Финальный тест
Сертификат
Обратная связь

Тестирование по блоку "Протокол Spanning Tree (STP)" ►

Пропустить Оглавление

Оглавление

1. Протокол Spanning Tree – самое важное

2. Полный обзор RSTP (Rapid Spanning Tree)

3. Продвинутое руководство по Spanning Tree: Toolkit

4. Протокол MST: Multiple Spanning Tree

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

Собеседники

Выбранные сообщения:
1

×

Собеседники

0

Настройки

Собеседники

Запросы

0

Нет контактов

Нет запросов на добавление в контакты

Запрос на добавление в контакты отправлен

Личное пространство

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

Delete for me and for everyone else

Блок

Разблокировать

Удалить

Добавить

Удалить

Удалить

Отправить запрос на добавление в контакты

Принять и добавить в контакты

Отказаться

OK
Отмена

Помеченные

()

Нет помеченных разговоров

Группа

()

Нет групповых разговоров

Личное

()

Нет личных разговоров

Собеседники

Собеседники отсутствуют

Загрузить больше

Сообщения

Загрузить больше

Нет результатов

Поиск пользователей и сообщений

Приватность

Вы можете ограничить круг лиц, которые могут отправлять вам сообщения

Принимать сообщения от:

Только мои контакты

Мои контакты и любой в моих курсах

Настройка уведомлений

Основные

Использовать Enter для отправки

Удалить выбранные сообщения

Отправить запрос на добавление в контакты

Вы заблокировали этого пользователя

Разблокировать пользователя

Вы не можете отправить сообщение этому пользователю

Смотреть все

Вы зашли под именем Выход)

OCT-1

Сводка хранения данных
Скачать мобильное приложение
Политики