Linux链路聚合,链路聚合四种工作模式

一、基础知识

  链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。

模拟情形:假设有一个链路聚合,并且有2个成员端口A,B.根据生成树协议(意一交换机中如果到达根网桥有两条或者两条以上的链路.生成树协议都根据算法把其中一条切断,仅保留一条.).同一时刻只允许一个成员端口进行工作.若此时A正在工作,则B处于等待被使用状态,当A出现故障停止工作时,根据负荷分担策略策略选择B端口.则B开始工作,A进行故障修复,直到B出现故障再切换到A.

使用链路聚合的好处:网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。比使用单网卡更加稳定,在高负载的服务器中使用链路聚合可以避免因网卡故障而造成服务器无响应.

要强调的:A,B两个网卡是不需要配ip的,只需要为聚合网卡配置ip.也就是说可以将A.B两张网卡看成一张网卡(将聚合网卡看成一个对外的接口),只是他们在内部交替来进行工作,工作内容还是一样的.

二、Linux配置链路聚合的两种方式

  网卡的链路聚合一般常用的有"bond"和"team"两种模式,"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。

 

1.环境准备

 准备一台虚拟机,添加两条虚拟网卡,eth1,eth2.实现虚拟网卡team0,ip地址为192.168.1.1

2.team模式的配置

 [root@server0 ~]#nmcli connection add type team con-name team0 ifname team0 autoconnect yes config '{"runner": {"name": "activebackup"}}'     #表示建立一个team,名称为team0,工作模式为activebackup

 [root@server0 ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.1.1/24

#修改team0的ip地址 192.168.1.1/24

[root@server0 ~]# nmcli connection add type team-slave con-name team0-1 ifname eth1 master team0

#将eth1添加到team0中 

[root@server0 ~]# nmcli connection add type team-slave con-name team0-1 ifname eth2 master team0

#将eth2添加到team0中

[root@server0 ~]# teamdctl team0 state   #查看team0状态

[root@server0 ~]# nmcli connetcion up tamp0   #重启team0网卡

       

 team有四种工作模式,分别是"broadcast"广播容错、"roundrobin"平衡轮询、"activebackup"主备和"loadbalance"负载均衡。在添加team模式时命令中的工作模式命令也不同,team模式的命令格式是'{"runner":{"name":"工作模式"}}',这点需要注意。

提示:运维人员需要根据场景选择工作模式,每个工作模式的含义也与其名称直接相关

        测试时也是通过"ifconfig eth2 down",去掉一块网卡,再ping一下,可以看到网络依旧连通着。

3.bond模式的配置

 bond模式与team模式的区别在于可添加的网卡数量,命令格式也稍微有点区别(模式)

   [root@server0 ~]# nmcli connection add type bond con-name bond0 mode active-backup  

 #表示添加一个bond,名称为bond0,工作模式为主备

   [root@server0 ~]# nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0

 #将eth0网卡连接添加到这个bond中。

   [root@server0 ~]# nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0。

 #将eth1连接网卡添加到这个bond中。

 [root@server0 ~]# teamdctl team0 state   #查看team0状态

 [root@server0 ~]# nmcli connetcion up tamp0   #重启team0网卡

 

三、测试

 1.环境准备

 两台虚拟机,server,desktop,处在相同网段,通过ip访问,不配置dns,路由

 server ip : 172.25.0.8

    desktop ip :172.25.0.11  

 2.在server上添加聚合网卡

 server准备两张虚拟网卡,eth1,eth2,做一个链路聚合网卡team,配置ip,172.25.0.8

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

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

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

 nmcli connection modify team0 ipv4.method manual ipv4.addresses 172.25.0.8/24

 nmcli connection up team0   #启动网卡

 

 3. 用desktop访问一下

 ping 172.25.0.8 ,可以ping通

关闭一张网卡.eth1.可以看到活跃eth1显示为down,活跃网卡位eth2

ifconfig eth1 down 

在用server ping一下,可以ping通

关闭第二张网卡,eth2,此时没有活跃网卡

再尝试ping一下,可以看到没有响应

结论:链路聚合只有在两张网卡同时故障时才无法访问

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux链路聚合是一种将多个网络接口绑定在一起,形成一个虚拟的高速网络接口的技术。它可以提高网络带宽和可靠性,实现负载均衡和故障转移。在Linux系统中,可以使用bonding驱动程序来实现链路聚合。配置步骤包括:安装bonding驱动程序、创建bonding接口、配置网络接口、设置bonding模式和参数等。常用的bonding模式有:mode 0(负载均衡)、mode 1(主备模式)、mode 4(802.3ad模式)等。配置完成后,可以通过ifconfig或ip命令查看bonding接口的状态和信息。 ### 回答2: 什么是链路聚合链路聚合是一种利用网络传输的多个线路,将它们捆绑在一起形成一个更快,更可靠的高速链路的技术。它也被称为带宽汇聚或网络接口绑定。由于链路聚合将网络传输的多个线路的带宽合并在一起,因此可以提高网络的带宽,同时减少故障单点。 如何在 Linux 上进行链路聚合配置? 在 Linux 系统上,可以通过网络一流的工具 “iproute2” 来实现链路聚合。下面是在 Linux 中配置链路聚合的基本步骤: 1. 安装 iproute2 工具: iproute2 是一套用于 Linux 内核网络层的控制工具,提供了很多网络配置和路由功能。运行以下命令安装: sudo apt-get install iproute2 2. 确认系统支持链路聚合: 运行以下命令确认 您的系统已经安装路由表规则: ip rule show 如果输出信息中没有任何相应规则,则表明你的系统不支持链路聚合。 3. 为链路聚合设置交换机: 链路聚合需要一台交换机来协调多个网络接口的传输。确保您的交换机支持链路聚合,并且已经正确配置。否则在进行网络聚合时,可能会面临网络延迟、故障等问题。 4. 创建聚合群组: 在 Linux 上可以使用bondctl或者ip命令来创建聚合群组。创建聚合群组时可以确定聚合类型(如链接合成、平衡RR等)和聚合模式(如主备、平衡对称、平衡TLB、平衡ALB等)。 下面是一个例子: sudo ip link add bond0 type bond miimon 100 mode 802.3ad 在这个命令中,创建了一个 bond0 接口,类型为 IEEE 802.3ad(即静态链路聚合协议),miimon 设置心跳检查的时间间隔。 Mode 指定链路类型,802.3ad 是一种动态加入的链路聚合协议,可以根据可利用的物理链路的数量动态分配流量,提供了最高的聚合效率。 5. 添加网络接口到聚合群组: 将网络接口添加到刚刚创建的聚合群组中。 命令示例: sudo ip link set enp0s3 master bond0 sudo ip link set enp0s8 master bond0 在这些命令中,我们将 enp0s3 和 enp0s8 接口加入了 bond0 网络聚合群组中。 6. 配置路由表规则: 在 Linux 上,添加多条路由表规则以允许网络接口在规则更改时通畅地切换。例如: ip route add default dev bond0 通过这些命令,我们可以配置 Linux 中的链路聚合。它可以大大提高网络传输的速度,减少系统中的单点故障。 ### 回答3: 链路聚合(Link Aggregation)又称为端口绑定,是将两个或多个物理网卡连接成一个逻辑的、高带宽的、高可靠性的连接的技术。在Linux系统中,链路聚合可以通过bonding模块实现。本文将讨论如何在Linux中配置链路聚合。 1.检查网卡是否支持链路聚合Linux中,可以使用命令“ethtool”来检查网卡是否支持链路聚合。例如,输入“ethtool eth0”就可以查看eth0网卡是否支持链路聚合。 2.安装bonding模块 在安装bonding模块之前,需要安装一些相关的软件包,例如ethtool、lshw等。安装完这些软件包之后,可以使用“modprobe bonding”命令来加载bonding模块。 3.创建bonding接口 通过创建bonding接口,可以将两个或多个物理网卡连接成一个逻辑的、高带宽的、高可靠性的连接。可以使用如下命令创建bonding接口: ifconfig bond0 192.168.0.10 netmask 255.255.255.0 up 其中,bond0是bonding接口的名称,192.168.0.10是IP地址,255.255.255.0是子网掩码。 4.设置bonding模式 在创建bonding接口之后,需要设置bonding模式。Linux中支持七种bonding模式,如下所示: mode=0(balance-rr模式):轮询模式,数据包依次发到不同的网卡上。适用于负载低、带宽要求高的情况。 mode=1(active-backup模式):主备模式,只有其中一个网卡处于工作状态,当主网卡失效时,备网卡会自动接管。适用于稳定性要求高的情况。 mode=2(balance-xor模式):使用异或算法将MAC地址的奇数位和偶数位分别与网卡绑定。适用于环形网络拓扑结构。 mode=3(broadcast模式):所有从bonding接口收到的数据包都会同时发送给所有的物理网卡。适用于小型网络中的广播流量。 mode=4(802.3ad模式):使用IEEE 802.3ad链路聚合控制协议,通过LACP的协商,自适应用指定的方式进行链路聚合。通常用于多台服务器之间的链路聚合。 mode=5(balance-tlb模式):通过流量控制从主网卡导出一部分流量给备网卡,可以实现负载均衡和容错。适用于链路负载较高的情况。 mode=6(balance-alb模式):根据MAC地址进行负载均衡,动态地将MAC地址和网卡绑定在一起。可实现更高的带宽利用率和容错能力。 可以将这些模式中的任意一种设置为bonding的模式。例如,设置为mode=1,可以使用如下命令: echo 1 > /sys/class/net/bond0/bonding/mode 5.添加物理网卡 在创建bonding接口之后,还需要将物理网卡添加到bonding接口中。可以使用如下命令添加eth0和eth1网卡: echo "+eth0" > /sys/class/net/bond0/bonding/slaves echo "+eth1" > /sys/class/net/bond0/bonding/slaves 6.重新启动网络服务 完成以上配置后,需要重新启动网络服务,使用如下命令: systemctl restart network 或者 /etc/init.d/network restart 完成以上步骤后,就可以使用bond0接口来访问网络。这样就能够实现链路聚合,提高网络带宽和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值