stp на cisco, dlink и edge-core

Понадобилось собрать такую адовую схему:

для блога

Важный клиент подключен по оптике, резервный канал запущен через радио-линк (привет nanostation m5:). Всё это дело работает через зоопарк оборудования – ubiquti, DGS-3120, DGS-3100, edge-core ES3528 и терменируется на cisco 7606.

Dlink и edge-core умеют rstp, но не умеют делать это во вланах (PVST). Поэтому на циске пришлось настроить rstp в первом влане и отдавать первый влан access’ом на порты к нижестоящим длинкам:

spanning-tree mode rapid-pvst
spanning-tree vlan 1 priority 12288

На едже коре

Spanning-tree

spanning-tree mode rstp

STP включен на 25 и 26 портах.

!

interface ethernet 1/25

switchport dot1q-tunnel mode uplink

no switchport broadcast

ip dhcp snooping trust

switchport acceptable-frame-types tagged

switchport allowed vlan add 206,3007,3021,3310,3652 tagged

spanning-tree cost 2

!

interface ethernet 1/26

no spanning-tree loopback-detection

switchport dot1q-tunnel mode uplink

no switchport broadcast

ip dhcp snooping trust

switchport acceptable-frame-types tagged

switchport allowed vlan add 3007,3021,3310,3652 tagged

show spanning-tree eth 1/25

Eth 1/25 Information

Admin Status: Enabled – stp на порту включен

Role: Root – корневой порт (основной путь к корневому коммутатору)

State: Forwarding – пересылка кадров

Admin Path Cost: 2

Oper Path Cost: 2

Priority: 128

Designated Cost: 20000

Designated Port: 128.15

Designated Root: 12289.1111111111111 – циска 7606 в ядре является корнем

Designated Bridge: 16384.111111181BA0 – следующий коммутатор,

show spanning-tree eth 1/26

Eth 1/26 Information

————————————————————–

Admin Status: Enabled

Role: Alternate – альтернативный путь к корневому коммутатору

State: Discarding – запрет пересылки кадров

Admin Path Cost: 0

Oper Path Cost: 100000

Priority: 128

Designated Cost: 20000

Designated Port: 128.5

Designated Root: 12289.1111111111111 – циска 7606 в ядре является корнем

Designated Bridge: 16384.003230212B53 – следующий коммутатор, 

DGS-3120-24SC:admin#sh stp in

Command: show stp instance

STP Instance Settings

—————————

Instance Type : CIST

Instance Status : Enabled

Instance Priority : 16384(Bridge Priority : 16384, SYS ID Ext : 0 )

STP Instance Operational Status

——————————–

Designated Root Bridge : 12289/1111111111111 – циска 7606 в ядре является корнем

External Root Cost : 20000

: 16384/222222222222

Internal Root Cost : 0

Designated Bridge : 12289/1111111111111

Root Port : 1:24 – корневой порт (основной путь к корневому коммутатору)

Max Age : 20

Forward Delay : 15

Last Topology Change : 64805

Topology Changes Count : 1

config stp version rstp

config stp maxage 20 maxhops 20 forwarddelay 15 txholdcount 6 fbpdu enable hellotime 2 nni_bpdu_addr dot1d

config stp priority 16384 instance_id 0

config stp ports 1:1-1:14,1:16-1:23 externalCost auto edge true p2p auto state disable restricted_role false restricted_tcn false

config stp mst_ports 1:1-1:24 instance_id 0 internalCost auto priority 128

config stp ports 1:1-1:14,1:16-1:23 fbpdu disable

config stp ports 1:15 externalCost auto edge true p2p auto state enable restricted_role false restricted_tcn false

config stp ports 1:15,1:24 fbpdu enable

config stp ports 1:24 externalCost auto edge false p2p auto state enable restricted_role false restricted_tcn false

enable stp

DGS-3100# show stp in 0

Instance Type : CIST

Instance Status : Enabled

Instance Priority : 16384

STP Instance Operational Status

——————————-

Designated Root Bridge : 12289/1111111111111

External Root Cost : 20000

Regional Root Bridge : 16384/2222222222

Internal Root Cost : 0

Root Port : 1:24

Max Age : 20

Forward Delay : 15

Last Topology Change : 7789226

Topology Changes Count : 13

enable stp

config stp version rstp

config stp fbpdu enable

config stp priority 16384 instance_id 0

config stp ports 1:(1-2,4,6-15,17-23) state disable fbpdu disable

config stp ports 1:(3,16) fbpdu disable

config stp ports 1:(5,24) fbpdu enable

Мониторинг

В заббиксе добавил item, который по snmp проверяет, какой порт рутовый:

.1.3.6.1.2.1.17.2.7.0

Триггер срабатывает, если последнее значение не равно заданному, например если рутовый порт не 25, триггер срабатывает:

{10.230.159.40:STP_port_status.last()}<>25