port channel
先介绍一下port group 的概念:port group 是配置层面上的一个物理端口组,配置到port group里面的物理端口才可以参加链路汇聚,并成为port channel里的某个成员端口。在逻辑上,port group 并不是一个端 口,而是一个端口序列。加入port group 中的物理端口满足某种条件时进行端口汇聚,形成一个port channel,这个port channel 具备了逻辑端口的属性,才真正成为一个独立的逻辑端口。端口汇聚是一种逻辑上的抽象过程,将一组具备相同属性的端口序列,抽象成一个逻辑端口。port channel是一组物理端口的集合体,在逻辑上被当作一个物理端口。对用户来讲,完全可以将这个port channel 当作一个端口使用,因此不仅能增加网络的带宽,还能提供链路的备份功能。
端口汇聚功能通常在交换机连接路由器、主机或者其他交换机时使用。
port channel 的带宽为4 个端口带宽的总和。而s1如果有流量要经过port channel 传输到s2,s1 的portchannel 将根据流量的 源mac 地址及目的
mac地址的最低位进行流量分配运算,根据运算结果决定由port channel 中的某一成员端口承担该流量。当port channel 中的一个端口连接失败,原应该由该端口承担的流量将再次通过流量分配算法分配给其他连接正常的端口分担。流量分配算法由交换机的硬件决定的。
为使port channel 正常工作,port channel 的成员端口必须具备以下相同的属性:
- 端口均为全双工模式;
- 端口速率相同;
- 端口的类型必须一样,比如同为以太口或同为光纤口;
- 端口同为access 端口并且属于同一个vlan 或同为trunk 端口;
- 如果端口为trunk 端口,则其allowed vlan 和native vlan 属性也应该相同。
LACP
IEEE 802.3ad标准的LACP(Link Aggregation Control Protocol, 链路聚合控制协议)是一个关于动态链路聚合的协议,它通过协议报文 LACPDU(Link Aggregation Control Protocol Data Unit, 链路聚合控制协议数据单元)和相连的设备交互信息。当端口启用LACP协议后,端口通过发送LACPDU来通告自己的系统优先级,系统MAC,端口的优先级,端口号和操作key等。相连设备收到该报文后,根据所存储的其他端口的信息,选择端口进行相应的聚合操作,从而可以使双方在端口退出或者加入聚合组上达到一致。
端口有3种聚合模式:主动(Active)模式、被动模式(Passive)和静态模式。
其中主动模式的端口会主动发起LACP报文协商;被动模式的端口则只会对收到的LACP报文做应答;静态模式不会发出LACP报文进行协商。
聚合组内的成员端口状态可能处于3种状态:
1.当端口的链路状态处于Down时,端口不可能转发任何数据报文,显示为”down”状态。
2.端口链路处于Up状态,并经过LACP协商后,端口被置于聚合状态(端口被作为一个聚合组的一个成员参与聚合组的数据报文转发),显示为“bndl”状态。
3.当端口链路处于UP状态,但是由于对端没有启用LACP,或者因为端口属性和主端口不一致等一些因素导致经过报文协商端口被置于挂起状态(处于挂起状态的端口不参与数据报文转发),显示为“susp”状态。
LACP的协商过程分析:
在收到对端的LACP报文后,选取系统ID优先级比较高的系统。在系统ID优先级较高的一端,按照端口ID优先级从高到低的顺序,设置聚合组内端口的处于聚合状态。对端收到更新后的LACP报文后,也会把相应的端口设置成聚合状态。
TRUNK 端口
TRUNK(端口汇聚)是在交换机和网络设备之间比较 经济的增加带宽的方法,如服务器、路由器、工作站或其他交换机。这中增加带宽的方法在当单一交换机和节点之间连接不能满足负荷时是比较有效的。
TRUNK 的主要功能就是将多个物理端口(一般为2-8个)绑定为一个逻辑的通道,使其工作起来就像一个通道一样。将多个物理链路捆绑在一起后,不但提升了整个网络 的带宽,而且数据还可以同时经由被绑定的多个物理链路传输,具有链路冗余的作用,在网络出现故障或其他原因断开其中一条或多条链路时,剩下的链路还可以工 作。但在VLAN数据传输中,各个厂家使用不同的技术,例如:思科的产品是使用其VLAN TRUNK 技术,其他厂商的产品大多支持802.1q协议打上TAG头,这样就生成了小巨人帧,需要相同端口协议的来识别,小巨人帧由于大小超过了标准以太帧的 1518字节限制,普通网卡无法识别,需要有交换机脱TAG。
TRUNK功能比较适合于以下方面具体应用:
1、 TRUNK功能用于与服务器相联,给服务器提供独享的高带宽。
2、TRUNK功能用于交换机之间的级联,通过牺牲端口数来给交换机之 间的数据交换提供捆绑的高带宽,提高网络速度,突破网络瓶颈,进而大幅提高网络性能。
3、Trunk可以提供负载均衡能力以及系统容 错。由于Trunk实时平衡各个交换机端口和服务器接口的流量,一旦某个端口出现故障,它会自动把故障端口从Trunk组中撤消,进而重新分配各个 Trunk端口的流量,从而实现系统容错。
设置TRUNK需要指定一个作为主干的端口,比如 2/24,如把某个端口设成Trunk方式,命令如下:
set trunk mod/port [on | off | desirable | auto | nonegotiate] [vlan_range] [isl | dot1q dot10 | lane | negotiate]。
该命令可以分成以下4个部分:
mod/port:指定用户想要运行Trunk的那个端 口;
Trunk的运行模式,分别有:on | off | desirable | auto | nonegotiate。
要想在快速以太网和千兆以太网上自动识别出Trunk,则必须保证在同一个VTP域内。也可以使用On或Nonegotiate模式来强迫一个端口上起 Trunk,无论其是否在同一个VTP域内。承载的VLAN范围。缺省下是1~1005,可以修改,但必须有TRUNK协议。使用 TRUNK时,相邻端口上的协议要一致。
另外在中心交换机上需要把和下面的交换机相连的端口设置成TRUNK,这样下面的交换机中的 多个VLAN就能够通过一条链路和中心交换机通信了。
Port Channel配置命令
1、 port-group
命令:port-group [port-group-number] [load-balance { src-mac|dst-mac | dst-src-mac | src-ip| dst-ip|dst-src-ip}]no port-group [port-group-number] [load-balance]
功能: 新建一个port group,并且设置该组的流量分担方式。如果没有指定流量分担方式则为设置默认的流量分担方式。该命令的no操作为删除该group或者恢复该组流量分担的默认值,敲入load-balance表示恢复默认流量分担,否则为删除该组。
参数:[port-group-number] 为port channel的组号,范围为1~16,如果已经存在该组号则会报错。dst-mac 根据目的mac进行流量分担;src-mac 根据源mac地址进行流量分担;dst-src-mac 根据目的mac和源mac进行流量分担;dst-ip 根据目的ip地址进行流量分担;src-ip 根据源ip地址进行流量分担;dst-src-ip 根据目的ip和源ip进行流量分担。如果是修改流量分担方式,并且该port-group已经形成一个port-channel,则这次修改的流量分担方 式只有在下次再次汇聚时才会生效。
缺省情况:缺省交换机端口不属于port channel,不启动lacp协议
命令模式:交换机全局配置模式
举例:新建一个port group,并且采用默认的流量分担方式
switch(config)#port-group 1
删除一个port group
switch(config)#no port-group 1
2、 port-group mode
命令:port-group [port-group-number] mode {active|passive|on}no port-group [port-group-number]
功能:将物理端口加入port channel,该命令的no操作为将端口从port channel中去除
参数:[port-group-number] 为port channel的组号,范围为1~16;active(0) 启动端口的lacp协议,并设置为active模式;passive(1) 启动端口的lacp协议,并且设置为passive模式;on(2) 强制端口加入port channel,不启动lacp协议。
命令模式:接口配置模式
缺省情况:缺省交换机端口不属于port channel,不启动lacp协议
使用指南:如果不存在该组则会先建立该组,然后再将端口加到组中。在一个port-group中所有的端口加入的模式必须一样,以第一个加入该组的端口模 式为准。端口以on模式加入一个组是强制性的,所谓强制性的表示本端交换机端口汇聚不依赖对端的信息,只要在组中有2个以上的端口,并且这些端口的 vlan信息都一致则组中的端口就能汇聚成功。端口以active和passive方式加入一个组是运行lacp协议的,但两端必须有一个组中的端口是以 active方式加入的,如果两端都是passive,端口永远都无法汇聚起来。
举例:在ethernet0/0/1端口模式下,将本端口以active模式加入port-group 1
switch(config-ethernet0/0/1)#port-group 1 mode active
3、 interface port-channel
命令:interface port-channel [port-channel-number]功能:进入汇聚接口配置模式
命令模式:全局配置模式
缺省情况:
使用指南:进入汇聚端口模式下配置时,如果是对gvrp,spanningtree模块做配置则对汇聚端口生效,如果汇聚端口不存在,也就是说在端口没有 汇聚起来时先提示错误信息,记录该用户配置操作,当端口真正汇聚起来以后恢复用户刚才对未形成汇聚端口的配置动作,注意只能恢复一次,如果因为某种原因汇 聚组被拆散然后又汇聚起来,用户一开始的配置不能被恢复。如果是对其他模块做配置,比如做shutdown, speed配置,则是对该port-channel对应的port-group中的所有成员端口生效,起到一个群配的作用。
举例:进入port-channel1 配置模式
switch(config)#interface port-channel 1
switch(config-if-port-channel1)#
- 配置举例:
- 在交换机CISCO_1上设置LACP系统优先级为61440,在端口E 0/1、E 0/2、 E 0/3上启用动态链路聚合协议,并设置端口的LACP端口优先级为61440。
- CISCO_1# configure terminal
- CISCO_1(config)# lacp system-priority 61440
- CISCO_1(config)# interface range Ethernet 0/1-3
- CISCO_1(config-if-range)# lacp port-priority 61440
- CISCO_1(config-if-range)# channel-group 1 mode active
- CISCO_1(config-if-range)# end
- 在CISCO_2上设置LACP系统优先级为4096,在端口E 0/1、E 0/2、E 0/3启用动态链路聚合协议,并设置端口的LACP端口优先级为 4096。
- CISCO_2# configure terminal
- CISCO_2(config)# lacp system-priority 4096
- CISCO_2(config)# interface range Ethernet 0/1-3
- CISCO_2(config-if-range)# lacp port-priority 4096
- CISCO_2(config-if-range)# channel-group 1 mode active
- CISCO_2(config-if-range)#end