两台思科交换机(或使用Cisco Packet Tracer模拟器)
Console配置线(用来连接交换机和PC)
PC一台(用来配置交换机)
1、链路聚合的基本概念1)、链路聚合 链路聚合是通过将多个以太网端口捆绑在一起形成的,多个物理以太网接口捆绑后形成一个聚合组(Channel-Group),聚合组内的所有物理链路作为一条逻辑链路来传送数据,多个端口汇聚成的逻辑接口称为聚合接口(Port-Channel),一个聚合组和一个聚合接口形成一条聚合链路(Etherchannel)。端口汇聚可以实现流量在汇聚组中各成员端口之间进行负载分担,以增加链路带宽,同时同一汇聚组内各个成员端口之间彼此动态备份,提高了链路的可靠性,一般用于交换机的互连中以实现具有高可靠性和高可用性的数据链路。
2)、聚合接口 聚合组将物理端口绑定在一个逻辑接口下,每个聚合组唯一对应一个逻辑接口,称为聚合接口(Port-Channel),每个聚合接口用一个用户自定义的聚合接口ID(Group-ID)唯一标识。
3)、成员端口 聚合组内的各个端口称为该聚合组的成员端口,聚合组中的成员端口主要有三种状态: 绑定状态(P-bundled in port-channel):处于此状态下的端口已经成功加入聚合链路并可以参与数据转发。 未启动状态(down):此状态下的成员端口不参与数据转发。 独立状态(I-Stand-Alone):此状态下的端口并未加入聚合组,而是作为独立端口正常转发数据。
2、链路聚合协议1)、PAgP协议 PAgP协议(Port Aggregation Protocol,端口汇聚)是思科私有的动态链路汇聚协议,通过启用PAgP协议,两端端口通过交换PAgP数据包获取对端端口参数,根据这些信息自动形成聚合链路,并指定哪些端口发送PAgP包,哪些端口只接收PAgP包。这种协议只能在思科设备上运行。
2)、LACP协议 LACP(Link Aggregation Control Protocol,链路汇聚控制协议)是基于IEEE 802.3ad标准的实现链路动态汇聚与解汇聚的协议,是一种国际标准的链路汇聚协议,大部分厂商设备都兼容。LACP协议通过LACPDU(Link Aggregation Control Protocol Data Unit,链路汇聚控制协议数据单元)与对端交互端口信息,进行协商,实现对汇聚的自动化控制。
3、链路聚合的模式 思科交换机的链路聚合根据使用的协议可以分为三种工作模式LACP模式、PAgP模式和On模式。具体这三种工作模式下共有5种不同的端口模式active、passive、auto、desirable、on。其中active和passive使用LACP协议进行工作,auto和desirable使用PAgP协议进行工作,on则是强制启用链路聚合,相当于华三的手工聚合模式。我们来具体看一下这几种链路聚合模式的特点:
1)、LACP协议模式 这种链路聚合模式会使用LACP协议进行链路协商以形成聚合链路。这种模式下有两种端口模式可选,即active和passive。active模式下不管对端设备是否支持LACP协议,本端都会无条件启用LACP协议,这种模式下端口处于主动协商状态;而passive模式下只有检测到对端设备支持LACP协议,本端才会启用LACP协议,这种模式下端口处于被动协商状态。
2)、PAgP协议模式 这种链路聚合模式使用思科私有的PAgP协议进行链路协商以形成聚合链路。这种模式系也有两种端口模式可选,即auto和desirable。跟LACP模式下的两种端口模式相似,desirable模式下不管对端是否支持PAgP协议,本端都会启用PAgP协议;auto模式下只有检测到对端设备支持PAgP协议,本端才会启用LACP协议。
3)、On模式 使用On模式不经过协商(不使用任何链路聚合协议),直接进行强制链路聚合,只要两端端口二层配置一致(端口速率和所属VLAN一致),就可以直接将端口加入聚合接口,建立聚合链路。这种情况下,链路另一端聚合链路也必须使用On模式,否则会发生数据丢包。这种模式在两端设备不都支持PAgP协议或LACP协议的情况下比较有用,兼容性强,配置起来也比较方便,在实际中用的也比较多。
4、链路聚合的负载分担模式 聚合链路可以在多条物理链路上对数据流实现负载均衡,一般可以选择以下5种基准进行负载分担: dest-ip:基于目的IP地址进行负载分担 src-ip:基于源IP地址进行负载分担 dest-mac:基于目的MAC地址进行负载分担 src-mac:基于源MAC地址进行负载分担 src-dst-ip:基于源IP地址和目的IP地址进行负载分担 src-dst-mac:基于源MAC地址和目的MAC地址进行负载分担 一般默认的是基于源MAC地址进行负载分担,二层交换机没有特殊要求的话,保持默认负载分担模式即可。
注:这里只介绍了一些我们教程要用到的链路聚合的基本概念,可能并不是很全面,如果想了解更多细节请查阅官方技术手册。注:这里介绍的链路聚合概念和接下来的配置教程只适用于思科交换机,且只针对二层链路。
一般由于设备兼容性不同,支持的链路聚合协议也可能不同,动态的链路协商协议不一定总是适用,所以为了方便我们大多数时候在两端设备聚合端口使用On模式强制聚合来形成聚合链路,这种模式配置简单,兼容性强,在大多数情况下都直接使用这种模式进行简易的链路聚合配置。那么接下来我们就来了解一下如何使用这种简易的方式来配置链路聚合吧。
1、创建聚合组并进入聚合接口模式(全局配置模式) interface port-channel
2、聚合组描述(可选配置)(聚合接口模式) description
3、将端口绑定到聚合接口并选择端口模式(端口模式) channel-group
4、配置链路聚合负载均衡模式(可选配置)(全局配置模式) port-channel load-balance
5、聚合接口下进行端口配置(聚合接口端口模式) 将所有需要的成员端口加入聚合组之后,需要对聚合接口进行一些基本的二层配置,才能进行通信,如果成员端口已经加入某个聚合组,要对其进行二层配置,只能在聚合接口下进行集中配置。一般聚合链路用来交换机互连,可能会有承载不同的VLAN,所以最好将两端链路类型都配置成Trunk类型,如果都配置成Access口,必须保证两边Access端口所属VLAN一致。配置成员端口链路类型可以在聚合接口下进行统一配置,然后这些配置会自动同步到同一聚合组内的所有成员端口上,最后聚合组内所有成员端口都会拥有同样的端口配置(不包括某些特殊的配置信息,如端口描述信息只在当前端口生效)。示例:在聚合接口下配置链路类型为trunk口并允许所有VLAN通过。Cisco(config)#int port-channel 10Cisco(config-if)#switchport mode trunk Cisco(config-if)#switchport trunk allowed vlan all Cisco(config-if)#exit 这里在聚合接口10下配置好之后,这些配置会自动同步到两个成员端口te1/0/1和te2/0/1上。注:本端链路聚合配置好之后,对端也要进行相应的配置,否则无法进行正常通信。
1、查看链路聚合简要状态信息 查看所有聚合组简要状态信息: show etherchannel summary 查看所有指定聚合组简要状态信息: show etherchannel
这里显示所有聚合链路的简要状态信息,最上边为一些简写字母的含义注释,下边可以看到聚合组数量一共有三个。最下边为聚合组内端口的一些关键状态信息,第一列为聚合组编号(Group),可以看到交换机上有一共有1、2、6共3个聚合组;第二列为对应的三个聚合接口(Port-Channel)Po1、Po2、Po3,括号里用简写字母表示聚合接口的状态,从上边注释易知,S表示二层聚合接口,U表示在用,D表示聚合接口为Down,P表示接口已经正常加入聚合接口;第三列为聚合接口使用的协议类型(Protocols),这里为强制聚合所以没有使用相关链路聚合协议,对应参数也为空;第四列为对应聚合组内的端口成员(Ports),前边为端口号,括号内用简写字母表示端口状态。
2、查看聚合链路详细状态信息 查看所有聚合组详细状态信息: show etherchannel detail 查看所有聚合组详细信息: show etherchannel
最上边为聚合组信息,其中:Group state 表示聚合组的状态;Ports 表示当前聚合链路包含的成员端口数;Maxports :表示聚合链路支持的最大绑定端口数量。 之后为成员端口信息:其中 Port state 表示成员端口状态;Channel group :表示成员端口所属聚合组;Mode :表示成员端口的模式;Port-channel :表示成员端口所属的聚合接口;Load :表示成员端口的负载分担模式;Protocol :表示成员端口使用的聚合协议类型。 最后为聚合接口的信息,其中 Number of Ports 表示聚合接口中包含的成员端口数量;Port state 表示聚合接口的状态;Protocol 表示聚合接口使用的聚合协议类型;Port security 表示端口安全启用状态;最后显示了聚合接口中所有成员端口的简要状态信息。
3、查看聚合接口的详细状态信息 查看所有聚合接口的详细状态信息: show ehterchannel port-channel 查看指定聚合接口的详细状态信息: show etherchannel
4、查看聚合链路负载均衡模式 show etherchannel load-balance 如这里查看当前链路聚合使用的负载均衡模式,如下图所示,可以看到当前使用的基于源MAC地址(src-mac)的负载分担模式:
熟悉了链路聚合的基本配置命令后,我们来实际操作一下,由于实际交换机演示不方便,所以我们就以PT模拟器来进行演示,具体拓扑如下,两台2960接入交换机 Switch1 和 Switch2 使用两条千兆链路(一般实际中使用光纤线缆)互连,PC1连接 Switch1 的 F0/1 端口,所属 VLAN 为10,IP地址为 192.168.1.1,PC2连接 Switch1 的 F0/2 端口,IP地址为 192.168.2.1,所属 VLAN 为20,PC3连接 Switch2 的 F0/1 端口,IP地址为 192.168.2.2,所属 VLAN 为20,PC4连接 Switch2 的 F0/2 端口,所属 VLAN 为10,IP地址为 192.168.1.2。为了保证链路的可靠性和提高链路带宽,这里将两条互连链路做链路聚合从而实现负载分担和冗余备份,同时将互连带宽提升至原来的两倍,具体配置流程如下。
1、Cisco 2960S上配置链路聚合 首先在Switch0上创建聚合接口3,并把互连接口G0/1、G0/2加入聚合组,同样在Switch1上配置聚合接口3,并把互连接口G0/1、G0/2加入聚合组,然后在各自的聚合接口上配置端口中继模式为Trunk,允许业务VLAN通过,具体配置如下:
注:聚合接口需要手动 no shutdown 才会处于启动状态,默认创建后处于 shutdown 状态。注:两端交换机上的互连接口不需要配置相同的聚合接口ID,只要保证两端端口都加入了聚合组即可。
2、检查链路聚合状态 配置好之后,查看两端的链路聚合状态,如下图所示,可以看到两端交换机上聚合接口已经可以正常使用(U-in use),各成员端口已经正常加入聚合接口(P-in port-channel),说明聚合配置基本没问题了。
3、测试网络联通性 最后链路聚合配置完成之后,在两端终端PC上进行ping包测试,以确认数据可以正常传输,这里分别在终端PC1上ping终端PC4,在终端PC2上ping终端PC3,结果如下,可以看到两边网络已经正常连通且可以正常传输数据,说明链路聚合配置成功。
4、聚合链路稳定性测试 在终端PC1长ping终端PC4,这时将聚合链路中的一条链路shutdown,可以看到聚合链路中一个G0/1端口状态变为D-down,但另一个仍为正常绑定状态,观察ping包测试结果,可以看到整个过程中无丢包现象,一条链路出现故障后,数据流量可以自动无缝切换,保证业务不会中断(实际情况中自动切换时可能会出现极少量丢包)。
1、简单回顾一下链路聚合配置的主要命令: 创建聚合接口(全局配置模式下): interface port-channel
2、本教程的配置只适用于使用IOS系统的思科交换机二层链路的聚合,IOS不同版本命令可能有细微区别。
3、这里只介绍了简易聚合模式(不使用聚合协议),如果想了解其它聚合模式的更多技术细节可以参考官方手册。
4、如果觉得教程有帮助的,麻烦顺便帮忙投个票哈!
本篇教程主要介绍了一下思科交换机的简易链路聚合配置,配置比较简单,但是实际配置时可能会遇到一些其它干扰因素(如两端端口双工不匹配或物理链路故障等),但是只要慢慢排查还是能找到故障原因的,希望对大家有所帮助,每天都要加油丫~ By 看星星的小王子 2018.8.22