STP 802.1D
思科(PVST PVST+)
dis bridge mac-address
System bridge MAC address: 4c1f-cc20-2c5f
- 1、802.1D-1998 (思科)
- 2、802.1T标准方式(华为默认)
- 3、华为私有
- 修改方式:
- 华为:
[Huawei] stp path-standard
- 思科:
Switch (config)#spanning-tree pathcost method ? long //修改为802.1T标准 short //修改为802.1D-1998
- 网络设备中没有小数概念,也没有四舍五入 有小数值的数字只取整数,小于1取1。
1、选择根桥
比较桥ID 1、首选比较桥ID2、比MAC地址
2、在每隔非根桥上选择一个根端口
非根桥上接收最优的BPDU的端口成为根端口
BPDU的核心参数:
ROOT ID:用于表示当前根桥的桥ID。
RPC:用于描述根路径开销,根桥始发是0。
Sender BID:BPDU发送者的BID。
Sender PID:BPDU发送者的PID。
Frame 67: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface -, id 0
IEEE 802.3 Ethernet
Logical-Link Control
Spanning Tree Protocol
Protocol Identifier: Spanning Tree Protocol (0x0000)
Protocol Version Identifier: Spanning Tree (0)
BPDU Type: Configuration (0x00)
BPDU flags: 0x00
Root Identifier: 32768 / 0 / 4c:1f:cc:20:2c:5f
Root Path Cost: 0
Bridge Identifier: 32768 / 0 / 4c:1f:cc:20:2c:5f
Port identifier: 0x8001
Message Age: 0
Max Age: 20
Hello Time: 2
Forward Delay: 15
4个计时器:
Hello Time :BPDU的发送时间间隔。(2S
Forward Delay:转发延迟时间
Max Age :BPDU的最大年龄(20S
Message Age:BPDU的当前年龄
实际设备实现的时候,是每经过一次转发将Message Age +1,当一台交换机收到BPDU之后,会将Message和Max作对比,如果Message大于了Max,交换机将会忽略此BPDU.
[Huawei]stp timer ?
forward-delay Specify forward delay
hello Specify hello time interval
max-age Specify max age
3、在每一条链路上选择一个指定端口(STP端口角色)。
根端口:RP,是指非根桥去往根桥最近的接口。
指定端口:DP,在需要的时候用来转发数据或者是发送BPDU的端口。
AP:
标准STP端口状态:(华为设备STP引用了部分RSTP端口状态)
Disable:禁用状态,没有启用STP协议的端口或者人为关闭的端口处于禁用状态。
Listening:15秒侦听状态,可以发送BPDU 接受BPDU 不学习MAC地址 不转发数据。
Learning:15秒学习状态,可以发送BPDU 接受BPDU 学习MAC地址 不转发数据。
Forwarding:转发状态,可以发送BPDU 接受BPDU 学习MAC地址 转发数据。
Blocking:阻塞状态,不可以发送BPDU 可以接受BPDU 不学习MAC地址 不转发数据。
Forward Delay 转发延迟时间(15秒)
为什么会有侦听状态的15S时间?用于STP收敛,防止临时环路的产生。
为什么会有学习状态的15S时间?
用于交换机学习MAC地址,形成MAC地址表,防止大量未知单播帧的泛洪,对二层网络造成冲击。
当根端口确定之后,交换机会为自己的 每个指定端口,计算出一个未来要发送的BPDU参数核接收到BPDU参数做对比,如果自己更优则保持DP不变,如果对方更优则本接口阻塞。
[Huawei]dis stp
-------[CIST Global Info][Mode STP]------- //描述全局当前运行的stp模式
CIST Bridge :32768.4c1f-ccb1-7803 //用于表述自己的桥ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20//描述当前配置的时间参数
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20//描述运行的时间参数
CIST Root/ERPC :32768.4c1f-cc04-719f / 20000 //用于描述根桥的桥ID
CIST RegRoot/IRPC :32768.4c1f-ccb1-7803 / 0//在MSTP才会使用,STP/RSTP中用于描述自己的桥ID
CIST RootPortId :128.1
BPDU-Protection :Disabled
TC or TCN received :25
TC count per hello :1
STP Converge Mode :Normal
Time since last TC :0 days 0h:0m:9s
Number of TC :6
Last TC occurred :GigabitEthernet0/0/1
----[Port1(GigabitEthernet0/0/1)][FORWARDING]----
Port Protocol :Enabled //接口开启的STP协议
Port Role :Root Port //用于描述当前接口角色
Port Priority :128 //用于描述当前接口优先级
Port Cost(Dot1T ) :Config=auto / Active=20000//用于描述当前接口的cost
Designated Bridge/Port :32768.4c1f-cc04-719f / 128.1//指定桥,用于描述当前链路上指定端口所在的桥ID
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :None
Port STP Mode :STP //用于描述当前接口运行的生成树版本
Port Protocol Type :Config=auto / Active=dot1s
BPDU Encapsulation :Config=stp / Active=stp
PortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 0
TC or TCN send :1
TC or TCN received :12
BPDU Sent :3
TCN: 1, Config: 2, RST: 0, MST: 0
BPDU Received :25
TCN: 0, Config: 25, RST: 0, MST: 0
[Huawei]stp priority 0 // 修改优先级 4096的倍数
[Huawei]int g0/0/2
[Huawei-GigabitEthernet0/0/2]stp cost 1000 //修改RFC接口优先级
[Huawei-GigabitEthernet0/0/2]stp port pri 0 //修改接口PID优先级 16的倍数
STP针对拓扑变化的收敛:
根桥物理层,收敛需要30S时间(侦听15S+学习15S)
根桥协议层故障,收敛需要经历50S时间(max age +侦听15S+学习15S)
当RP直连故障,存在AP的情况下,收敛需要30S时间。
当RP非直连故障,存在AP的情况下,收敛需要50S时间。
当RP直连故障,不存在AP的情况下,收敛需要50S时间。
当RP非直连故障,不存在AP的情况下,收敛需要50S时间。
STP 如何认为拓扑发生了变化:
1、标准
一个接口UP或者DOWN都认为发生了变化。
2、华为
当一个接口进入到转发状态,则会认为拓扑发生了变化。
当RP故障之后,存在AP的情况下,也会认为网络拓扑发生了变化。
STP共有两种BPDU类型:
1、配置BPDU
2、TCN BPDU
1、STP的桥优先级为什么是4096的倍数?
Root Identifier: 32768 / 0 / 4c:1f:cc:de:4d:1b
Root Bridge Priority: 32768
Root Bridge System ID Extension: 0
Root Bridge System ID: HuaweiTe_de:4d:1b (4c:1f:cc:de:4d:1b)
桥优先级(2个字节) 桥MAC地址(6个字节)
0000 0000 0000 0000
2、STP的端口优先级为什么是16的倍数?
报文编码,进制转换