BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/library/books/stp/chapter08/

8. Особенности реализации Spaning Tree в некоторых устройствах различных производителей

Здесь и далее уделяется внимание поддержке LAG'ов - Link Aggregation Group - одного из вариантов, который, в некоторых случаях, может стать приемлемой заменой STP.

8.1. Cisco

Довольно "продвинутые" возможности настройки. Часть может быть использована для защиты от DoS атак. Поддерживается фильтрация STP для эмуляции раздельного STP-дерева на каждый vlan. Эта фирма не зря занимает лидирующие позиции на мировом рынке, однако это не мешает следующим недостаткам: STP во всех устройствах его поддерживающих по умолчанию включен. Имеющиеся наработки на самом деле, скорее всего, не предназначались для защиты от атак. Нет возможности выключить STP на отдельном порту.

Очевидным необходимым правилом для устойчивой к DoS настройке каждого порта будет следование следующему примеру (взято из конфигурации cisco 2924XL):

------------cut-------------
interface FastEthernet0/2
description Any Port Sample
spanning-tree portfast
------------cut-------------

Также заслуживают внимания следующие возможности IOS:

BPDU Guard

В общих чертах эта "фича" позволяет отключить порт, когда на нем появляется устройство, мнящее себя designated root. Предназначено для запрета изменения конфигурации STP Tree без ведома администратора. Спасает только от атаки, включающей фазу перевыборов designated root. Перевыборы же Designated Bridge для некоторого сегмента LAN не отслеживает (в общем случае сложно отличить атаку от нормальной работы, иногда невозможно, см. раздел 15.1). В рамках тематики данной статьи, как и spanning-tree portfast, считаем очень полезной.

Поддерживаются LAGи.

8.2. Avaya (бывш. Lucent)

В серии коммутаторов cajun (cajun P120, P330(R), P220, P550(R), P880) заявлена поддержка 802.1d, причем на моделях P550/P880 заявлена поддержка ST per VLAN, при этом в учебнике курса "Cajun Campus Training" отдельно отмечено, что поддержка ST per vlan не совместима с реализацией ST у других производителей. Интересно чем? :) Однако далее пишется, что не смотря на эту "несовместимость" P550/P880 все-таки работают с 802.1d и 802.1q устройствами других производителей. :) Чудеса в решете. ;)

Впрочем, поддержку STP в Avaya стоит рассмотреть отдельно. Наиболее слабые модели (P120 и ей подобные) поддерживают STP только в рамках спецификации 802.1d, более "продвинутые" (P330 и выше) поддерживают не только спецификацию STP из 802.1d, но и из 802.1q и, самые продвинутые (серии P580 & P882) поддерживают еще одну реализацию Spaning Tree, разработанную avaya, и имеющуюся только на их оборудовании - "Spaning Tree Dual Layer". Грубо говоря, это STP 802.1q + STP 802.1d, одновременно связанные так, что STP-деревья, работающие по алгоритму 802.1d терминируются на тех портах, к которым подключены устройства, не поддерживающие 802.1q. Вообще, у avaya очень большое внимание уделяется поддержке гетерогенных, с точки зрения наличия оборудования разных поставщикови просто возможностей тех или иных "железок", сетей, особенно в моделях 580/582. Собственно Spaning Tree Dual Layer предназначена именно для случая, когда часть коммутаторов не поддерживает STP per VLAN, а выбрасывать их не с руки. Spaning Tree Dual Layer организовано таким образом, что внутренности P580/P882 отслеживают возможные проблемы с STP, работающем по обоим стандартам. Хотя STP Dual Layer является закрытым алгоритмом, который до сих пор (Nov 29 2001) не опубликован avaya, это не освобождает его от всех принципиальных уязвимостей, свойственных STP алгоритму. Наоборот, в силу усложнения протокола без отхода от его принципов, количество потенциальных уязвимостей может быть больше. Также важно, что, начиная с версии ПО 3.2.8, функционирование STP можно отключить на любом порту. Это очень удобно: если вам необходимо предоставлять подключение клиенту поверх LAN, и вы уверены, что STP-колец образоваться не может, то вы можете выключить поддержку STP на границах вашей части LAN и не боятся каких-либо STP-атак извне, по-прежнему пользуясь преимуществами STP внутри доверенной среды своей организации. В общем, не смотря на то, что, например, настроек вроде cisco "bpdu guard" у них нет, Avaya производит в этом отношении довольно приятное впечатление.

Поддерживаются LAGи.

8.3. Intel

Поскольку, в отличие от cisco и avaya, продукция других компаний знакома авторам, в основном, по документации, далее будет идти речь о конкретных моделях (что не отменяет ни одного слова, сказанного о глобальной уязвимости протокола и не делает устройства других компаний менее уязвимыми).

Модель 460T поддерживает STP, однако не поддерживает STP-фильтров для эмуляции отдельного ST-дерева на vlan, что является очевидным минусом и упрощает STP-атаки, не говоря уже просто о неудобствах для обыденной работы администратора сети.

Поддерживаются LAGи.

8.4. HP

Модели HP212M/214M приятно удивили своей резистивностью к STP атакам в конфигурации с настройками по умолчанию - STP disabled. Но на этом приятные сюрпризы закончились - по факту включения STP, коммутатор становится точно так же уязвим, как и все остальные. К тому же он не поддерживает VLAN. Впрочем, низкая стоимость этих моделей подразумевает это.
Если я не ошибаюсь, в этой модели HP есть и еще одна весьма полезная функция -- возможность выключить STP per port.

8.5. 3Com

STP поддерживают многие, если не все, интеллектуальные модели.

Далее речь о коммутаторах 3Com SuperStack и им подобных. Ниже приводится выжимка из документации, доступной по url 5 в разделе 20.1


Коммутатор имеет полностью раздельные системы STP для каждого специфицированного вами VLAN. Каждый VLAN имеет свои Root Bridge, Root Ports и BPDU.
Как показано ранее, производители очень часто выдают желаемое за действительное - поддержка полностью отдельного дерева STP на каждом VLAN - миф.
Помимо этого в 3COM используется резервирование определенных VLAN для нужд управления коммутатором, что накладывает определенные ограничения на функционирование STP в VLAN с определенным номером. Вот перевод одного из абзацев в документации:

Вы не можете использовать VLAN 16 с STP. Также, если вы используете режим AutoSelect VLAN, вы не можете использовать VLAN 15. В этом случае эти VLAN используются для внутренних нужд коммутатора и недоступны.

В числе параметров STP в этих моделях 3COM доступны для просмотра следующие:

Topology Changes
показывает, сколько раз происходило изменение топологии в текущем vlan.
Max Age (6..40)
время (в секундах), которое коммутатор ждет перед началом реконфигурации сети. Если он не получает BPDU в течение этого времени, он пытается начать реконфигурацию.
Designated Root
Bridge Identifier designated Root Bridge.
Hello Time (1..10)
интервал (в секундах) между передачами BPDU коммутатором.
Root Cost
стоимость пути от свитча до Root Bridge.
Forward Delay (4..30)
время (в секундах), которое порты коммутатора проводят в режимах Listening и Learning (см. подраздел 8.5.1).
Root Port
read only - идентификатор Root Port этого коммутатора (когда он не является designated root).
Hold Time
Минимально-допустимый временной интервал (в секундах) между передачами BPDU.
Time Since Topology Change
read only. Время с момента последней смены топологии.
Bridge Priority (0..65535).
Это поле позволяет установить приоритет коммутатора. Меняя это значение, вы меняете шанс коммутатора выиграть выборы Root Bridge. Уменьшение величины увеличивает шанс. Значение по умолчанию 65535.
Bridge Max Age (6..40).
Позволяет установить время (в секундах), которое коммутатор ждет, перед тем как начать реконфигурацию, если он является Root Bridge. Если он не получит BPDU в течение этого времени, он попытается изменить топологию STP. По умолчанию - 20 секунд. Это время должно быть больше или равно 2*(Hello Time + 1) и меньше или равно 2*(Forward Delay - 1).
Bridge Hello Time (1..10).
Позволяет задать временную задержку (в секундах) между передачами BPDU этим коммутатором, когда он является Root Bridge.
Bridge Forward Delay (4..30).
Позволяет задать время (в секундах), которое порты коммутатора проводят в режимах Listening и Learning, когда коммутатор является Root Bridge. По умолчанию 15 секунд (см. подраздел 8.5.1).

8.5.1. Установка параметров STP для порта

Состояния портов (read only):

Disabled
порт в этом состоянии не пересылает пакеты и не участвует в stp.
Listening
порт в этом состоянии готовится к пересылке пакетов, но временно заблокирован, чтобы не создавать петель. В этом состоянии BPDU передаются, принимаются и обрабатываются.
Blocking
в этом состоянии порт не передает пакеты, чтобы предотвратить появление дублирующих путей. Порт учитывается в вычислениях STP, BPDU могут передаваться, приниматься и обрабатываться.
Learning
порт в этом состоянии готовится к пересылке пакетов, но временно заблокирован, чтобы не создавать петель. В этом режиме порт изучает адреса всех не содержащих ошибок пакетов. Порт учитывается в вычислениях STP, BPDU могут передаваться, приниматься и обрабатываться.
Forwarding
порт передает пакеты. BPDU также могут приниматься и обрабатываться.
Designated Port
read only. Показывает Bridge Identifier Designated Bridge Port для портов текущего сегмента.
Designated Root
read only. Идентификатор Root Bridge.
Designated Cost
read only. Стоимость пути от Root Bridge до Designated Bridge Port для портов данного сегмента.
Designated Bridge
read only. Показывает Bridge Identifier Designated Bridge для портов данного сегмента.
Fwd Transition
read only. Сколько раз этот порт переходил из Learning в Forwarding.
Port Enable
(Enable/Disable) - позволяет запретить или разрешить данный порт.
Priority (0..255).
Позволяет задать приоритет порта. Изменяя значение, вы изменяете шанс этого порта стать Root Port. Меньшее значение увеличивает шанс. По умолчанию - 128.
Path Cost (0..65535).
Позволяет задать path cost для порта. Коммутатор автоматически назначает значения path cost по приведенной ниже таблице. Если вы задаете другое значение, автоматическое назначение отключается и вернуть это обратно можно только переинициализацией коммутатора.

Port type Duplex Cost
100BASE-TX/100BASE-FX (VLT) Full
Half
5
12
10BASE-T (VLT) Full
Half
24
25
100BASE-TX/100BASE-FX Full
Half
150
300
10BASE-T Full
Half
650
700

Fast Start
(Enable/Disable) Это поле задает, переходит ли порт сразу в состояние Forwarding, когда к нему присоединяется устройство. Ставьте Enabled, если к порту непосредственно присоединена конечная станция. По умолчанию - Enable.

ВНИМАНИЕ! Если вы поставите порту Fast Start Enable, когда к нему присоединено несколько конечных станций, в сети могут появиться петли.


Как видно из этих выжимок из документации обсуждаемая модель 3COM поддерживает аналог cisco "spanning-tree portfast", что важно в контексте этой статьи.



  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach