韩明
摘要:早期企业园区网络设计时往往采用了扁平型的组网架构,多采用单点互联方式。这样的组网架构过于简单,运行时没有冗余功能,往往其中一台交换机故障就会造成企业网络通信故障,网络服务终止。现在是一个信息化飞速发展的时代,企业网络在设计时往往对网络稳定性的要求比较高,要求其网络架构多点互联,多机热备。生成树技术能够在二层交换网中保证企业网络多点互联,同时也能够避免交换网络的环路。
关键词:生成树;Stp;Rstp;Mstp
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)09-0003-02
1 传统单点互联交换网络的缺陷
早期的小型网络往往采用单点互连,企业的终端计算机通过多台交换机连接在一起,这种网络部署简单,成本低廉。但是单点互联往往会因为交换机故障造成数据通信失败。对于一些大型的企业园区网络,特别是银行、证券等对网络稳定性要求非常高的企业,这种网络架构是不合格的。如果部署这种网络架构会给企业带来巨大的经济损失和不良社会影响。
2 采用多点互连交换网络的问题
2.1以太网环路问题
当我们采用多点互联时,由于以太网对于未知的单播帧采用泛洪的广播方式,这样就会形成广播风暴。以太网的广播特性就是将自己收到的广播帧复制到所有其他端口进行发送,其他的设备都能收到这样一个广播帧,但是由于多点互联原因,这个广播帧会被发送的交换机收到,此交换机又接着将此广播帧接着复制扩散到其他端口进行发送,形成一个死循环,一直到设备硬件资源消耗殆尽,网络停止服务为止。
2.2交换机Mac地址表抖动问题
交换机在进行数据转发时是依靠Mac地址表的,这张表是交换机基于端口连接的终端主机的源地址自己动态学习到的。如果网络有环路,交换机在传递未知单播帧时可能会遇到其他交换机地址表中也没有相应记录的情况,那么数据帧会携带源Mac地址由其他的端口发还给始发交换机,始发送交换机会学习到另一条源Mac地址相同的端口号,交换机会频繁的对Mac表进行刷新,造成通信问题。
2.3交换机多帧复制问题
由于交换网络环路的原因,交换机在转发数据时,可能将一个单播帧多次发送给目的主机,目的主机会存在多个副本,这样会造成网络带宽及设备性能的极大浪费。
3 生成树协议的作用
生成树协议能够在企业使用设备间多点互联冗余的情况下解决环路问题。生成树协议首先会在多台设备间选举一台性能最好的设备作为根桥,接着生成树协议会基于最短路径来选择出根端口,最后生成树协议会选举出指定端口。选举结束后不是根端口和指定端口的接口会被生成树协议阻塞掉,这个端口此时不能够在网络上发送数据,但是它能够接受其他设备发过来的bpdu报文,如果其他设备故障,这个端口会恢复数据的转发。
4 生成树协议的bpdu报文
生成树协议在工作时主要靠Bpdu报文来实现设备之间的沟通。Bpdu又名桥协议数据单元,该协议在生成树中有两种应用,第一种叫配置Bpdu,用于生成树协议种的设备进行根桥、相应端口的选举。第二种叫做拓扑变更Bpdu,主要应用于网络出现故障,网络拓扑发生改变时的通知信息。交换机的Mac地址表中的条目默认的老化时间是300秒,当网络的连接链路发生了改变时,数据转发的端口也随之发生改变,由于交换机转发时还是会按照地址表中端口转发,这样就会造成通信故障。Stp协议通过拓扑变更Bpdu报文来通知网络链路的变化情况,告知其他设备提前刷新地址表,解决了Mac地址表老化时间和拓扑变化不同步造成的通信问题。生成树协议Bpdu报文的关键字段主要有:1)桥ID:由网桥优先级加上网桥的mac地址组成,其中的网桥优先级默认为32768,可配置。2)根路径开销总和:描述到达根桥的距离及到达根桥经过的路径开销总和。
网桥端口ID:由网桥端口的优先级加上网桥端口编号组成,端口优先级默认128。
计时器:计时器主要定义了设备在进行生成树时每一步工作需要多少时间来完成,生成树协议当中的计时器主要有:1)老化时间计时器;2)设备转发延迟计时器;3)设备间通信时发送配置Bpdu的Hello计时器。
5 生成树协议的选举机制
5.1生成树协议的选舉规则
生成树选举规则是比小,不是比大。如例:网桥1的桥优先级为默认的32768,网桥2的桥优先级被设置为4096,那么网桥2的优先级就比网桥1要更优,会被选举为根桥。
5.2生成树协议根桥的选举原则
当设备运行生成树协议时,首先会认为自己是根桥,同时向其他设备通告,并接受其他设备发过来的配置Bpdu。设备会将自己的桥ID和其他设备发送过来的桥ID进行对比。按照选举的规则,桥ID小的设备会成为根交换机。因为桥ID是由桥优先级和设备自己本身的Mac地址组成的,那么就避免了设备在选举根桥时选不出来的尴尬情况。即使设备的桥优先级都保持默认,但由于每台交换机的Mac地址不可能相同,接着比Mac地址也可以选出优先设备,Mac地址小的设备会被选举为根交换机。
5.2设备根端口选择
在生成树协议选出根交换机后,其他的非根交换机需要确定根端口。设备在选择根端口时有以下规则。1)设备首先会检查自己连接到根交换机的端口,在多个端口中比较那个端口连接到根网桥的路径开销值最小,那么这个端口就是最优先的端口,会被选为根端口。2)如果是两台交换机通过两条双绞线直连的拓扑情况,那么由于非根设备连接根交换机的端口到达根网桥的路径开销时相同的,那么非根设备会接着比较自己的两个端口的端口ID,数值小的端口会成为根端口,另一个端口会被阻断。
5.3 设备指定端口的选择
生成树协议完成以上工作后接着要选择出指定端口,指定端口是能够正常发送数据的非根端口,在生成树协议中根交换机的所有端口都是指定端口。指定端口在选举中首先会比较自己连接到根端口的路径开销,如果路径开销一致,接下来会比较自己和其他非根交换机的桥ID,桥ID小的设备端口会成为指定端口。
6 生成树协议的分类
6.1 Stp生成树协议
生成树协议,最早应用的生成树协议,其他生成树协议的起源。由于该协议开发的比较早,所以缺陷比较多。其中最大的问题是收敛时间过慢。如果交换机直连的网络链路故障时stp协议的收敛时间大约为30秒左右。如果是因为根桥设备问题,硬件资源消耗殆尽,迟迟不能将Bpdu通告个其他非根交换机,那么其他非根交换机会持续等待到计时器超时,再加上两倍的转发延时时间,总共50秒钟的时间才能完成收敛。由于收敛时间过慢,Stp协议现阶段已经淘汰,很少有企业使用。Stp生成树协议对于端口定义了几种状态机制。
1)阻塞状态 在在这种状态下交换机不转发任何数据,但是可以接收Bpdu数据。
2)侦听状态 在这种状态下交换机可以接受和发送Bpdu,但是不能接受和发送任何网络数据。
3)学习状态:在这种状态下交换机开始学习端口连接主机的网卡硬件地址,建立硬件地址表,为下一步转发网络数据做好最后的准备。
4)转发状态:在这种状态下交换机可以发送和接受各种数据,包含交换机之间通信的Bpdu。
6.2 Rstp 快速生成树协议
Rstp是在传统生成树协议上改进出来的一种快速生成树协议,它的Bpdu和Stp协议的Bpdu基本上相同。快速生成树协议的最大特点就是网络出现拓扑变化是的收敛时间要大大的快于Stp协议。它改进了Stp协议的端口机制,将端口的状态机制进行了一定的优化,设备会快速的由阻塞状态迁移到侦听状态,最后发展到转发状态。同时Rstp协议定义了它的两种端口角色,替代端口和备份端口。其中是替代端口是根端口的备份,备份端口是指定端口的备份。备份端口只有在交换机连接集线器这样的总线型设备,或者一个交换机上连线时产生自环时才能产生。Rstp在网络拓扑发生改变时能够快速响应,这是因为Rstp协议采用了Pa机制。交换机利用Pa机制能够更快的实现网络链路出现变化时的同步速度。
6.3 mstp 多生成树协议
Rstp协议在一定程度上解决了生成树收敛速度慢的问题,在企业网络中部署的也比较多。但是该协议也有相应的缺陷。如企业多点互联时,总会有一条链路被阻断,企业多个不同vlan流量的数据会在一条链路上进行传递,浪费了企业设备的带宽。同时由于网络链路发生故障时会生成树会进行链路的切换,可能因为其它链路上的交换机没有统一配置相应的vlan
造成通信故障。因为上述原因,所以在生成树协议中又产生了一种Mstp协议。Mstp协议在实现企业网络冗余的条件下,同时还可以对企业的业务流量进行负载均衡。该协议和其他生成树协议不同的地方是它以实例来进行生成树的运算,每个mstp的实例中会建立相应的vlan映射关系,这个映射关系每台设备必须统一。如我们在s1交换机上创建instance 1,其中包含了vlan 1,vlan10,创建instance2其中包含vlan20、vlan30 ,那么在s2这台设备上也需要配置同样的映射关系。我们可以统过创建多个实例,并将不同设备设置为不同实例的根桥来实现流量的負载均衡。如我们可以在s1交换机上通过配置优先级来让其成为实例1的根桥,在s2交换机上也配置优先级让其成为实例2的根桥,这样就会让vlan1和vlan10的流量通过s1交换机转发,同样vlan20、30的流量会通过s2交换机的链路进行转发,同时两台设备可以互为备份。通过以上配置既可以给企业的网络提供交换冗余,又能有效的利用设备链路,达到负载均衡的作用。
7 生成树技术的部署原则
1)大多数网管交换机出厂时默认都开启了生成树协议,但是少部分设备默认是关闭的,所以配置时需检查生成树协议是否开启,最好先配置再连线。
2)在部署生成树协议上要保持设备运行相同的生成树协议,虽然Rstp向下兼容Stp协议,但是网络的收敛速度会变慢,最好企业在设计网络时采用Mstp协议,在保证冗余的情况下,可以实现负载均衡。
8 结束语
生成树协议的出现,解决了企业交换网络多点互联时产生的环路问题,提升了企业的网络稳定性,同时mstp协议在保证企业网络冗余性的同时还提供了负载均衡的作用,是一个优秀的解决方案。
参考文献:
[1] 朱凯进,席小刚.浅析生成树协议在大型局域网内的正确应用[J].硅谷,2010(24).