Как отключить stp на роутере
Обновлено: 21.11.2024
Протокол связующего дерева (STP) определяется стандартом IEEE 802.1D-1988. STP создает одно связующее дерево внутри сети. Такой режим оказался полезным для поддержки приложений и протоколов, в которых кадры доставляются не по порядку или как дубликаты.
Топология называется Spanning Tree, потому что она построена как топология активной пересылки без петель, что означает топологию древовидного типа, охватывающую всю сеть.
Связующее дерево создается в процессе обмена блоками данных протокола моста (BPDU) между мостами в локальной сети. Алгоритм связующего дерева работает двумя способами:
- Вычисление свободной от циклов части топологии, называемой связующим деревом, с помощью автоматизированного процесса. Топология динамически сокращается до связующего дерева путем объявления определенных избыточных портов на коммутаторе и перевода их в состояние блокировки.
- Если возможно, автоматическое восстановление после сбоя коммутатора, который может привести к разделению расширенной локальной сети, путем перенастройки связующего дерева для использования избыточных путей.
По умолчанию режим RSTP включен на каждом порту коммутатора. Это предотвращает образование петель уровня 2 в сети.
Как настроить STP?
Шаг 1. Настройка STP
- Войдите в режим глобальной конфигурации:
- Как упоминалось ранее, устройство находится в режиме RSTP. Перейти в режим STP:
- Связующее дерево включено на всех портах коммутатора по умолчанию. Если параметр отключен, включите его для STP:
- По умолчанию все устройства имеют одинаковый приоритет корневого моста, 32768 (8000 в шестнадцатеричном формате), поэтому устройство с наименьшим MAC-адресом становится корневым мостом. Если устройство должно быть корневым мостом, установите для приоритета корневого моста значение ниже 32768. Введите значение в диапазоне от 0 до 61440. Если вы введете число, не кратное 4096, коммутатор будет округлять номер вниз:
Шаг 2. Настройка Root Guard
Функция Root Guard отвечает за проверку того, является ли порт, для которого она включена, назначенным портом. Если порт с включенным Root Guard получает вышестоящий BPDU, он переходит в состояние прослушивания (для STP) или в состояние отбрасывания (для RSTP и MSTP).
- Войдите в режим настройки интерфейса для портов коммутатора, на которых должен быть включен Root Guard:
- Включите функцию Guard Root для следующих портов:
- Вернуться в режим Privileged Exec:
Шаг 3. Проверка конфигурации STP
Отобразите конфигурацию связующего дерева для устройства и подтвердите новый приоритет корневого моста (Bridge Priority):
Обратите внимание, что идентификатор моста имеет следующую форму: 8192xxxxxxxxxxxx, а другие идентификаторы соответствуют тому же шаблону. Этот идентификатор состоит из двух частей: 8192 — приоритет корневого моста устройства в шестнадцатеричном формате, а xxxxxxxxxxxx — MAC-адрес устройства.
Кевин! Хорошая статья. У меня есть вопрос, касающийся вашего примера, где у вас есть 2 основных коммутатора 4096 и 8192. Какой приоритет моста должен быть у других распределительных коммутаторов, подключающихся к ядру? Распределительные коммутаторы настроены так же, как и ядро, в том смысле, что их два, и все хосты связаны.
Кроме того, следует ли увеличивать приоритет моста при добавлении дополнительных коммутаторов распределения. Я сделал это и достиг максимального допустимого идентификатора моста. хех
Я думаю, все распределительные коммутаторы должны иметь одинаковый идентификатор моста, скажем, 12 288 и 16384?
Тем не менее, я облажался и сделал основной коммутатор 1 идентификатор моста равным 0. Это нужно исправить.
Кевин Дули говорит:
Привет, Эдди. Первая цель — добиться того, чтобы в нормальных условиях корень находился в ядре. Вторая цель состоит в том, чтобы гарантировать, что в случае сбоя этого переключателя вы выбрали преемника, который имеет смысл. Как правило, остальные коммутаторы можно оставить с приоритетом по умолчанию 32768. Приоритеты двух основных коммутаторов установлены таким образом, что один всегда будет корневым мостом, а другой будет выполнять функции только в случае отказа первого. Если у вас произошел сбой, затронувший оба основных коммутатора, то сеть, вероятно, полностью фрагментирована, и выбор лучшего корневого моста для каждой из изолированных частей сети может не дать большого преимущества.
Исключение: если у вас 3 или 4 основных коммутатора, вы, вероятно, захотите включить их в свою схему. Но даже здесь я, вероятно, не стал бы слишком беспокоиться о приоритетах переключения распределения.
Здравствуйте, Кевин! Пытаюсь найти информацию о локальной сети с несколькими коммутаторами, но без избыточности и работающим связующим деревом PVST+. Если мой корневой мост будет удален, я увижу, что восходящие интерфейсы перестанут передавать кадры, пока выбран новый корневой мост.
Кевин Дули говорит:
Короткий ответ: «вероятно». Конечно, если корневой мост находится между двумя другими коммутаторами, вы потеряете связь между этими устройствами.Предполагая, что корневой мост находится в конце длинной гирляндной цепочки коммутаторов, самый важный вопрос заключается в том, как долго продлится отключение. И в этом случае я бы рекомендовал провести тест в нерабочее время и измерить его в вашей сети.
Экземпляры Vlan сопоставлены
——— —————————————————————
0 1-4094
—— ———————————————————————-
Следующие L2 VLAN представлены на соответствующих коммутаторах:
Основные коммутаторы: 32,33,35 ,36,38,39,40,41,136,138,139,142,1000,2000 (приоритет одного из основных коммутаторов равен 0 для экземпляра mst 0, так что это корневой мост)
Первый коммутатор L2: 32,33,35,40, 41 142
Второй коммутатор L2: 32,33,36,38,39,41,138,139,142
Итак, мой вопрос:
1. Должен ли я передавать все уникальные VLAN на все взаимосвязанные магистральные порты (между CORE и между CORE-L2), даже если они не используются на нескольких коммутаторах.
2. Поскольку оба основных коммутатора подключены через гигабитный порт, трафик от Core2 к Core1 проходит через один коммутатор L2, который является портом Tengig. (Как решить эту проблему, должен ли я вручную настроить низкую стоимость для порта, подключенного между ядром, если да, то чем я могу это сделать? нужна помощь с командами)
Кевин Дули говорит:
Вы должны определить, что произойдет в случае отказа одного канала или одного коммутатора. В вашем примере не похоже, что трафик, который исходит от одного из ваших коммутаторов L2, когда-либо пройдет через другой коммутатор L2, прежде чем достигнет ядра. Если восходящая линия связи с ядром 1 не работает, вместо этого будет использоваться путь к ядру 2. Тогда, пока магистраль между Core 1 и Core 2 поддерживает все VLAN, все в порядке.
Руководство из этой статьи предназначено для более общих случаев, когда вы можете быть вынуждены пройти по каналу, который не передает требуемую VLAN. Например, рассмотрим сеть из 4 коммутаторов с 2 ядрами (CORE1 и CORE2) и 2 коммутаторами распределения (DIST1 и DIST2). Если эти 4 коммутатора соединены в квадрат (CORE1 -> DIST1 -> DIST2 -> CORE2 -> CORE1), то есть два пути от DIST2 к CORE1: DIST2->CORE2->CORE1 и DIST2->DIST1->CORE1. В этом случае восходящий канал от DIST1 -> CORE1 должен содержать все сети VLAN, которые использует DIST2, поскольку в некоторых случаях трафик должен использовать этот путь. Кроме того, все соединительные линии и все коммутаторы должны включать все сети VLAN, даже те, которые не требуются непосредственно на этом коммутаторе.
Итак, несмотря на то, что с вашей сетью сейчас все в порядке, в будущем могут возникнуть проблемы, если вы добавите больше коммутаторов и ссылок. Если у вас есть один экземпляр MSTP, я настоятельно рекомендую включить все сети VLAN во все соединительные линии между коммутаторами.
Спасибо за ваш пост. У меня небольшой вопрос о переносе корневого моста со старого коммутатора, работающего под управлением SPT, на новый основной коммутатор, работающий под управлением RSTP.
Можете ли вы сказать мне, сколько времени займет преобразование, когда я изменю приоритет на новом коммутаторе, это будет 2 секунды или до 45 секунд?
Еще раз спасибо.
Джон
Кевин Дули говорит:
Хороший вопрос. Однако проблема не так проста, как кажется. Все коммутаторы в вашей сети должны быть преобразованы из STP в RSTP. Если вы преобразуете некоторые коммутаторы, то вы в основном получите область RSTP, которая граничит с областью STP для обратной совместимости. Таким образом, коммутаторы, которые все еще используют STP, узнают о новом корневом мосте с использованием STP, что займет больше времени, в то время как коммутаторы, использующие RSTP, быстро обнаружат новый корневой мост.
Протокол связующего дерева (STP) – это метод динамического расчета "наилучшего" связующего дерева компьютерной сети с петлями или без них. По определению дерево не содержит циклов.
STP работает на уровне 2 (канал передачи данных) модели OSI. То есть он работает на уровне Ethernet и совершенно не связан с протоколами динамической маршрутизации на основе IP, такими как RIP, OSPF или OLSR, которые могут учитывать факторы, которые могут быть желательны при выборе конкретного пути, такие как пропускная способность, надежность, задержка и т. д. .
Петли компьютерной сети могут функционировать как резервные. Если какое-либо соединение в петле потеряно, остальная часть оборудования других петлей остается подключенной.
В ячеистых сетях без включенного STP может возникать петля. Необходимость в STP возникает, когда ваш маршрутизатор используется в ячеистой сети с несколькими ретрансляторами с поддержкой WDS или в одноранговой сети с несколькими одноранговыми соединениями.
Если ваш маршрутизатор не используется ни в одном из приведенных сценариев, то, скорее всего, STP не нужен. Поэтому рекомендуется отключить его, поскольку недавно подключенные порты находятся в состоянии обучения примерно 50 секунд, прежде чем перейти в неблокирующий режим. Это может привести к тайм-ауту некоторых служб на клиентском устройстве (например, DHCP).
Предупреждение. Пользователям Comcast Cable следует всегда отключать этот параметр и оставлять его отключенным, так как STP конфликтует с DHCP-клиентом маршрутизатора при подключении к глобальной сети.
Включите STP следующим образом.
Проверьте это так. (wrt/Networking.asp)
[править] Тонкая настройка STP
Теперь исходное состояние: три маршрутизатора. Основной MAC:xxxxxxxxxxxx Asus RT-N16 под управлением dd-wrt.v24-14929_NEWD-2_K2.6_big Media MAC:xxxxxxxxxxx1 WRT-310Nv1 под управлением dd-wrt.v24-14929_NEWD-2_K2.6_std_nokaid_small Mid MAC: xxxxxxxxxxx2 WRT-310Nv1 с dd-wrt.v24-14929_NEWD-2_K2.6_std_nokaid_small
Main Имеет соединение WAN с PPPoE DSL Link1 = соседи WDS Main-Mid Link2 = соседи WDS Mid-Media Link3 = соседи WDS Media-Main
Теперь мой ASCII-арт:
По умолчанию DD-WRT предоставляет единственную кнопку на веб-странице для включения/выключения связующего дерева
У меня возникла проблема с DHCP и изменениями топологии связующего дерева, и я подозревал, что STP работает неправильно. В частности, мой клиент будет ассоциироваться с точкой доступа (маршрутизатор dd-wrt), но не получит адрес, назначенный DHCP. Любопытно, что проводные порты на задней панели всегда работали нормально. Эта проблема возникала периодически и сильно беспокоила меня, поскольку я мог просто отключить Link3 и не иметь никаких проблем в течение нескольких месяцев.
Поскольку он основан на Linux, я поискал в Google связующее дерево, ubuntu, linux и различные комбинации и обнаружил, что Linux использует brctl, начиная с ядра 2.2.
Я обнаружил, что ни один из элементов управления не отображается во внешнем интерфейсе DD-WRT, поэтому я подключился к устройствам по SSH. (не стесняйтесь использовать telnet или использовать команду запуска в пользовательском интерфейсе для дальнейшего)
сначала я проверил, доступен ли brctl с помощью этой команды. Код:
Понял!! теперь к делу brctl поставляется со следующими опциями, которые я объясню через мгновение. Код:
Использование: brctl [команды] команды:
Я осмотрелся, чтобы посмотреть, какие мосты доступны. Код:
Что говорит мне о том, что у меня есть один мост с именем br0
Давайте потратим немного времени, чтобы интерпретировать то, что мы видим, идентификатором моста является MAC-адресом вашего локального интерфейса моста с «8000». впереди (8000.xxxxxxxxxxxx) назначенный корень — это MAC-адрес корневого моста (босса связующего дерева) с «8000». впереди (8000.xxxxxxxxxxx1) корневой порт — это порт, используемый для связи с корневым мостом (в данном случае 3, который является wds0.1) стоимость пути — это совокупная стоимость пути к корню (насколько далеко вы находитесь от корня мост) максимальный возраст и максимальный возраст моста — это максимальный возраст топологии STP, который по умолчанию составляет 20 секунд. ожидание перед пересылкой пакетов на существующий мост, что дает новому устройству время выяснить, что происходит, прежде чем оно начнет говорить с сетью. MAC, когда пакет пересекается, затем он сохранит это отношение MAC/порт, поэтому, когда пакет приходит, предназначенный для MAC, коммутатор затем перенаправит пакет обратно на порт, где последний раз было известно, что это приветственный таймер, таймер tcn, топология Чанг e timer и gc timer — все текущие значения в живых таймерах. flags — снова живое значение, содержащее последнее активное значение флага (мой пример показывает, что было обнаружено изменение топологии)
Посмотрите на оставшуюся информацию: имена портов (vlan1, eth1, wds0.1, wds0.2), физический порт (число, следующее за именами портов «1, 2, 3, 4»), порт идентификаторы (8001–8004), состояние (переадресация), стоимость пути (все порты Ethernet по умолчанию имеют значение 100, мы вернемся к этому чуть позже) и куча таймеров и прочего.
Корневой мост выглядит как мой промежуточный маршрутизатор, а стоимость пути по умолчанию везде.
Мы повторили вышеописанную процедуру на двух других устройствах, чтобы убедиться, что все они считают, что корнем является промежуточный маршрутизатор, и что стоимость всех путей одинакова. в моем случае были. Таким образом, STP должен был вычислить расстояние до корневого моста через link3 как 200 (стоимость пути link3 добавляется к стоимости пути link 2). Чего в данном случае не произошло, потому что у меня изначально был отключен link3 на медиа-маршрутизаторе. (чтобы это работало)
первое, что я хотел сделать и предлагаю всем причастным. Подведите корневой мост к WAN-маршрутизатору, Main Router, в данном случае к новейшему и самому мощному устройству ASUS RT-N16
Коммутатор все равно не будет перенаправлять широковещательный трафик ни на один из них, поэтому лучше отключить STP и включить bpduguard.
ЕСЛИ — у вас есть коммутатор уровня 3 (например, 3750x),
И — вы вводите команду «no switchport», чтобы преобразовать интерфейс в явно маршрутизируемый интерфейс (например, /30 между двумя маршрутизаторами),
ТОГДА - вы не сможете подавать команды на отключение STP, потому что коммутатор сделает это за вас.
ИНАЧЕ - здесь есть драконы. Оставьте STP в покое. Многие пришли до вас и погибли, рискуя своими решениями сделать STP «лучше».
Рекомендуется следующее:
для перехода с базового STP на RSTP или MST.
глобально включить 'spanning-tree portfast по умолчанию'
глобально включить 'spanning-tree bpduguard по умолчанию'
отключить динамический транкинговый протокол (DTP)/настроить интерфейсы с режимом switchport (доступ/транк)
не тыкайте в дракона.
Считается ли лучшей практикой отключать STP на портах, к которым подключен конечный хост или маршрутизатор?
Нет. Не отключать STP может быть единственным абсолютным правилом в сети.
Коммутатор все равно не будет перенаправлять широковещательный трафик ни на один из них
Это точно будет. Широковещательный трафик по определению выходит на все порты. Мне кажется, вы здесь путаете некоторые понятия.
так что лучше отключить STP и включить bpduguard.
BPDUGuard является частью процесса STP. Отключение STP отключает BPDUGuard. Все, что делает Portfast, — это предполагает, что порт должен быть в определенном состоянии, и переводит его заранее — вам все еще нужен процесс STP для приема и ответа на любые полученные BPDU.
Задумайтесь: если STP отключен, на какие BPDU отвечает BPDUGuard? Если у вас есть петля, вы получаете трафик, который вы ранее отправляли, но если вы не отправляете BPDU, как вы можете реагировать на их получение на неправильном порту?
Только если вы абсолютно уверены, что никто никогда не отключит конечный хост и не сделает звонок.
В чем вы не можете быть уверены.
STP должен быть почти *всегда* включен. Теперь есть некоторые функции связующего дерева, которые вам, возможно, потребуется изменить, но сам протокол следует применять глобально, за исключением очень специфических причин. Защита BPDU — это функция STP.
И небольшая деталь, но коммутатор по-прежнему будет перенаправлять широковещательный трафик им обоим.
для подтверждения коммутатор будет отправлять широковещательный трафик на все порты, независимо от того, являются ли они конечными хостами или маршрутизаторами, но эти устройства будут отбрасывать широковещательные пакеты. это правильно?
Считается ли лучшей практикой отключать STP на портах, к которым подключен конечный хост или маршрутизатор?
Нет. Это было бы ужасной практикой.
STP должен быть включен глобально.
Режим STP должен быть настроен вручную для (R)PVST или MST.
Portfast должен быть включен по умолчанию на всех портах.
(Portfast не будет включен сам на магистральных портах по умолчанию)
BPDUGuard должен быть включен на всех портах, которые подходят для включения на них portfast.
Расширенный системный идентификатор STP должен оставаться включенным.
Конкретный приоритет моста STP должен быть ВРУЧНУЮ назначен для всех VLANS в соответствии с вашей топологией STP, если только вам не нужны разные приоритеты в разных VLAN.
Коммутатор все равно не будет перенаправлять широковещательный трафик ни на один из них, поэтому лучше отключить STP и включить bpduguard.
Как вы думаете, почему коммутатор не будет пересылать широковещательный пакет через интерфейс, к которому подключен хост?
Как вы думаете, почему коммутатор не будет пересылать широковещательный пакет через интерфейс, к которому подключен маршрутизатор?
Глобальное отключение STP на ЛЮБОМ коммутаторе почти никогда не является правильным подходом к решению проблемы.
Однако отключение STP на паре определенных интерфейсов может быть вполне допустимым подходом к решению проблемы.
Глобальное отключение STP — это то, что делает новичок или гребаный дебил, потому что они не понимают STP.
Новички проходят специальное обучение, чтобы помочь им понять, почему это была плохая идея, и как правильно внедрить STP.
Дебилы получают административные консультации, чтобы мы могли избавиться от них.
В 99 случаях из 100 проблемы с протоколом STP в локальной сети возникают из-за того, что протокол STP не был настроен вручную для согласования с определенной топологией.
Кто-то устанавливает переключатель как корневой, используя макрос IOS, а все остальные переключатели оставляют по умолчанию.
Если с корнем случится что-то плохое, теперь у вас хаос.
Приоритеты моста от 0 до 65536 дают вам 16 "уровней" коммутаторов.
Если мы проигнорируем 0 и положим 4096 в карман на черный день, получится 14 уровней ручных приоритетов моста.
Если вы правильно спроектируете архитектуру STP и назначите эти приоритеты, STP практически никогда больше не будет проблемой в вашей среде.
Прочитайте пост, который я написал пару лет назад, на который /u/fatoms любезно дал ссылку, чтобы узнать больше.
Читайте также: