378.55K
Категория: ИнтернетИнтернет

Spanning Tree (STP, RSTP, MSTP)

1.

Spanning Tree (STP,RSTP,MSTP)
Институт Информационных Технологий
Челябинский Государственный Университет

2.

Петли на канальном уровне
Для обеспечения отказоустойчивости
PC2
PC1
необходимо иметь избыточные линии связи и
устройства.
Однако в Ethernet избыточность (наличие
Switch1
Switch2
петель коммутации) вызывает проблемы:
• Постоянное изменение таблиц адресов
Switch3
При отказе любой линии между
коммутаторами связь между PC1 и
PC2 сохранится
коммутаторов
• Дублирование фреймов
• Зацикливание широковещательных фреймов

3.

Алгоритм Spanning Tree
Алгоритм Spanning Tree позволяет временно
PC2
PC1
заблокировать некоторые порты так, чтобы
превратить граф в дерево
Таким образом петли коммутации
Switch1
Switch2
Switch3
устраняются
Алгоритм был разработан в 1985 году
Радией Перлман

4.

Алгоритм Spanning Tree
1. Выбирается корневой мост –
коммутатор, имеющий наименьший BID

5.

Алгоритм Spanning Tree
2. Каждый некорневой коммутатор
выбирает один корневой порт,
связывающий его с корневым мостом
самым дешевым маршрутом.
В случае совпадения стоимости учитываются
также: BID ближайшего коммутатора,
PortPriority+PortNum ближайшего коммутатора,
собственные PortPriority+PortNum

6.

Алгоритм Spanning Tree
3. Для каждого сегмента сети выбирается
назначенный порт. Коммутатор, которому
принадлежит этот порт становится
назначенным мостом для этого сегмента.
В случае совпадения стоимости учитываются
также: BID коммутатора, PortPriority+PortNum
Сегмент (выделено зеленым) – связная
часть сети, не включающая в себя мосты

7.

Алгоритм Spanning Tree
4. Порты, которые не получили роль
корневых или назначенных, блокируются
(на рисунке имеют оранжевую индикацию)
5. PROFIT

8.

Протокол STP
• Коммутаторы обмениваются BPDU
(Bridge Protocol Data Unit) сообщениями
• Существует 2 типа BPDU:
Configuration (0x00) и TCN (0x80)
• Configuration BPDU корневой мост
рассылает своим соседям. Те, получив
BPDU меняют некоторые поля и
рассылают своим соседям, и т.д.
• Каждый раз MessageAge
увеличивается на 1. Когда он станет
равным MaxAge – BPDU уничтожается.

9.

Протокол STP
В первый момент каждый коммутатор считает
себя корневым. Поэтому он рассылает BPDU,
Root
D D
Если принят лучший BPDU (с меньшим BID),
R
R
D
D
R
указывая свой BID в поле RootBridgeID.
коммутатор перестает считать себя корневым и
используя данные из BPDU меняет роли портов.
После построения топологии без петель, BPDU пересылаются «сверху
вниз», коммутатор отправляет через назначенные порты, а принимает
через корневые и заблокированные. (Порт, на котором принят самый
лучший BPDU становится корневым, остальные (с параметрами BPDU
лучше, чем у самого коммутатора) блокируются. Если на порт
приходили только худшие BPDU, он становится назначенным)

10.

Протокол STP
Состояния портов:
• Disabled – порт выключен
• Blocking – порт принимает только BPDU, ничего не передает. Если получен BPDU,
соответствующий состоянию «Blocking», порт сразу переводится в это состояние.
• Listening – порт принимает и передает только BPDU. Порт переходит в это
состояние, если принимаемые (или не принимаемые вообще) BPDU говорят о том,
что порт должен быть корневым или назначенным. Порт находится в этом состоянии
время ForwardDelay (15 секунд)
• Learning – порт принимает и передает только BPDU, но заполняет таблицу адресов.
Порт переходит в состояние Learning, если ранее он 15 секунд успешно находился в
состоянии Listening. В этом состоянии он также находится время ForwardDelay.
• Forwarding – порт передает и принимает все фреймы.

11.

Протокол STP
Root
Если некорневой коммутатор обнаружил изменение
D
топологии, он отправляет TCN BPDU через корневой
TCN
R
порт в сторону корневого моста.
TCN
D
D
Получив TCN BPDU, корневой мост добавляет в свои
R
R
Configuration BPDU флаги TCA (однократно) и TC (в
течение ForwardDelay+MaxAge)
D
D
Получив BPDU с флагом TC остальные коммутаторы
R
временно уменьшают время жизни записей таблицы
адресов (с 300 до 15 секунд)

12.

Протокол STP
Разорвана связь между Root и A
Коммутатор B перестал получать прежние BPDU от A.
Root
D
R
A
D
Теперь A считает себя корневым мостом и рассылает
D
соответствующие BPDU, однако B эти сообщения
R
игнорирует, потому что продолжает получать BPDU от Root
B
Коммутатор B еще 20 секунд ждет адекватные BPDU от A
После истечения этого времени B переводит порт в статус
назначенного. После этого порт будет находиться 15
секунд в состоянии Listening и еще 15 секунд в состоянии
Learning. Общее время сходимости – 50 секунд.

13.

Протокол STP
Разорвана связь между Root и B
Коммутатор B сразу понимает, что корневого порта больше
Root
D
R
A
D
нет. Заблокированный порт становится корневым.
D
После этого порт будет находиться 15 секунд в состоянии
R
Listening и еще 15 секунд в состоянии Learning. Общее
B
время сходимости – 30 секунд

14.

Проблемы STP
1. Большое время сходимости: 30-50 секунд
2. Избыточные линии простаивают до тех пор, пока
не случится отказ основной линии
A
B

15.

Эволюция STP
STP
RSTP
PVST+
(Rapid STP)
(Per-VLAN Spanning Tree)
Быстрый STP
Для каждого VLAN строится
отдельное дерево. Проприетарное
MSTP
(Multiple STP)
Rapid
PVST+
решение CISCO

16.

Протокол RSTP
Роли портов RSTP:
• Корневой
D
Root
D
D
• Назначенный
• Backup – временно заблокированный порт, в
A
R
R
D
A
D
B
A
B
случае, если несколько портов коммутатора
связаны с одним сегментом (альтернатива для
назначенного)
HUB
• Alternate - временно заблокированный порт,
альтернатива для корневого порта

17.

Протокол RSTP
Состояния портов
STP
RSTP
Роль порта
Disabled
Discarding
Disabled
Blocking
Discarding
Alternate or Backup
Listening
Discarding
Root or Designated
Learning
Learning
Root or Designated
Forwarding
Forwarding
Root or Designated

18.

Протокол RSTP
Edge port – порт, подключенный к конечным
устройствам.
Root
D
D
Edge port не принимает и не отправляет BPDU.
Edge port может без задержек переходить в
R
R
A
D
D (Edge)
A
B
состояние Forwarding
Edge port назначается вручную, если точно
известно, что его включение не вызовет
возникновение петель
host

19.

Протокол RSTP
Proposal и Agreement
Root
• В отличие от STP, каждый коммутатор самостоятельно генерирует
Proposal Agreement
BPDU каждые HelloTime (2 секунды)
• Коммутатор отправляет BPDU с флагом Proposal, если считает, что
A
«он главнее» (является корневым мостом или он ближе к корневому)
• Если другой коммутатор не согласен с Proposal, BPDU игнорируется
Proposal Agreement
• Если другой коммутатор согласен с Proposal, в ответ отправляется
BPDU с флагом Agreement
B
• Порты, для которых произошел успешный обмен
Proposal/Agreement могут быть без задержки переведены в
состояние Forwarding. При этом некоторые другие порты могут быть
заблокированы

20.

Протокол RSTP
Если коммутатор не получает Configuration
BPDU в течение 3 периодов HelloTime, он
Root
D
D
R
R
A
считает, что связь потеряна
D
D (Edge)
A
B
После этого Alternate или Backup порты могут
стать соответственно корневыми или
назначенными, также при необходимости
запускается процедура Proposal/Agreement
host

21.

Протокол MSTP
• MSTI (multiple spanning-tree instance) – инстанция, объединяющая группу VLAN. Для
каждой инстанции в регионе строится своё дерево
• IST (Internal Spanning Tree) = MSTI 0. По умолчанию все VLAN пренадлежат IST.
Используется для управления топологией внутри региона
• Регион – группа коммутаторов, с идентичным набором MSTI и именем региона
• CST (Common Spanning Tree) — дерево, соединяющее между собой регионы. Для его
построения используется RSTP
• CIST (Common and Internal Spanning Tree) — дерево, объединяющее CST и IST регионов
• CIST Root Bridge – лучший коммутатор во всей сети
• Regional Root Bridge – коммутатор, имеющий лучший root cost до региона с CIST Root
Bridge. В регионе с CIST Root Bridge он же является Regional Root Bridge
• Коммутатор, поддерживающий RSTP, но не поддерживающий MSTP выглядит как
отдельный регион

22.

Протокол MSTP
Чужой регион выглядит как один коммутатор с BID от RegRoot или CIST Root.
English     Русский Правила