环路解决方案
1 单点故障和方案
1.1 端口协商参数
双工模式,duplex
半双工模式,half-dulex:同一时刻,只能收或者发,信号的双向传输
全双工模式,full-duplex:同一时刻,可以同时收发,信号的单向传输
速率,speed
***默认是auto模式,建议不同类型的设备之间进行互联链路时,手动指定速率和双工
1.2 单点故障和环路问题
传统交换网络产生的问题:
单点故障
解决方案:
增加冗余链路
增加冗余设备
随之而来的问题:
数据转发环路
产生环路的数据,会不断的在网络中进行传输,从而消耗网络中的链路资源和设备资源
解决方案:
在交换机上运行STP协议
目标:
在LAN中,保证任何两个通信终端之间永远只有一个
最短的、无环的转发路径
2 STP原理与实现
***STP:生成树协议(802.1d)
2.1 STP的作用
STP,Spanning TreeProtocol:生成树协议
***默认情况下,交换机为每个VLAN打开STP树协议
【命令】Switch(config)#no spanning-tree vlan *** #关闭STP树协议
在网络中存在冗余链路的情况下,实现环路的防护
STP是防止交换机之间产生环路问题的“树协议”
***活动链路和备份链路在出现故障时,可以自动切换
2.2 STP的实现
2.2.1 BPDU介绍
BPDU,Bridge Protocol DataUnit #桥接协议数据单元
1、BPDU是运行STP的交换机之间交换的消息帧。
2、包含了STP所需的路径的优先级信息
按顺序进行比较:
1、Root ID #表示根交换机是谁
2、Cost #表示发送该BPDU的交换机到达根交换机的距离
3、BID #表示发送该BPDU的交换机的名字
组成:优先级(默认是32768)+基MAC
4、Port ID #表示发送方交换机是哪个端口发送出来的
组成:端口优先级(默认是128)+端口号(接收的端口号)
***值越小越好
2.2.2 不同VLAN的BPDU
交换机如何区分不同VLAN的BPDU:
BPDU中的BID:优先级+MAC地址
优先级为2字节(16bit):其中分为4bit+12bit
其中12bit代表交换机中的VLAN号,有2^12=4096个
其中4bit真正表示了BID的优先级,即2^4,范围0~15
由此得出:前面的4bit才是真正表示了优先级
因此优先级0~61440,默认是32768,必须是4096的倍数,优先级只能有16个
但是在表示优先级数值的时候,后面的12bit,都必须算上,同时必须是0
即,每个交换机的STP的优先级都是2^12的0-15的倍数,即4096的倍数
2.2.3 BPDU的分类
配置BPDU
拓扑变更通告(TCN)BPDU
2.3 STP的分类
PVST,Per-vlan STP,在VLAN中存在的STP,收连速度比较慢
RSTP,快速生成树协议
MSTP,多生成树协议
STP—>PVST—>RSTP—>MSTP
2.4 STP工作过程
【命令】Switch#Show spanning-tree #查看树协议表
2.4.1 确定交换机的角色
根交换机
非根交换机
判断角色的原则:比较每个交换机的BID,Brigde ID(桥ID),越小越好
组成:优先级+MAC
优先级:默认是32768,2字节
MAC:交换机的主板MAC(基MAC地址),6字节
【命令】Switch#show version #查看交换机的基MAC地址(BaseEthernet MAC Address)
2.4.2 确定端口角色
根端口(RP):每一个非根交换机,都有一个,且只有一个,距离根交换机最近(cost值)的端口
指定端口(DP):每一个“冲突域”中都存在一个距离根交换机最近(cost值)的口,根交换机上的口都是指定端口
阻塞端口(Altn):其他所有端口,备份链路
***冲突域:交换机上的每个端口都有一个冲突域
***在分析时,先确定根端口,在选指定端口
根端口(RP):子节点连接父节点的端口
指定端口(DP):父节点连接子节点的端口
阻塞端口:消除网络环路
2.4.3 确定端口状态
Disable(关闭) #相当于shutdown,此时端口不能用
Listening(侦听) #该极端侦听的是BPDU,用于确定端口角色
Learning(学习) #该状态学习的是MAC地址,形成MAC地址表
Forwarding(转发) #即端口的最终转发状态
根端口、指定端口
Block(阻塞) #此时的端口是不可以发送数据的,只接收BPDU
非指定端口
2.5 Cost值
如何表示“距离”
在STP中,通过cost值表示一个路径的距离
对于某些链路,均有默认的cost值
10M=cost 100
100M=cost 19
1G=cost 4
10G=cost 2
2.6 修改交换机的STP优先级
***通过修改交换机的STP优先级重新确定VLAN的根交换机
【命令】Switch(config)#spanning-tree vlan 1 priority 61440 #修改根交换机SW1的BID优先级为61440
***导致的结果,此时的网络中的“根交换机”由SW1变成了其他VLAN
2.7 STP的3种计时器
Hello时间
转发延迟(Forward delay)
最大老化时间
3 拓扑图解析
1、画图说明“传统网络中的单点故障”
2、画图说明“解决方案(增加冗余链路和设备)”
3、画图说明“冗余链路和设备,带来的环路问题”
详细说明,环路是如何形成的
4、画图说明“STP的工作过程”
如何选举交换机角色
如何判定端口角色
如何判定端口最终状态
1、确定交换机角色
根据四台交换机的BID(优先级+基MAC)确定
优先级默认为32768,MAC地址00D0.5841.6B61最小,故SW2为根交换机
2、确定端口角色
根交换机下的端口都是DP
确定非根交换机的RP:
比较:Cost值—>trunk链路上交换机的BID—>trunk链路上交换机端口的PortID
确定非根交换机的DP
比较:Cost值—> trunk链路上交换机的BID—>trunk链路上交换机端口的PortID
***通常,两台交换机之间有两条trunk链路时才需要比较PortID
5、更改SW2在VLAN1中的STP优先级为0
从而确保,根交换机由SW1转移到SW2
随后验证,确认每个交换机的角色、每个端口的角色和状态
4 配置命令总结
特权模式
Switch#Showspanning-tree #查看树协议表
Switch#Showspanning-tree summary #查看树协议表概要
Switch#showversion #查看交换机的基MAC地址(BaseEthernet MAC Address)
全局配置模式
Switch(config)#nospanning-tree vlan *** #关闭STP树协议
Switch(config)#spanning-treevlan 1 priority 61440 #修改根交换机SW1的BID优先级为61440