在局域网中,咱们为了保证网络的健壮性和稳定性,通常会在关键的部位实施冗余,最(便)常(宜)见(点)的,就是实施链路冗余或者设备冗余:api
看起来是很爽了,实际上问题是大大的,好比图1,若是交换机A、B之间的4个端口都处于转发状态,而此时下联的任意某台PC发出一个广播包,会怎么样?很悲催!因为交换机两条线路造成了环路,而且交换机端口又不能隔离广播包,全部的端口都会无条件的转发这个广播包,从而形成广播风暴,最终会致使网络资源耗尽,交换机死机。。。(你也可能会被XX骂一顿)网络
为了解决交换网络实施冗余致使的环路,大拿们开发了STP(Spanning Tree Protocol)生成树协议,它的原理提及来也很简单,把环路中的某一个端口关闭掉(阻塞),从而解决环路;当未阻塞的链路(主线)出现故障的时候,再把阻塞的那个端口打开,从而启动备线,这样就实现了冗余,可是,同一时刻只能用一条线传输数据(还剩下一半的悲催)。负载均衡
固然,即便开启了STP(通常交换机都是默认开启),你可能仍是会被XX骂!由于:第一,你浪费了一条线的资源,虽然实现了冗余,可是未能负载均衡;第二,图-2中,核心之间的链路被阻塞了,而下行的两条链路倒是转发的,这个算是哪门子的备份?(咱们应该实现的是下行的两条链路之间的备份)ide
对于图一的问题,若是咱们是chunǚ座的,有严重的强迫症(前提还要有钱),咱们设施了大量冗余,然而永远只有一条链路处于可用状态(图-3):spa
对于这样的冗余网络,咱们建议实施以太信道—EtherChannel,它能够把最多8条相同的链路捆绑(虚拟)成一条,而对于STP来讲,只认虚拟后的链路,既然只有一条链路,就不存在阻塞端口了。至于这些链路在EtherChannel中如何分配流量,这和STP已经没有关系了,因此实施EtherChannel既能够防止环路,又能够实现带宽的提高,还能够实现自动负载均衡,好处太多。3d
EtherChannel有思科私有的PAGP协议,也有标准化的LACP协议,二者差异很小,可是互相不兼容。如下是图-3实施思科PAGP的过程和效果:code
A(config)#inter range fa0/1-4 A(config-if-range)#shut #关闭端口后再作以太信道的配置 A(config-if-range)#swi mo trunk #配置中继 A(config-if-range)#channel-protocol pagp #思科默认就是PAGP协议,能够不写 A(config-if-range)#channel-group 1 mode desirable #配置主动模式 A(config-if-range)#no shut B(config)#inter range fa0/1-4 B(config-if-range)#shut B(config-if-range)#swi mo tr B(config-if-range)#channel-protocol pagp B(config-if-range)#channel-group 1 mode auto #配置被动模式 B(config-if-range)#no shut
从拓扑的灯状态已经看到,全部的链路都已经处于转发状态(绿灯),咱们也能够经过查看STP状态来验证:blog
话再说回来,对于图二,不但默认选择的阻塞链路有问题,并且因为要实现备份的两条链路分别是链接不一样的核心交换机,没法直接实施EtherChannel,又该怎么办呢?资源
在思科设备上,不管是开启哪一种(新旧版本)生成树,均可以实现,如图-2,若是有两个以上的VLAN,可让不一样VLAN的根部署在不一样的核心交换机上,从而让阻塞的端口分布在不一样的下行链路上。开发
如下是以思科交换机为例,实施基于VLAN的RSTP负载均衡的配置以及结果:
CORE-1(config)#vlan 2 CORE-1(config-vlan)#vlan 3 CORE-1(config-vlan)#inter g0/1-2 CORE-1(config-if-range)#swi trunk encapsulation dot1q #三层交换机先配置封装协议 CORE-1(config-if-range)#swi mo tr #配置中继 CORE-2(config)#vlan 2 CORE-2(config-vlan)#vlan 3 CORE-2(config-vlan)#inter g0/1-2 CORE-2(config-if-range)#swi trunk encapsulation dot1q CORE-2(config-if-range)#swi mo tr A-1(config)#vlan 2 A-1(config-vlan)#vlan 3 A-1(config-vlan)#inter range g0/1-2 A-1(config-if-range)#swi mo tr A-1(config-if-range)#inter fa0/1 A-1(config-if)#swi mo acc A-1(config-if)#swi acc vlan 2 A-1(config-if)#inter fa0/2 A-1(config-if)#swi mo acc A-1(config-if)#swi acc vlan 3 CORE-1(config)#spanning-tree mode rapid-pvst #配置快速STP,思科叫RPVST CORE-1(config)#spanning-tree vlan 2 root primary #配置VLAN2的主根 CORE-1(config)#spanning-tree vlan 3 root secondary #配置VLAN3的备根 CORE-2(config)#sp m r CORE-2(config)#span vlan 3 roo pri CORE-2(config)#span vlan 2 roo sec A-1(config)#sp m r
验证拓扑中灯的状态:
注意,若是是华为设备,因为STP和RSTP不支持基于VLAN的STP负载均衡,因此要启用MSTP才能实现。
对于图-2的拓扑,你们还要了解一个技术,思科Nexus交换机上支持vPC,全称是Virtual Port-Channel,是一种支持跨设备进行链路捆绑的协议,也就是容许一个设备使用2个上游的设备端口来实现Port Channel,这样是否是更厉害了?固然不是全部设备都支持这种高级功能的,你懂的。
文章篇幅有限,详细的STP、EtherChannel的原理和配置,能够参考《网络工程师小白入门》专栏:思科、华为配置对比入门,结合wireshark抓包讲解,一学三用!
双11活动特惠,学院限时开团,原价51元,开团价39元: