什么是冗余
冗余:多了至少一个线路。
冗余带来的问题
- 广播风暴:循环泛洪
- 重复帧:两条线路一起实现同一信息从起点到终点的传递。
- MAC地址表不稳定
避免冗余-生成树协议(Spanning Tree Protocol)
通过生成树协议,可以阻塞冗余的线路,当可用线路变得不可用时,再自动启用冗余线路(解除阻塞)。
生成树协议的基本原理
BPDU的内容
生成树判决
- 每个广播网络只能有一个RB(Root Bridge,根桥)
- 每个NRB(Non-Root Bridge,非根桥)只能有一个RP(Root Port,根端口)
- 每个网段只能有一个指定端口
- 非指定端口和非根端口将被阻塞
- Catalyst交换机为每一VLAN运行一个生成树,叫PVST。
成为根桥:
每个交换机默认的优先级是32768
优先级最低的交换机成为根桥,若优先级一致,则比较MAC地址,MAC地址最小的成为根桥。
根端口
- 根网桥上没有根端口
- 根路径开销最小的成为根端口
- 如果开销相同,端口ID(Port ID)最小的端口成为根端口
- Port ID共16位,其中8位优先级,8位端口号。
- 端口优先级默认为128
生成树的路径成本
在每个网段选取唯一一个指定端口(DP)
- 计算所在网段端口到根桥的路径开销,开销最小的为DP。
- 若开销一致,则BID(桥ID)最小的为DP。
- 被选为根端口和DP的端口进入转发状态
- 落选端口进入阻塞状态,只侦听BPDU。
生成树定时器
- Hello Timer:STP交换机发送BPDU的时间间隔。
- Forwarding Delay Timer:指一个端口的listening和learning的各自时间,默认为15秒。即listening状态持续15秒,接着learning状态再持续15秒。这两个状态下的端口会处于Blocking状态,这是STP用于避免临时环路的关键。
- Max Age:端口BPDU老化的时间。超过这个时间会重新计算生成树,默认为20秒。
链路的几个状态
BPDU:网桥协议数据单元(Bridge Protocol Data Unit)。
- Disabled:不收发任何报文。
- Blocking:不接收或转发数据,接收但不发送BPDUs,不进行地址学习。
- Listening:不接收或转发数据,接收并发送BPDUs,不进行地址学习。
- Learning:不接收或转发数据,接收并发送BPDUs,开始地址学习。
- Forwarding:接收并转发数据,接收并发送BPDUs,进行地址学习。
Cisco关于生成树协议的增强功能
- PortFast:直接进入转发状态,只用于连接终端主机的接口。PortFast端口一旦收到一个BPDU,就会失去PortFast特性。
- UplinkFast:将所有可以到达根端口的端口全部加入到上行链路组中作为主链路,若主链路失效,备用链路会立即生效。
- BackboneFast(cont.):线路断连,则自称为根。向外发送BPDU,重新确认新的拓扑关系中的根。
注:阻塞的端口不发送BPDU,但是会接收BPDU。
快速生成树协议
RSTP是快速生成树
快速生成树的端口角色
- root port:根端口
- designated port:指定端口
- alternate port:预备端口
- backup port:备用端口