6.3 配置Eth-Trunk链路聚合
6.3.1 原理概述
在没有使用Eth-Trunk前,百兆以太网的双绞线在两个互连的网络设备间的带宽仅为100Mbit/s。若想达到更高的数据传输速率,则需要更换传输媒介,使用千兆光纤或升级成为千兆以太网。这样的解决方案成本较高。如果采用Eth-Trunk技术把多个接口捆绑在一起,则可以以较低的成本满足提高接口带宽的需求。例如,把3个100Mbit/s的全双工接口捆绑在一起,就可以达到300Mbit/s的最大带宽。
Eth-Trunk是一种捆绑技术,它将多个物理接口捆绑成一个逻辑接口,这个逻辑接口就称为Eth-Trunk接口,捆绑在一起的每个物理接口称为成员接口。Eth-Trunk只能由以太网链路构成。Trunk的优势在于:
■负载分担,在一个Eth-Trunk接口内,可以实现流量负载分担;
■提高可靠性,当某个成员接口连接的物理链路出现故障时,流量会切换到其他可用的链路上,从而提高整个Trunk链路的可靠性;
■增加带宽,Trunk接口的总带宽是各成员接口带宽之和。
Eth-Trunk在逻辑上把多条物理链路捆绑等同于一条逻辑链路,对上层数据透明传输。所有Eth-Trunk中物理接口的参数必须一致,Eth-Trunk链路两端要求一致的物理参数有:Eth-Trunk链路两端相连的物理接口类型、物理接口数量、物理接口的速率、物理接口的双工方式以及物理接口的流控方式。
6.3.2 实验内容
s1和s2为核心交换机,PC1属于IT部门,PC2属于HR部门,根据规划,s1和s2之间原由一条光纤线路相连,但是由于带宽等考虑,使用eth-trunk实现此需求。
6.3.3 实验拓扑
6.3.4 实验步骤
1、基本配置
根据实验拓扑图配置好PCIP地址,并且测试连通性。
[S1]interface Eth-Trunk 1 # 创建Eth-Trunk接口
[S1-Eth-Trunk1]mode manual load-balance # 指定为手工负载分担模式
[S1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]eth-trunk 1 # 把接口加入到eth-trunk接口
[S1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[S1-GigabitEthernet0/0/2]eth-trunk 1
[S2]interface Eth-Trunk 1
[S2-Eth-Trunk1]mode manual load-balance
[S2]interface GigabitEthernet 0/0/1
[S2-GigabitEthernet0/0/1]eth-trunk 1
[S2-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[S2-GigabitEthernet0/0/2]eth-trunk 1
在GE0/0/5没有连接的情况下,关闭GE0/0/5模拟没有连接。查看接口的生成树状态。
[S1]display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
0 Eth-Trunk1 ROOT FORWARDING NONE
[S2]display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
0 Eth-Trunk1 DESI FORWARDING NONE
可以观察到,两个接口被捆绑成一个Eth-trunk接口,并且该接口现在处于转发状态。使用ping命令持续测试,模拟故障发生。
PC>ping 192.168.1.1 -t
Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break
From 192.168.1.1: bytes=32 seq=1 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=2 ttl=128 time=94 ms
From 192.168.1.1: bytes=32 seq=6 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=7 ttl=128 time=94 ms
Request timeout!
From 192.168.1.1: bytes=32 seq=9 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=10 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=11 ttl=128 time=62 ms
From 192.168.1.1: bytes=32 seq=12 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=13 ttl=128 time=110 ms
可以观察到到链路发生故障时,链路立即进行切换,数据包仅丢了一个,并且只要物理链路有一条是正常的,Eth-trunk接口就不会断开,仍然可以保证数据的转发。可见,eth-trunk在提高了带宽的情况下,也实现了链路冗余。
2、配置Eth-trunk实现链路聚合(静态LACP模式)
在上面的情况中,假设两条链路中有一条出现了故障,只有一条链路的时候无法保证带宽。现在加一条链路作为备份链路,采用静态LACP模式配置Eth-trunk实现两条链路同时转发,一条备份,当一条转发链路出现故障时,备份链路立即进行数据转发。
开启GE0/0/5接口模拟增加一条新链路,并在Eth-trunk接口下,将工作模式改为静态LACP模式,注意,Eth-trunk接口下不能有物理链路在里面,不然会报错,用undo eth-trunk
命令移除。
[S1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]undo eth-trunk
[S1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[S1-GigabitEthernet0/0/2]undo eth-trunk
[S2]interface GigabitEthernet 0/0/1
[S2-GigabitEthernet0/0/2]undo eth-trunk
[S2-GigabitEthernet0/0/2]interface GigabitEthernet 0/0/2
[S2-GigabitEthernet0/0/1]undo eth-trunk
删除完成后,在Eth-trunk接口下,将工作模式改为静态LACP模式,并把三个接口分别加入到Eth-trunk接口。
[S1]interface Eth-Trunk 1
[S1-Eth-Trunk1]mode lacp-static
[S1-Eth-Trunk1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]eth-trunk 1
[S1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[S1-GigabitEthernet0/0/2]eth-trunk 1
[S1-GigabitEthernet0/0/2]interface GigabitEthernet 0/0/5
[S1-GigabitEthernet0/0/5]eth-trunk 1
[S2]interface Eth-Trunk 1
[S2-Eth-Trunk1]mode lacp-static
[S2-Eth-Trunk1]interface GigabitEthernet 0/0/1
[S2-GigabitEthernet0/0/1]eth-trunk 1
[S2-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[S2-GigabitEthernet0/0/2]eth-trunk 1
[S2-GigabitEthernet0/0/2]interface GigabitEthernet 0/0/5
[S2-GigabitEthernet0/0/5]eth-trunk 1
配置完成后,查看Eth-trunk 1 的接口状态。
[S1]display eth-trunk 1
Eth-Trunk1's state information is:
Local:
LAG ID: 1 WorkingMode: STATIC
Preempt Delay: Disabled Hash arithmetic: According to SIP-XOR-DIP
System Priority: 32768 System ID: 4c1f-cca0-3fd4
Least Active-linknumber: 1 Max Active-linknumber: 8
Operate status: up Number Of Up Port In Trunk: 3
--------------------------------------------------------------------------------
ActorPortName Status PortType PortPri PortNo PortKey PortState Weight
GigabitEthernet0/0/1 Selected 1GE 32768 2 305 10111100 1
GigabitEthernet0/0/2 Selected 1GE 32768 3 305 10111100 1
GigabitEthernet0/0/5 Selected 1GE 32768 6 305 10111100 1
Partner:
--------------------------------------------------------------------------------
ActorPortName SysPri SystemID PortPri PortNo PortKey PortState
GigabitEthernet0/0/1 32768 4c1f-cc51-4e60 32768 2 305 10111100
GigabitEthernet0/0/2 32768 4c1f-cc51-4e60 32768 3 305 10111100
GigabitEthernet0/0/5 32768 4c1f-cc51-4e60 32768 6 305 10111100
将S1的系统优先级从默认的32768改为100,使其成为主动端,并按照主动端设备的接口来选择活动接口,两端设备选出主动端后,两端都会以主动端的接口优先级来选择活动接口。两端设备选择了一致的活动接口,活动链路组便可建立起来,设置这些活动链路以负载均衡的方式转发数据。
[S1]lacp priority 100
配置活动接口上限阈值为2,配置接口的活动优先级将默认的32768改为100,目的是使GE0/0/1和GE0/0/2接口成为活动状态。
[S1]interface Eth-Trunk 1
[S1-Eth-Trunk1]max active-linknumber 2
[S1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]lacp priority 100
[S1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[S1-GigabitEthernet0/0/2]lacp priority 100
配置完成后,查看Eth-trunk接口状态。
[S1]display eth-trunk 1
Eth-Trunk1's state information is:
Local:
LAG ID: 1 WorkingMode: STATIC
Preempt Delay: Disabled Hash arithmetic: According to SIP-XOR-DIP
System Priority: 100 System ID: 4c1f-cca0-3fd4
Least Active-linknumber: 1 Max Active-linknumber: 2
Operate status: up Number Of Up Port In Trunk: 2
--------------------------------------------------------------------------------
ActorPortName Status PortType PortPri PortNo PortKey PortState Weight
GigabitEthernet0/0/1 Selected 1GE 100 2 305 10111100 1
GigabitEthernet0/0/2 Selected 1GE 100 3 305 10111100 1
GigabitEthernet0/0/5 Unselect 1GE 32768 6 305 10100000 1
Partner:
--------------------------------------------------------------------------------
ActorPortName SysPri SystemID PortPri PortNo PortKey PortState
GigabitEthernet0/0/1 32768 4c1f-cc51-4e60 32768 2 305 10111100
GigabitEthernet0/0/2 32768 4c1f-cc51-4e60 32768 3 305 10111100
GigabitEthernet0/0/5 32768 4c1f-cc51-4e60 32768 6 305 10110000
可以看到,由于将接口的阈值设为2,该接口下将只有两个成员处于活动状态,并且具有负载均衡能力。而GE0/0/5接口处于不活动状态(Unselect),该链路作为备份链路,当活动链路出现故障时,备份链路将会替代故障链路,保持数据传输的可靠性。
[S1]display eth-trunk 1
Eth-Trunk1's state information is:
Local:
LAG ID: 1 WorkingMode: STATIC
Preempt Delay: Disabled Hash arithmetic: According to SIP-XOR-DIP
System Priority: 100 System ID: 4c1f-cca0-3fd4
Least Active-linknumber: 1 Max Active-linknumber: 2
Operate status: up Number Of Up Port In Trunk: 2
--------------------------------------------------------------------------------
ActorPortName Status PortType PortPri PortNo PortKey PortState Weight
GigabitEthernet0/0/1 Unselect 1GE 100 2 305 10100010 1
GigabitEthernet0/0/2 Selected 1GE 100 3 305 10111100 1
GigabitEthernet0/0/5 Selected 1GE 32768 6 305 10111100 1
Partner:
--------------------------------------------------------------------------------
ActorPortName SysPri SystemID PortPri PortNo PortKey PortState
GigabitEthernet0/0/1 0 0000-0000-0000 0 0 0 10100011
GigabitEthernet0/0/2 32768 4c1f-cc51-4e60 32768 3 305 10111100
GigabitEthernet0/0/5 32768 4c1f-cc51-4e60 32768 6 305 10111100
PC>ping 192.168.1.1 -t
Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break
From 192.168.1.1: bytes=32 seq=1 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=2 ttl=128 time=63 ms
From 192.168.1.1: bytes=32 seq=5 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=6 ttl=128 time=78 ms
Request timeout!
From 192.168.1.1: bytes=32 seq=8 ttl=128 time=78 ms
From 192.168.1.1: bytes=32 seq=9 ttl=128 time=93 ms
From 192.168.1.1: bytes=32 seq=10 ttl=128 time=110 ms
From 192.168.1.1: bytes=32 seq=11 ttl=128 time=125 ms
当GE0/0/1接口出现故障的时候,可以看到GE0/0/1处于Unselect状态,而GE0/0/2和GE0/0/5处于Selected状态,切换链路的时候只是丢了一个包。