1、网桥与交换机
都工作在第二层,网桥是交换机的前身,网桥基于软件来实现各种功能、端口密度低。只支持半双工。交换机基于硬件ASIC实现各种功能、端口密度高、支持全双工。
2、单点链路故障(引入冗余)
3、冗余二层网络中的问题(为什么要STP)
A、广播风暴
B、MAC表的不稳定
C、重复的单播帧
D、多重循环
4、STP的作用
STP是一种循环避免的二层协议,网桥之间可以通过交换STP的消息,可以发现网络中的物理环路,根据STP的算法,逻辑上阻塞某些接口,建立一个免循环(loop-free)的逻辑拓扑,最终STP能够建立一个跨越整个二层交换网络的免循环的支叶树状结构。
二、STP 术语1、STP的协议包BPDU 数据结构
Protocol identifier=00总是0
Protocol version=00(STP的版本 802.1D为0)
BPDU type (00配置BPDU 80 TCN BPDU)
Flag:0 TC:根网桥置位,表示拓扑发生变化。7 TCA:收到TCN的网桥置位表子ACK确认。1 proposal建议 23端口功能(指定备份根替代) 45当前端口状态(learning forwarding) 6同意(agreement)
Root identifier根网桥ID
Root path cost到达根网桥的STP开销。不同厂商、测量评定,link cost的值可能不能,可手工指定 10M=100 100M=19 1000M=4 10G=2 622M=6 155M=14在收BPDU的口加开销
Sending bridge id发送网桥ID
Port发送网桥端口ID
Message age:消息寿命,从根网桥发出BPDU之后的秒数,每经过一个网桥都递减1,所以它本质上是到达根网桥的跳计数。
Information lifetime:最大寿命,网桥在将根网桥看作不可用之前保留根网桥ID的最大时间。
Root hello time:根网桥连续发送的BPDU之间的时间间隔
Forward delay:转发延迟,网桥在监听和学习状态所停留的时间间隔
2、根网桥
在交换网络中选举无环路拓扑的参考点与核心,具有最低网桥ID的交换机。
网桥ID:优先级+MAC 字节数8=2+6
优先级:0-65535缺省一半32768 MAC交换机背板MAC
优先级=网桥优先级(4bit)+Extended System ID(12bit)
思科的网桥优先级带有扩展ID,作为VLAN或MST实例的惟一标识符.
网桥优先级=4096的倍数+vlan ID 手工修改只能影响前面4个bit。
3、根网桥的选举标准bridge id (演示)
一个二层网络中,选举一个交换机作为根网桥,最小优先级,优先级相同,选最小MAC。具有抢占功能。
Switch(config)#spanning-tree vlan 1 root primary 优先级-8K
Switch(config)#spanning-tree vlan 1 root secondary 优先级-4K
Switch(config)#spanning-tree vlan 1 priority ?
<0-61440> bridge priority in increments of 4096
三、STP 的工作过程1、STP算法
确定根网桥、确定到根网桥的最小开销、确定最小发送网桥ID、确定最小发送端口ID。
2、工作过程
初始化,网桥工作时,所有活动端口都发送BPDU,如果端口从其他网桥收到BPDU比自身发送的更佳,本端口停止发送BPDU,并存储最佳的BPDU(20秒)maxage。
正常工作下,BPDU从根网桥出发,沿着所有活动路径(DP)到达网络中的每个网段,周期2秒,hello不正常时,如果停止从邻居收到最佳BPDU持续20秒,本地端口又会发送BPDU。
3、STP的选举
A、选择根网桥:最小BID为根
B、每个非根网桥选择一个根端口
根端口:到根网桥最近的端口(开销最小)。收BPDU的接口选
C、每个物理网段选择一个指定端口,发送最佳BPDU的端口为指定端口。根网桥上所有接口都为指定接口,发BPDU的接口选。
D、其他端口,阻塞,逻辑阻塞,丢数据包,接收协议包。
(演示)三交换机互连。操作和选举,两交换机互连,操作和选举
(发BPDU的接口改优先级,收BPDU的接口改cost)
接口spanning-tree vlan n port-priority 128(default)。16递增0-255
Spanning-tree vlan n cost n
四、STP 的端口状态1、port state
Down/disable:没接设备或手工shutdown
Blocking:只能接收BPDU
Listening:收发BPDU,已确定活动拓扑,STP选举
Learning:MAC学习,构建桥接MAC表
Forwarding:转发用户数据
2、STP timer(端口状态切换时间)举例情景
1、hello time 2秒
2、max age 20秒=10倍hello周期
3、forwarding 15秒
直接电信号丢失30s blocking(0)-listening(15)-learning(15)-forwarding
间接,最佳BPDU超时。blocking(20)-listening(15)-learning(15)-forwarding
3、STP TCN
TCN的作用,加速MAC地址表超时。
Mac超时
300s老化时间,直连电信号丢失,clear mac address-table dynamic,TC:300s—15s
TCN的产生条件,端口的UP/DOWN。端口状态变为forwarding。端口状态变为forwarding或Learning变为blocking或down。
由感知拓扑变化的交换机产生TCN,沿根端口路径上游交换机的中继到根网桥。上游交换机收到TCN则指定端口才会处理TCN,上游交换机在下一个配置BPDU的过程中设置TCA标记,从收到的TCN的指定port发送出去。发送TCN的交换机收到TCA置位的配置BPDU停止产生TCN,否则,仍以本地hello周期发送BPDU。根网桥收到TCN,则在新的配置BPDU中,TCA、TC都置为1,TC置位的目的加速网桥MAC表超时(300s—15s)。TC置位的BPDU持续发送maxage+forwarding delay,缩短为15秒,不是清除整个表,只是加速MAC表超时。
五、STP高级特性
1、STP的模式
全局spanning-tree mode PVST+(default) Rapid PVST MST
Pvst+是cisco基于802.1D基础上发展的,为了兼容802.1Q每个vlan一个STP实例,加入cisco一些私有特性
Cst(common spanning-tree) 所有vlan共用一个STP的实例。优点:CPU资源占用少,缺点:不能做负载均衡。
Rapid – pvst+ cisco私有,(RSTP)加快收敛2-3秒。
MST(国际标准)multi spanning-tree
多个vlan共用一个STP的实例
禁用STP no spanning-tree vlan x
2、STP做负载均衡。(PVST+)
网络中存在冗余链路,网络中存在多个vlan,网络中存在多个STP实例。操纵根网桥、 端口开销、端口优先级、发送网桥ID实现。
3、调整STP的时间参数(不建议)
全局
spanning-tree vlanvlan-id
hello-timeseconds
forward-time max-age spanning-tree transmit hold-countvalue Configure the number of BPDUs that can besent before pausing for 1 second. For value, the range is 1 to 20; the default is 6.
4、portfast
作用:优化边界端口,接终端设备的端口快速收敛。Portfast立刻到forwarding,端口状态变化不会导致TCN产生,端口STP仍在,当接收到BPDU会正常收敛,针对access。DHCP、bootp、802.1x。
接口下spanning-tree portfast
防止接交换机改变STP拓扑结构.接交换机自动关闭。
Sw1(config-if)#spanning-tree bpduguard enable
Sw1(config)#spanning-tree portfast bpduguard default
5、uplinkfast
作用:优化上联端口,使主备uplink立刻切换。典型应用在接入层交换机,自动跟踪根端口,使备份接口在2-3秒内收敛,变成forwarding。将交换机的优先级改为49152,使其不能成为根网桥,将其开销加3000 ,使其不能成为中继交换机,由此说明交换机只能成为未梢接入层交换机。
Sw1(config)#spanning-tree uplinkfast
6、backbonefast
作用:改进交换机之间间接链路失效,网络收敛的时间(50—30)理论时间.收到次佳BPDU立刻处理。注意问题:在所有交换机上都要配置
Sw1(config)#spanning-tree backbonefast
引入RLQ机制(root link query)。如果网段down。B会发送次佳BPDU到C。C立刻处理,C沿根端口发送RLQ查询到A,C在根端口收到回应,知道根的存在,C立刻停止maxage。打开原来的blocking口。B收到BPDU知道从C可以到达根。
7、root guard
作用:配置该特性的端口不会成为根端口,从而保护了STP的拓扑,收到superior BPDU端口进入root-inconsistent状态,此状态不能收发数据。拿走交换机正常,重新使用shutdown no shutdown.
Sw1(config-if)#spanning-tree guard root
8、loop guard
作用:跟踪非指定端口(root port alt port)的BPDU活动,协议包收不到,端口不应被使用。BPDU丢失端口变为loop-inconsistent状态,blocking来防止循环。直到再收到BPDU,又可正常收敛。
Sw1(config-if)#spanning-tree guard loop
9、UDLD单向链路检测
作用:针对光纤链路检测单向链路故障造成的环路。定期发送UDLD hello包,三个周期没有收到UDLD的回应,则认为link出现单向故障。
全局/接口:udld {aggressive/enable/disable}
强占(errdisable) 一般(只发syslog)