德国hbm传感器:交换机STP的概念及配置(一)
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 20:00:56
生成树协议(Spanning Tree Protocol,STP)是交换式以太网中的重要概念和技术,该协议的目的是在实现交换机之间的冗余连接的同时,避免网
络环路的出现,实现网络的高可靠性.它通过在交换机之间传递桥接协议数据单元(Bridge Protocol Tata Unit ,BPDU)来互相告知诸如交换机
的桥ID、链路性质、根桥(Root Bridge )ID等信息,以确定根桥,决定哪些端口处于转发状态,哪些端口处于阻断状态,以免引起网络环路
。
当交换机之间有多个VLAN时Trunk线路负载会过重,这时需要设置多个Trunk端口,但这样会形成网络环路。STP协议便可以解决这一问题。当同
一台交换机的两个端口形成环路时,STP端口全值用来决定哪个口是交换状态的,哪个口是阻断的。可以通过配置端口权值来决定两对Trunk个
走哪些VLAN,有较高权值的端口(优先级数字较小的)Vlan将处于转发状态,同一个VLAN在另一个Trunk有较低的权值(优先级数字较大),则
将处于阻断状态。即同一个VLAN在一个Trunk只在一个Trunk上发送接受
STP的基本思想是:在网桥之间传递一种特殊的协议报文-BPDU(Bridge Protocal Data Unit),IEEE802.1D协议中将这种特殊的协议报文称为
“桥协议数据单元”或“配置消息”
相关概念:
*根网桥(Root Bridge):从网络中所有的网桥中选择一个根网桥作为拓扑的树根。
*最短路径开销(Shortest Path Cost):本网桥到根网桥的最短距离。
*指定网桥(Designated Bridge):对于每个网段(不包括交换机,但可包括Hub或连接两台交换机的一段网线),需选出距离根网桥最近的
网桥作为指定网桥。指定网桥负责处理所有从所有网段到根网桥的数据转发。一个网段的指定网桥也就是该网段的指定端口所在的网桥。
*根端口(Root Port):对于每个非根网桥,选取唯一一个到达根网桥路径开销最小的端口作为根端口,PortID最小端口成为根端口,PortID
通常为端口的MAC地址,MAC地址最小的端口成为根端口。
*指定端口(Designated Port):在每网段选取唯一一个指定端口,距离根网桥最近的端口也就是端口代价最小,负责该网段上所有数据转
发到根网桥,通常只有根网桥端口成为指定端口。被选定为根端口和指定端口的进行转发状态,落选端口进入阻塞状态
生成树协议配置消息(BPDU):
BPDU配置消息是以以太网数据帧的格式进行传递的,DMA:它采用一个周知的多播MAC地址01-80-C2-00-00-00作为目的MAC地址,网络中所有的网
桥收到该地址后都能够判断出该报文是生成树协议报文。SMA:源MAC地址域中填的是本网桥的MAC。LLC Header:配置消息固定的链路头,SAP值
是01000010(0x42)
配置消息内容:
*树根ID(以以太网交换机的优先级表示),根路径开销,指定交换机ID(以以太网交换机的优先级表示),指定端口ID(以端口号表示)
(Root Bridge ID,Root Path Cost,Designated Bridge ID,Designated Port ID)
*RootID: 由根网桥的优先级和根网桥的48位MAC地址组成。优先级+MAC地址, 默认(32768),可由管理员手工修改。
树根注意由优先级决定,当优先级相同时,以MAC地址小的为根。
*Root Path Cost: 从发送网桥到根网桥最小路径开销。
*Designated BridgeID:主要以交换机的优先级和MAC地址表示。优先级+MAC地址
*Designated Port ID: 主要以交换机的端口优先级表示。可由管理员手工修改。
生成树协议有三种模式:
*STP(生成树协议): STP不能快速迁移。即使是在点对点链路或边缘端口,也必须等待2倍的Forward delay的时间延迟,端口才能迁移
到转发状态。
*RSTP(快速生成树协议): RSTP可以快速收敛,但是和STP一样存在以下缺陷:局域网内所有网桥共享一棵生成树,不能按VLAN阻塞冗余
链 路,所有VLAN的报文都沿着一棵生成树进行转发。
*MSTP(多生成树协议): MSTP可以弥补STP和RSTP的缺陷,它既可以快速收敛,也能使不同VLAN的流量沿各自的路径分发,从而为冗余链
路提供了更好的负载分担机制。MSTP设置VLAN映射表(即VLAN和生成树的对应关系表)把VLAN和生成树联系起来
同时它把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。MSTP将环路网络修剪成
为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在
数据转发过程中实现VLAN数据的负载均衡。
生成树协议STP端口状态:
*Disabled:不收发任何报文
*Blocking: 阻断,不接收或转发数据,接收但不发送BPDUs,不进行地址学习
*Listening:倾听,不接收或转发数据,接收并发送BPDUs,不进行地址学习
*Learning:学习,不接收或转发数据,接收并发送BPDUs,开始地址学习
*Forwarding:转发,接收或转发数据,接收并发送BPDUs,进行地址学习
生成树协议运行生成树算法(STA):
(1)选择根网桥
(2)选项根端口
(3)选择指定端口
*选择根网桥的依据是交换机的网桥优先级,网桥优先级是用来衡量网桥在生成树算法中优先级的十进制数,取值范围是0~65535.默认值
是32768,网桥ID是由网桥优先级和网桥MAC地址组成的。共有8个字节。
*选择根端口的依据是
(1)到跟网桥的最低路径成本。
根路径成本是两个网桥间的路径上所有链路的成本之和,也就是某个网桥到达根网桥的中间所有链路的路径成本之和,一条链路的带
宽越大,他的传输成本就越低。
(2)直连的网桥ID最小
(3)端口ID最小
*选择指定端口的依据是:
(1)根路径成本较低
(2)所在的交换机网桥ID值最小
(3)端口ID值最小
运行某个指定STP的STP协议后,可以根据具体的网络结构调整该STP的一些参数。交换机中可以调整以下的STP协议参数:
* bridge priority:根网桥ID
* hello time:根网桥生成BPDUs配置消息的周期,缺省时间是2秒钟
* forward delay:配置消息传播到全网的最大时延,缺省为15秒钟
* max age:BPDUs配置消息存活的最大时间
另外每个端口上可以调整以下参数:
* path cost:路径开销
* port priority:根端口ID
边缘端口:
对于直接与终端相连的端口,请将该端口设置为边缘端口,同时启动BPDU保护功能。这样既能够使该端口快速迁移到转发状态,
也可以保证网络的安全。
说明:用户如果将某个端口指定为边缘端口,那么当该端口由堵塞状态向转发状态迁移时,这个端口可以实现快速迁移,而无需等待
延迟时间。用户只能将与终端链接的端口设置为边缘端口。在交换机没有使能BPDU保护的情况下,如果被设置为边缘端口的端口上收到来自其
它端口的BPDU报文,则该端口会重新变为非边缘端口。如果交换机使能了BPDU保护,则该端口会被关闭。该参数对所有生成树实例有效,也就
是说,当端口被配置为边缘端口或非边缘端口时,该端口在所有生成树实例上都被设置为边缘端口或非边缘端口。在交换机没有使能BPDU保护
的情况下,当端口收到BPDU后,即使用户设置为边缘端口,实际运行值也会变为非边缘端口。缺省情况下,交换机所有以太网端口均被配置为
非边缘端口。
配置交换机的保护功能:
支持MSTP的交换机提供BPDU保护功能、Root保护功能和环路保护功能。
对于接入层设备,接入端口一般直接与用户终端(如PC机)或文件服务器相连,此时接入端口被设置为边缘端口以实现这些端口的快速迁
移;当这些端口接收到配置消息(BPDU报文)时系统会自动将这些端口设置为非边缘端口,重新计算生成树,引起网络拓扑的震荡。这些端口
正常情况下应该不会收到生成树协议的配置消息。如果有人伪造配置消息恶意攻击交换机,就会引起网络震荡。BPDU保护功能可以防止这种网
络攻击。
生成树的根交换机及备份交换机应该处于同一个域内,特别是对于CIST的根交换机和备份交换机,由于网络设计时一般会把CIST的根交换
机和备份交换机放在一个高带宽的核心域内。但是由于维护人员的错误配置或网络中的恶意攻击,网络中的合法根交换机有可能会收到优先级
更高的配置消息,这样当前根交换机会失去根交换机的地位,引起网络拓扑结构的错误变动。这种不合法的变动,会导致原来应该通过高速链
路的流量被牵引到低速链路上,导致网络拥塞。Root保护功能可以防止这种情况的发生。
依靠不断接收上游交换机发送的BPDU,交换机可以维持根端口和其他阻塞端口的状态。但是由于链路拥塞或者单向链路故障,这些端口会
收不到上游交换机的BPDU。此时交换机会重新选择根端口,根端口会转变为指定端口,而阻塞端口会迁移到转发状态,从而交换网络中会产生
环路。环路保护功能会抑制这种环路的产生。在启动了环路保护功能后,根端口的角色不会迁移,阻塞端口会一直保持在Discarding状态,不
转发报文,从而不会在网络中形成环路。
可以通过下面的命令来配置交换机的保护功能。
交换机上启动了BPDU保护功能以后,如果边缘端口收到了配置消息,系统就将这些端口关闭,同时通知网管这些端口被MSTP关闭。被关闭
的端口只能由网络管理人员恢复。
对于设置了Root保护功能的端口,其在所有实例上的端口角色只能保持为指定端口。一旦这种端口上收到了优先级高的配置消息,即其将
被选择为非指定端口时,这些端口的状态将被设置为侦听状态,不再转发报文(相当于将此端口相连的链路断开)。当在足够长的时间内没有
收到更优的配置消息时,端口会恢复原来的正常状态。
*在对一个端口进行配置的时候,在Loop保护功能,Root保护功能或者边缘端口设置三个配置中,同一时刻只能有一个配置生效。
*缺省情况下,交换机不启动BPDU保护功能、Root保护功能和环路保护功能。
*总之,直接与终端相连的端口设为边缘端口,根交换机设为Root保护功能,次汇聚交换机设为环路保护功能。
下面是两套华为交换机STP配置,大家参考一下
交换机STP配置1
『配置环境参数』
1. 交换机SwitchA、SwitchB和SwitchC都通过GE接口互连
2. SwitchB和SwitchC交换机是核心交换机,要求主备。
『组网需求』
要求整个网络运行STP协议。
数据配置步骤
【SwitchA交换机配置】
1. 启动生成树协议
[SwitchA]stp enable
【SwitchB交换机配置】
1. 启动生成树协议
[SwitchB]stp enable
2. 配置本桥为根桥
[SwitchB]stp root primary
【SwitchC交换机配置】
1. 启动生成树协议
[SwitchC]stp enable
2. 配置本桥为备份根桥
[SwitchC]stp root secondary
【SwitchD交换机配置】
1. 启动生成树协议
[SwitchD]stp enable
【补充说明】
1. 缺省情况下交换机的优先级都是32768,如果想人为指定某一台交换机为根交换机,也可以通过修改优先级来实现;
2. 缺省情况下打开生成树后,所有端口都会开启生成树协议,请把接PC的端口改为边缘端口模式;
3. 如果要控制某条链路的状态可以通过设置端口的cost值来实现
测试验证
1. 使用display stp查看交换机STP运行状态
2. 查看端口STP状态display stp interface Ethernet XX是否正确
交换机STP配置2
『配置环境参数』
1. SwitchA选用华为-3com公司的高中端交换机,如S8500或者S6500系列交换机
2. SwitchB和SwitchC选用华为-3com公司的低端交换机,如S3500或者S3550系列交换机
3. SwitchD、SwitchE和SwitchF选用华为 -3com公司的低端交换机,如S3000或者S2000系列交换机
『组网需求』
1. 所有设备运行STP(Spanning Tree Protocol)生成树协议
2. 以SwitchB为根网桥,阻断网络中的环路,并能达到链路冗余备份的效果
2数据配置步骤
『交换机STP配置流程』
通过改变交换机或者端口的STP优先级,从而达到手工指定网络中的根网桥,以及端口的STP角色,完成阻断环路及链路的冗余备份。
【SwitchB相关配置】
1. 全局使能STP功能(缺省情况下,DHCP功能处于使能状态)
[SwitchB]stp enable
2. 将SwtichB配置为树根(两种方法:将SwitchB的Bridge优先级设置为0,或者直接将SwitchB指定为树根,两种方法一个效果)
[SwitchB]stp priotity 0
[SwitchB]stp root primary
3. 在各个指定端口上启动根保护功能(在此例中,SwtichB的所有端口都是制定端口)
[SwitchB]interface Ethernet 0/1
[SwitchB-Ethernet-0/1]stp root-protection
【SwitchC相关配置】
1. 全局使能STP功能(缺省情况下,DHCP功能处于使能状态)
[SwitchB]stp enable
2. 将SwtichC配置为备份树根(两种方法:将SwitcCB的Bridge优先级设置为4096,或者直接将SwitchC指定为备份树根,两种方法一个
效果)
[SwitchB]stp priotity 4096
[SwitchB]stp root secondary
3. 在指定端口上启动根保护功能(在此例中,SwtichC的端口0/1、0/2和0/3是指定端口)
[SwitchB]interface Ethernet 0/1
[SwitchB-Ethernet-0/1]stp root-protection
【其他Switch的相关配置】
将接PC机的端口stp功能关闭,或者配置为边缘端口,并使能BPDU保护功能
[SwitchD -Ethernet0/4]stp disable
[SwitchD -Ethernet0/5]stp edged-port enable
[SwitchD ]stp bpdu-protection
【补充说明】
配置了”bpdu-protection”以后,如果某个边缘端口收到BPDU报文,则该边缘端口将会被关闭,必须由手工进行恢复。
当端口上配置了”stp root-protection”以后,该端口的角色只能是指定端口,且一旦该端口上收到了优先级高的配置消息,则该端口的状态
将被配置为侦听状态,不再转发报文,当在足够长的时间内没有收到更优的配置消息时,端口会恢复原来的正常状态。