EthChannel以太信道
交换机之间的链路速度是有限的,也许在某些情况下会变得拥挤EthChannel可以通过将多条物理链路绑定为一条逻辑链路来解决此种问题。
现有的情况,很多时候,交换机端口速度达到极限,当许多VLAN的流量到达接入层交换机,当接入层交换机将流量转发给汇聚层交换机时,带宽会产生局限。
速率更高的接口已经无法承载所有VLAN发来的入站流量,如果在接入和分布层交换机之间连接多条链路,则必须要求各物理链路配置完全一致,而且有可能产生环路,而默认的STP策略也会阻塞一条链路。
EthChannel是由Cisco研发的一种技术,思想是将多个以太网端口分组到一个逻辑通道中,EthChannel优势:
1.依靠的是已有的端口,意味着并不需要升级现有的交换机之间的链路,节约了成本。
2.绝大多数配置在EthChannel接口下完成,而不需要逐一对接口进行配置,在portchannel下的配置所有捆绑的物理接口都会继承,保证了物理接口配置的一致性。
3.EthChannel会实现冗余,所有链路会被看成一条逻辑连接,因此,其中一条物理链路断开不会给拓扑带来任何变化,STP也不会重新进行计算,只要EthChannel中还有一条链路在工作,那么EthChannel就正常。
4.根据平台不同,在同一个EthChannel几条链路之间可以实现负载。
EthChannel支持最多8条链路16个端口,支持EthChannel不仅仅局限于交换机,对于服务器,路由器,都是可以的。
很多情况下EthChannel会创建一条逻辑的点到点链路,同一条EthChannel链路不能向两台不同的交换机发送流量,一条EthChannel总是只能连接两台设备,连接的所有端口配置必须相同。
EthChannel可用来汇聚Access和Trunk端口,单个的EthChannel会组成一条逻辑链路,如果两设备之间有多条链路,STP会阻塞掉其中一些。
EthChannel也可以汇聚三层端口。在多层路由中会介绍。
EthChannel两种协议:
PAGP(端口汇聚协议):Cisco私有协议,在使用PAGP配置EthChannel时,PAGP会在启用了EthChannel的端口之间发送,以协商建立这条通道。
PAGP数据包每个30S发送一次,PAGP会通过数据包来查看两端的配置是否一致,也会以此管理交换机两端添加链路及链路失效问题。
PAGP可以检测两端的配置,确保这些配置是否兼容。
PAGP模式
Auto: 会使端口进入被动协商状态,此状态下,接口会对PAGP数据包做出相应,但不会主动发起协商。(默认)
Desirable: 会使端口进入主动协商状态,此状态下,接口会主动发送PAGP数据包,来主动与其他接口进行协商。
On: 会强制使端口不使用PAGP而形成EthChannel。配置为此种状态,接口不会交换PAGP数据包。
Non-silent: 如果没有在Auto和Desirable模式下没有指定关键字Non-silent,默认是silent,这种设置会使用PAGP来进行操作,使接口连接到一个通道组中,并使用此接口来进行数据传输。
注意:ON模式下,接口不会进行协商的,和DTP要区分开。
LACP(链路汇聚控制协议):启用某端口的LACP协议后,该端口将通过发送LACPDU向对端通告自己的系统优先级、系统MAC地址、端口优先级、端口号和操作Key。对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够汇聚的端口,从而双方可以对端口加入或退出某个动态汇聚组达成一致。
LACP模式
Psssive: 会使接口进入被动协商状态,此状态下,接口会对LACP数据包做出相应,但不会主动发起协商。(默认)
Active: 会使接口进入主动协商状态,此状态下,接口会发送LACP数据包主动与其他端口进行协商。
On: 这种模式会强制端口形成EthChannel。并不需要使用LACP和PAGP。
LACP和PAGP一样,都需要链路两端的模式完全兼容,才可以。
配置EthChannel的要求:
1.支持EthChannel,一条EthChannel最多8条链路捆绑
2.一个EthChannel上所有端口都必须工作在相同的速率,相同的双工模式下,如果EthChannel中某个接口处于关闭状态,那么这条链路就会失效
3.如果EthChannel端口被配置为SPAN的目标端口,则这个端口不会回送任何的流量,EthChannel建立不起来
4.三层EthChannel中,应该为逻辑的portchannel配置接口,而不是为EthChannel中所有的物理端口配置IP
5.EthChannel中所有的端口要划分进相同的VLAN,如果是trunk链路,Native VLAN也要一致。
6.链路两端允许的VLAN范畴要一致。
7.portchannel会影响EthChannel中所有的端口配置。
配置命令:
Switch(config)#interface range XX
Switch(config-if-range)#channel-group XX mode [no|auto|desirable]
Switch(config-if-range)#channel-protocol [pagp|lacp]
Switch(config)#interface port-channel XX
EthChannel的负载均衡:
默认是基于源MAC做负载
基于MAC,IP,端口号,共九种
EC的负载均衡,如果链路两端只有两台设备,使用基于源目MAC可以实现EC的流量负载均衡,如果使用基于源目IP,则流量37开,分担到EC的链路中
如果目的地有多个,设备会根据目的地的不同 来决定走哪条链路,分担流量,
如果源有多个,根据源IP,或源MAC的不同来实现负载均衡
如果类似上图A,B之间,根据服务的不同,可以选择基于源目端口都是可以的。
STP(Spanning Tree Protocol)生成树协议
网络拓扑中,如果交换机之间存在多条冗余路径,就意味着可能产生环路。有些交换机会看到某些站点同时出现在交换机的两侧。为了在阻止环路的同时还能提供路径冗余,STP定义了一个在扩展网络中可以延伸到所有交换机上的树形结构。
冗余网络会造成:
1.多帧复制
2.MAC地址表的翻动
3.广播风暴
STP(802.1D)——公有
STP采用STA(Spanning Tree Arithmetic)算法。
STA会在冗余链路中选择一个参考点(生成树的根),将选择到达要的单条路径,同时阻断其他冗余路径。一旦已选路径失效,将启用其他路径。
BPDU(Bridge Protocol Data Unit)
STP的各种选举是通过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的。
对于参与STP的所有SW,它们都通过数据消息的交换来获取网络中其他SW的信息,这种消息就被称为BPDU。
BPDU是直接封装在二层的协议 802.1D 目标地址是组播01-80-c2-00-00-00
每隔两秒发送一次。
交换机使用BPDU完成下列任务:
1.选举根桥
2.确定冗余路径位置
3.通过阻塞特定端口来避免环路
4.通告网络拓扑变更
5.监控STP状态
BPDU的两种类型:
1、配置BPDU--只能在根网桥产生配置BPDU,包括了STP参数,配置BPDU可用于选举根桥和保持拓扑稳定。每隔2S由根桥发送一个包含当前配置的BPDU。
2、TCN(topology change notification 拓扑变更通告)BPDU--这种BPDU是当交换机检测到拓扑发生变更时所产生。
·配置BPDU包含以下的字段
1、Protocol ID : 固定为0
2、Version : 802.1D (0)
3、Message Type : (Config BPDU=0x00 / TCN BPDU=0x80)
4、Flags
5、Root ID
6、Cost of Path
7、Bridge ID 由优先级和MAC地址组成,PVST+ RPVST会加上VLAN-ID,
8、Port ID
9、Message age
10、Max age
11、Hellotime
12、Forward delay
STP的环境下,网桥从根端口处连续接收配置BPDU,从不向根桥发送配置BPDU。非根桥只负责BPDU的转发。
BID(Bridge ID):
STP为每台SW分配唯一的一个标识符,称为BID(Bridge ID)
BID=2(Bridge Priority优先级)+6(MAC)=8 Bytes
802.1D规定,CISCO交换机默认优先级为32768 取值范围是0~~~~65535
STP计时器:
Hello呼叫:定期发给邻接交换机BPDU的时间。
spanning-tree vlan 2 hello-time 2
Forward转发:指定了端口处于监听,和学习状态的时间。
spanning-tree vlan 2 forwad-time 4
Maxage最大老化:指定了在一个端口上接收并被保存的BPDU的生命期长度,计时器到期之后,端口就可以成为指定端口。
spanning-tree vlan 2 max-age 6
STP端口状态:
阻塞(Blocking):二层接口不参与帧转发,不学习MAC地址,监听入向BPDU
监听(listening):可以决定根,可以选择根端口,指定端口和非指定端口,不能学习MAC地址
学习(learning):准备参与帧的转发,可以学习入向帧的MAC地址(用来构建自己的MAC地址表)。还不能转发帧
转发(forwarding):可以转发帧,端口学习到接收帧的源MAC,可以根据目标MAC进行适当转发
禁用(disabled):不参与生成树,不转发数据帧
设备启动之初,网桥认为自己是根网桥,发送BPDU;并将过渡到监听状态。
STP计时器:
HELLO:指相邻BPDU之间的时间,默认时间下HELLO=2S 可控范围:1——10
转发延迟:指在监听和学习状态下所停留的时间,默认=15S 可控范围:4——30
最大寿命:网桥端口保存配置BPDU最大的时间长度,默认20S 可控范围:6——40
所有计时器依附根桥中的计时器,根桥将BPDU中的计时器传递给2层拓扑中的所有交换机
STP的选举
1.一个网络中选举一根桥
2.每个非根桥取唯一根端口
3.每条链路上取唯一指定端口(连接终端的端口必然是指定端口)
4.阻塞未分配到角色的端口
STP的根端口:去往根桥最近的端口
STP的指定端口:负责转发帧,每条链路一个,也就是说,根端口链路对端的必定是指定端口
实际上,根端口和指定端口都会负责帧的转发和接收,根端口的选举是寻找一个桥上到达根桥最近的办法,当转发根桥的BPDU和接收非根桥发来的TCN的时候,根端口和指定端口扮演的是不同的角色。
1.网络中BID最小的成为根桥
默认Priority:32768(0x8000)
优先级相同,则比较MAC地址,MAC是唯一的。
交换机都有一个基础MAC地址,
Sw2#show version 查看
Base ethernet MAC Address: 00:0D:28:61:35:00
交换机的每一个端口都有一个MAC地址,就是以Base(基准) MAC地址加上端口号得到。
2.到达根的最小路径开销
最小的发送BID (也就是说指的是链路对端)
最小的发送端口ID
Path Cost:根桥发出的COST值是0,在下一交换机的入口处才加上COST值,出口处COST值不变。
10Mbps:100/ 100Mbps:19/ 1Gbps:4/ 10Gbps:2
Port ID是由优先级+端口号组成
修改端口优先级:默认情况下是128
Sw1(config-if)#spanning-tree port-priority 16 注意:必须是16的倍数才行
3.到达根的最小路径开销
最小的发送BID
最小的端口ID
STP选举判断其实很简单,确定根桥以后,由于COST是在到达根桥方向的下一个桥的入接口累加,所以,根端口也很容易判断,指定端口的责任就是负责帧的转发,如果一个根端口的链路对端端口被BLK
,根端口也没有意义。由此得出,根端口的对端,必定是指定端口。