среда, 8 февраля 2017 г.

STP шпаргалка JNCIS-ENT

STP разработан в Institute of Electrical and Electronics Engineers (IEEE) в 1998 году. Протокол определяется стандартом 802.1D.
Основная задача STP - не допускать loop в L2 сети путем просчета оптимального места и обрыва линка в этом месте, дальнейшего контроля состояния линков для оперативной перестройки топологии в случаи изменения состояние магистральных интерфейсов.
Существующие версии STP:
- Rapid Spanning Tree Protocol (RSTP)
- Multiple Spanning Tree Protocol (MSTP)
- VLAN Spanning Tree Protocol (VSTP)

Как это работает:
- свитчи обмениваются BPDU, шлют пакеты на мультикастовый ethernet-адрес 01-80-c2-00-00-00
- выбирается root bridge
- определяются роли портов по отношению к root bridge
- строится дерево, граф

Из чего состоит BPDU:
- DST MAC multicast адрес зарезервированный для STP (01-80-c2-00-00-00)
- SRC MAC адрес исходящего интерфейса
- размер
- LLC header который имеет destination service access point (DSAP) которой относится к root bridge

BPDU не имеет никакой VLAN метки.

Существует 2 типа BPDU:
- configuration BPDUs - для определения топологии, рута, назначения портов
- TCN BPDUs - изменения топологии

Процесс определения Root Bridge базируется на значении BID, который состоит из: настроенного приоритета (Bridge ID) и уникального идентификатора устройства (МАК адреса). Чем меньше приоритет BID - тем больше шанс стать root. Если приоритеты одинаковые, выбирается наименьший МАК адрес. 
В начале выборов каждый коммутатор считает себя корневым, о чем и заявляет всем остальным с помощью BPDU, в котором представляет свой идентификатор как ID корневого свича. При этом, если он получает BPDU с меньшим Bridge ID, он перестает хвастаться своим и покорно начинает анонсировать полученный Bridge ID в качестве корневого. В итоге, корневым оказывается тот свич, чей Bridge ID меньше всех.

Роли портов в STP


- все порты на root bridge в designated и forwarding состоянии
- root порты на остальных свитчах смотрят на root bridge и находятся в состоянии forwarding, root bridge никогда не имеет root портов. Root port выбирается суммированием скорости всех интерфейсов на пусти к RB, чем выше скорость - тем меньше cost: порт 10 мбит/сек - cost = 2,000,000, порт 10 гбит/сек - cost = 2000. Если скорости одинаковые выбирается порт с меньшим значением port ID (номер порта).
- designated порты находятся в forwarding состоянии
- все остальные порты находятся в blocking состоянии. Когда порт в данном состоянии он не отправляет BPDU, но слушает входящие BPDU.

В 2004 году вышел документ IEEE 802.1D-2004, который описывает механизм RSTP. Данный протокол имеет приемущество над STP за счет быстрого процесса сходимости сети.

В RSTP меняются роли портов:
- появляется новый тип Alternate (он подстраховывает root порт и принимает BPDU) по факту это порт, который смотрит тоже на RB, но имеет cost чуть выше основного.
- Block меняется на Backup, это порт который смотрит в LAN сегмент.

Сравнение STP и RSTP:

STP (802.1d)RSTP (802.1w)
В уже сложившейся топологии только корневой свич шлет BPDU, остальные ретранслируютВсе свичи шлют BPDU в соответствии с hello-таймером (2 секунды по умолчанию)
Состояния портов
— блокировка (blocking)
— прослушивание (listening)
— обучение (learning)
— перенаправление\пересылка (forwarding)
— отключен (disabled)
— отбрасывание (discarding), заменяет disabled, blocking и listening
— learning
— forwarding
Роли портов
— корневой (root), участвует в пересылке данных, ведет к корневому свичу
— назначенный (designated), тоже работает, ведет от корневого свича
— неназначенный (non-designated), не участвует в пересылке данных
— корневой (root), участвует в пересылке данных
— назначенный (designated), тоже работает
— дополнительный (alternate), не участвует в пересылке данных
— резервный (backup), тоже не участвует
Механизмы работы
Использует таймеры:
Hello (2 секунды)
Max Age (20 секунд)
Forward delay timer (15 секунд)
Использует процесс proposal and agreement (предложение и соглашение)
Свич, обнаруживший изменение топологии, извещает корневой свич, который, в свою очередь, требует от всех остальных очистить их записи о текущей топологии в течение forward delay timerОбнаружение изменений в топологии влечет немедленную очистку записей
Если не-корневой свич не получает hello- пакеты от корневого в течение Max Age, он начинает новые выборыНачинает действовать, если не получает BPDU в течение 3 hello-интервалов
Последовательное прохождение порта через состояния Blocking (20 сек) — Listening (15 сек) — Learning (15 сек) — ForwardingБыстрый переход к Forwarding для p2p и Edge-портов
Основная суть в том, что при изменении топологии - нам не приходиться заново пересчитывать все связи а достаточно лишь переключиться на заранее подготовленный резерв.

Некоторые материалы были позаимствованы: https://habrahabr.ru/post/143768/

Комментариев нет:

Отправить комментарий