STP шпаргалка
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 сегмент.