Linux系统如何配置链路聚合,实现流量负载均衡?

Linux系统如何配置链路聚合,实现流量负载均衡?,第1张

本文主要解决3个问题:

第一、链路聚合的定义和作用是什么?

第二、如何配置链路聚合?

第三、链路聚合的实际应用场景有那些?

第一、链路聚合的定义和作用是什么?

答:链路聚合的定义:链路聚合,官方称聚合链接,民间又称网卡组队,具体指的是将多个网卡绑定在一起组建一个虚拟网卡,外界与虚拟网卡进行通信,虚拟网卡再将信息进行分发;

链路聚合的作用:可以实现轮询式的流量负载均衡和热备份的作用;

举个栗子:

链路聚合就好比是一个包工头,这个包工头为了多赚钱,多接订单,肯定需要找多个小弟;

这样就可以保障,万一有一个小弟感冒了,不能上班,这时有其他小弟可以顶上;

当客户需要盖房子的时候,直接找包工头就好了,不需要一个一个的去找建筑工人;

第二、如何配置链路聚合?

答:

1、配置链路聚合的命令是:

nmcli connection add type team con-name team0 ifname team0 autoconnect  yes  config  '{"runner": {"name": "activebackup"}}'

译为:nmcli connection 添加 类型 team(组队)

    配置文件名  team0  网卡名  team0  每次开机自动启用

    配置运行模式  热备份模式

整体译为:为系统网卡添加一个 team (团队),团队名称叫 team0 ,配置文件也叫 team0 , 并且设置为开机自动启动,配置运行模式为热备份模式;

2、为链路聚合添加成员的命令是:

nmcli connection add type team-slave  con-name team0-1  ifname eth1 master team0

nmcli connection add type team-slave con-name team0-2 ifname eth2 master team0

注释:nmcli connection 添加类型为 team的成员

          配置文件名  team0-1  网卡为 eth1  主设备为  team0

整体译为:为主设备team0添加两张网卡,eth1和eth2;

3、为tem0配置ip地址的命令是:

nmcli connection modify team0 ipv4.method manual ipv4.addresses 

“IP 地址 / 子网掩码”    connection.autoconnect yes

4、激活team0的命令是:      

nmcli connection up team0

第三、链路聚合的实际应用场景有那些?

答:当服务器提供比较重要的服务时,只准备一张网卡是远远不够的,因为一但网卡出现故障,客户就无法访问,这就会造成客户流失,体验感差;

这个时候就可以运用链路聚合的方法来解决,将多张网卡绑定在一起创建一张虚拟网卡,从而实现网卡热备份,流量轮询式负载均衡;

以此来保障服务器能够正常提供服务,给用户以良好的体验;

注意事项:

在创建虚拟网卡和添加成员时,如果命令敲错了,一定要删除错误的信息,以免造成通信混乱;

删除的命令是:nmcli  connection delete team0  (team0或team x)

查看team0的信息命令是:     teamdctl   team0  state  

以上.......

(本篇完)

祝:开心!

罗贵

2019-03-24

如今所有主板至少自带一个千兆以太网端口,有些高档主板带有两个端口。很多用户都不知道家用环境下双网卡主板如何充分利用两个网口,其实使用链路聚合(Link aggregation)就是一个好思路。 双倍带宽的链路聚合链路聚合是指将两条或多条物理以太网链路聚合成一条逻辑链路。所以,如果聚合两个1Gb/s端口,就能获得2GB/s的总聚合带宽(图1)。聚合带宽和物理带宽并不完全相同,它是通过一种负载均衡方式来实现的。在用户需要高性能局域网性能的时候很有帮助,而局域网内如果有NAS则更是如此。比如说我们在原本千兆(1Gb/s)网络下PC和NAS之间的数据传输只能达到100MB/s左右,在链路聚合的方式下多任务传输速度可以突破200MB/s,这其实是一个倍增。 01 链路聚合原本只是一种d性网络,而不是改变了总的可用吞吐量。比如说如果你通过一条2Gb聚合链路将文件从一台PC传输到另一台PC,就会发现总的最高传输速率最高为1Gb/s。然而如果开始传输两个文件,会看到聚合带宽带来的好处。简而言之链路聚合增加了带宽但并不提升最高速度,但如果你在使用有多个以太网端口的NAS,NAS就能支持链路聚合,速度的提升是显而易见的。 目前家用的局域网环境不论是线缆还是网卡多数都停留在1Gb/s的水平,如果你想要真正的更高吞吐量改用更高的带宽比如10Gb/s网卡,但对于大多数家庭用户万兆网卡是不太可能的。就算我们使用普通单千兆网卡主板,通过安装外接网卡来增添一个网络端口就能实现效果。链路聚合准备工作首先你的PC要有两个以太网端口,想要连接的任何设备同样要有至少两个端口。除了双千兆(或一集成一独立)网卡的主板外,我们还需要一个支持链路聚合(LACP或802.1ad等)的路由器。遗憾的是很多家用路由器不支持链路聚合,选择时要注意路由器具体参数,或者干脆选择一个支持链路聚合的交换机。 除了硬件方面的要求,还需要一款支持链路聚合的 *** 作系统。我们目前广泛使用的Windows 7并没有内置的链路聚合功能,一般微软要求我们使用Windows Server,但其实Windows 8.1和10已经提供了支持了。其实如果 *** 作系统不支持可以考虑使用厂商提供的具有链路聚合功能的驱动程序,比如英特尔PROSet工具。另外 *** 作系统Linux和OS X都有内置的链路聚合功能,满足了所有先决条件后下面介绍如何实现。 测试平台 主板 华硕Rampage IV 处理器 英特尔酷睿i7-3970X 内存 三星DDR3 32GB 硬盘 三星850Pro 1TB(RAID 0) 交换机 网件ProSAFE XS708E 10GbE 网卡 双端口10GBASE-T P2E10G-2-T 线缆 CAT7链路聚合网络配置首先在测试中我们选用了一块双端口网卡,实际上如果用户的主板拥有双网卡可以省略这一步。由于部分品牌之间的独立网卡和普通主板中的单网卡可能会有一些网络之间的不兼容,如果想避免麻烦可以直接选用这类双接口网卡。 之后就是设置交换机了,如果我们拥有一个支持链路聚合的路由器直接去设置路由器即可。支持的标志是设备拥有管理功能允许我们可以绑定单个端口。网件ProSafe XS708E随带的一个实用工具允许绑定特定端口,界面具体取决于使用什么样的路由器或者交换机。比如网件R8500以上级别的路由器自带链路聚合功能,界面采用WEB方式管理,链路汇聚的设置可以说是相当方便(图2、3)。 02 03 链路聚合设置时分为静态或者动态,分别是Static和LACP,简单解释静态聚合就是由用户手工配置,不允许系统自动添加或删除汇聚成员中的端口。而动态聚合系统自动创建或删除,成员内端口的添加和删除是协议自动完成的。只要速率和双工属性相同、连接到同一个设备、有相同基本配置的端口,就能被动态汇聚在一起,之前我们说过尽量选用同一种网卡就是为了动态聚合的。Windows设置过程如果在Windows中设置,要注意家用版本只有从Windows 8.1开始到目前的Windows 10才支持网卡绑定功能,或者服务器版本Windows Server。以Windows 10为例,在搜索中输入PowerShell右键用管理员权限启动,打开一个DOS界面中使用“Get-BetAdapter”命令找到我们的网卡(图4),用“New-NetLbfoTeam”命令创建网卡组。不使用交换机完整的命令行(图5)是“New-NetLbfoTeam “网卡组名称” -teamingMode SwitchIndependent”,而使用有链路聚合功能交换机时后缀要改为“-teamingMode Static”或者“-teamingMode LACP”。确定之后根据系统提示输入两个网口名称,在网络界面就可以看到创建的网卡组了(图6)。 04 05 06 Windows Server的设置方法完全不同,以Windows Server 2012 R2为例,打开服务器管理器单击上面的本地服务器,会看到一个名为“网卡绑定”NIC Teaming的选项(图7)。点击显示“禁用”选项你会看到绑定配置器,两个网卡接口都已显示在适配器和接口下面(图8)。现在选择这两个接口右键选择绑定新接口,在d出的窗口中你会看到一个字段,为新的逻辑接口命名,单击确定(图9)。为了获得最大的兼容性,选择绑定模式Teaming Mode下面的“与交换机无关”(Switch Independent)。一旦完成这步,在网络界面会看到刚命名的由两个物理接口组成的逻辑接口。如果一切正常,你的两路物理连接都会显示活动状态,你可以在下面看到传输细节。可以说Windows Server版本就是家用Windows中没有的图形窗口界面方式,比起家用版本的 *** 作要直观得多(图10)。 07 08 09 10OS X设置过程在OS X中设置链路聚合要简单一点,不需要特殊工具或第三方驱动程序,功能被好地内置到默认的网络偏好设置中。打开系统偏好设置进入网络选项,点击设置齿轮图标选择管理虚拟接口(Manage Virtual Interfaces)(图11),选择新建链路聚合(New Link Aggregate)(图12)。在d出物理接口列表中选择想要绑定的那些接口,勾选后命名并创建(图13)。 11 12 13 如果一切顺利,你绑定的两个或多个物理接口会从网络接口列表中消失,取而代之的是刚创建的那个逻辑绑定接口,如果指示灯变绿色表明已成功(图14)。想看连接性能如何可以选择那个逻辑接口,单击高级就能看到其状态,还可以配置其他选项,比如IP地址和DNS等(图16)。 14 15 16编辑点评可以看出只要前期工作做好,不论是在交换机路由器、Windows或者OS X中设置网卡链路聚合都不算难。文中还有几个细节没有提及首先是线缆尽量选用CAT 6以上的六类线,这样才能充分发挥每一路1Gb/s的带宽。不过在网卡链路聚合系统当中,单个传输任务的速度是如论如何也无法超过1Gb/s的带宽的,转换为兆就是125MB/s左右。真正发挥链路聚合功能的场合是多任务同时运行,这样两条1Gb/s带宽才会同时工作(图16)。

一、配置静态链路聚合

阿尔卡特静态链路聚合,也称OmniChannel,允许将多条物理链路捆绑成一条虚拟链路(又称链路聚合组)。采用链路聚合的目的主要是为了提高可靠性和增加互连带宽。每台交换机可配置最多32 个链路聚合组,每组内可以有2,4,8,16 条物理链路。

1、创建静态聚合

按照如下步骤来配置两台交换机间的静态链路聚合,如下所示:

第一步:在本地交换机上使用static linkagg size 命令创建静态链路聚合,例如:

->static linkagg 1 size 4

第二步:使用static agg agg num 命令将所有相关的端口加入到本地交换机的静

态链路聚合中,如下:

->static agg 4/1 agg num 1

->static agg 4/7 agg num 1

->static agg 5/1 agg num 1

->static agg 6/2 agg num 1

第三步:使用vlan 命令为这个链路聚合创建VLAN,如下:

->vlan 10 port default 1

第四步:在远端交换机上创建相应的链路聚合,命令为static linkagg 1 size 4

->static linkagg 1 size 4

第五步:在远端交换机上将相应的端口加入到链路聚合中,如下:

->static agg 7/1 agg num 1

->static agg 7/7 agg num 1

->static agg 8/1 agg num 1

->static agg 9/2 agg num 1

第六步:在远端交换机上为这个链路聚合创建VLAN,如下:

->vlan 10 port default 1

可以使用show linkagg 命令来查看的静态链路聚合设置。也可以使用show linkagg port 命令来显示特定端口的信息。

2、 删除静态链路聚合

删除一个静态链路聚合,使用no static linkagg 命令,例如从交换机配置中删除静态链路聚合5,命令如下:

->no static linkagg 5

注:在删除一个静态链路聚合前,必须先将这个链路聚合中的所有相关端口先删除掉。

3、 添加/删除静态链路聚合中的端口

采用static agg agg num 命令向一个静态链路聚合中添加端口,如将槽位5 上的端

口1 添加到链路聚合10 中,命令如下:

->static agg 5/1 agg num 10

注:一个端口同时只能属于一个链路聚合组。

要从链路聚合中删除端口,可以使用static agg no 命令,例如将槽位5 上的第1端口 从链路聚合中删除,命令如下:

->static agg no 5/1

4、 激活/关闭静态链路聚合状态

激活静态链路聚合的状态,使用static linkagg 命令,后跟链路聚合组号,再跟admin state enable,如激活链路聚合组1,命令如下:

->static linkagg 1 admin state enable

关闭静态链路聚合的状态,使用static linkagg 命令,后跟链路聚合组号,再跟admin state disable,如关闭链路聚合组1,命令如下:

->static linkagg 1 admin state disable

5、 显示静态链路聚合配置和统计信息

使用如下show 命令来显示当前静态链路聚合信息。命令如下:

show linkagg 显示链路聚合组的信息

show linkagg port 显示链路聚合端口的信息

例如,显示所有链路聚合组(静态和动态)的信息,命令如下:

->show linkagg

显示将如下所示:

Number Aggregate SNMP Id Size Admin State Oper State Att/Sel Ports

----------+---------------+-------------+-------+---------------+-------------+----

1 Static 40000001 8 ENABLED UP 2 2

2 Dynamic 40000002 4 ENABLED DOWN 0 0

3 Dynamic 40000003 8 ENABLED DOWN 0 2

4 Dynamic 40000004 16 ENABLED UP 3 3

5 Static 40000005 2 DISABLED DOWN 0 0

使用show linkagg 命令后跟链路聚合组号和使用show linkagg port 命令后跟槽位/

端口参数可以提供关于这个链路聚合组或者特定端口的详细信息。

二、配置动态链路聚合

阿尔卡特动态链路聚合基于802.3ad 标准,允许将多条物理链路捆绑成一条虚拟链路(又称链路聚合组)。采用链路聚合的目的主要是为了提高可靠性和增加互连带宽每台交换机可配置最多32 个链路聚合组,每组内可以有2,4,8,16 条物理链路。

1、 创建动态聚合

按照如下步骤来配置两台交换机间的动态链路聚合,如下所示:

第一步:在本地交换机上使用lacp linkagg size 命令创建动态链路聚合,例如:

->lacp linkagg 2 size 8

第二步:使用lacp agg actor key 将所有相关的端口加入到本地交换机的动态链路聚合中,如下:

->lacp agg 1/1 actor admin key 2

->lacp agg 1/4 actor admin key 2

->lacp agg 3/3 actor admin key 2

->lacp agg 5/4 actor admin key 2

->lacp agg 6/1 actor admin key 2

->lacp agg 6/2 actor admin key 2

->lacp agg 7/3 actor admin key 2

->lacp agg 8/1 actor admin key 2

第三步:使用vlan 命令为这个链路聚合创建VLAN,如下:

->vlan 2 port default 2

第四步:在远端交换机上创建相应的链路聚合

->lacp linkagg 2 size 8

第五步:在远端交换机上将相应的端口加入到链路聚合中,如下:

->lacp agg 2/1 actor admin key 2

->lacp agg 3/1 actor admin key 2

->lacp agg 3/3 actor admin key 2

->lacp agg 3/6 actor admin key 2

->lacp agg 5/1 actor admin key 2

->lacp agg 5/6 actor admin key 2

->lacp agg 8/1 actor admin key 2

->lacp agg 8/3 actor admin key 2

第六步:在远端交换机上为这个链路聚合创建VLAN,如下:

->vlan 2 port default 2

使用show linkagg 命令来查看链路聚合的设置。使用show linkagg port命令显示特定端口的信息。

2、 删除动态链路聚合组

删除一个动态链路聚合,使用no lacp linkagg ,例如从交换机配置中删除动态链路聚合组2,命令如下:

->no lacp linkagg 2

注:在删除一个动态链路聚合前,必须先将这个链路聚合中的所有相关端口先删除掉。

3、 添加/删除动态链路聚合中的端口

采用lacp agg actor admin key 命令向一个动态链路聚合中添加端口,如将槽位5 上

的第1端口添加到链路聚合2中,命令如下:

->lacp agg 5/1 actor admin key 2

注:一个端口同时只能属于一个链路聚合组。要从链路聚合中删除端口,可以使用lacp agg no 命令,例如将槽位5 上的第1端口从链路聚合中删除,命令如下:

->lacp agg no 5/1

4、 激活/关闭动态链路聚合状态

激活动态链路聚合的状态,使用lacp linkagg 命令,后跟链路聚合组号,再跟admin state enable,如激活链路聚合组1 输入如下命令:

->lacp linkagg 1 admin state enable

关闭静态链路聚合的状态,使用lacp linkagg 命令,后跟链路聚合组号,再跟admin state disable,如关闭链路聚合组1 输入如下命令:

->lacp linkagg 1 admin state disable

5、 显示动态链路聚合配置和统计信息

使用show 命令来显示当前动态链路聚合信息。命令如下:

show linkagg 显示链路聚合组的信息

show linkagg port 显示链路聚合端口的信息

例如,要显示所有链路聚合组(静态和动态)的信息,输入命令:

->show linkagg

显示将如下所示:

Number Aggregate SNMP Id Size Admin State Oper State Att/Sel Ports

-------+----------+--------+----+-------------+-------------+-------------

1 Static 40000001 8 ENABLED UP 2 2

2 Dynamic 40000002 4 ENABLED DOWN 0 0

3 Dynamic 40000003 8 ENABLED DOWN 0 2

4 Dynamic 40000004 16 ENABLED UP 3 3

5 Static 40000005 2 DISABLED DOWN 0 0

使用show linkagg 命令后跟链路聚合组号和使用show linkagg port 命令后跟槽位/端口参数可以提供关于这个链路聚合组或者特定端口的详细信息。

6、 LACP 配置实例

本例需要在如下网络中配置LACP 和802.1Q,如下所示:

在上图的网络中有两台交换机通过一个动态的以太网链路聚合互联,每台交换机上需要配置两个VLAN, VLAB 2 和VLAN 3,分别配置相应的路由端口。假设互连端口均为2/1-2.

第一步: 在交换机 A 上创建所有VLAN,分配固定端口和路由接口

->vlan 2

->vlan 2 port default 1/1-4

->vlan 3

->vlan 3 port default 1/5-8

->ip interface vlan2 address 192.168.10.1 mask 255.255.255.0 vlan 2

->ip interface valn3 address 192.168.12.1 mask 255.255.255.0 vlan 3

第二步: 在交换机 B 上创建所有VLAN 和路由端口

->vlan 2

->vlan 2 port default 1/1-4

->vlan 3

->vlan 3 port default 1/5-8

->ip interface vlan2 address 192.168.10.2 mask 255.255.255.0 vlan 2

->ip interface vlan3 address 192.168.12.2 mask 255.255.255.0 vlan 3

第三步: 在交换机A 上创建动态链路聚合

->lacp linkagg 1 size 2 admin state enable

->lacp agg 2/1 actor admin key 1

->lacp agg 2/2 actor admin key 1

第四步: 在交换机B 上创建动态链路聚合

->lacp linkagg 1 size 2 admin state enable

->lacp agg 2/1 actor admin key 1

->lacp agg 2/2 actor admin key 1

第五步:在交换机A 上将互联连路聚合上打上802.1q 标签。

->vlan 2 802.1q 1

->vlan 3 802.1q 1

第六步:在交换机 B 上将互联连路聚合打上802.1q 标签。

->vlan 2 802.1q 1

->vlan 3 802.1q 1


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8732071.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存