> Linux教程 > Linux学习 >

Linux系统中的链路聚合 之 bond 方式

Linux系统中的链路聚合:
 
 
链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。
 
总结一下就是:两个物理网卡绑定为一个逻辑网卡
 
企业工作中,我们的网络状况是不能出现问题的,如果出现问题会带来特别多的麻烦与损失,所以单纯使用一块网卡来进行网络服务肯定是不保险的,我们需要通过2块网卡来绑定为一个逻辑网卡来工作;
 
其中链路聚合通常分为三种工作模式:
 
(1)active-backup  :  主备(一块网卡工作,另一块备用,当工作的网卡出问题时,备用网卡及时上岗从而避免网络出现问题)
 
(2)loadbalance      :   负载均衡
 
(3)roundrobin         :     轮询
 
其中我们最常用的就是第一种 主备模式!
 
 
 
开始实验!
在一台虚拟机中做实验:
 
可以看到我们的虚拟机有两块网卡分别是 eth0 ,eth1:
 
 
创建链路聚合的逻辑网卡bond0 :
 
利用nmcli命令,可以通过 nmcli --help  ,或者 按两下tab键查看可输入的名令
 
eg: 按两下tab出现下面这么多种 mode 供我们参考选择,我们选择 主备模式active-backup
 
 
 
 
完整命令如下:
 
ip 为172.25.254.111的,bond类型的 ,名为bond0 的,主备模式的逻辑网卡:
 
 
 
再次查看网卡情况:
 
可以看到出现了我们刚才配置成功的逻辑网卡bond0:
 
 
因为bond0已经设置了IP地址172.25.254.111,我们真机的IP为172.25.254.148 在同一网段所以试着PING一下:
 
真机IP:
 
 
可以发现ping 不通我们的bond0:
 
 
查看逻辑网卡相关信息:
 
cat  /proc/net/bonding/bond0
可以看到模式为 主备
 
备用网卡没有(none)
 
正在工作的主网卡也没有(none)
 
 
 
 
所以PING不通是因为链路聚合的逻辑网卡bond0想要正常工作就必须给它添加可用的网卡:
 
添加真实网卡eth0到bond0逻辑网卡:
 
nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
 
 
观察bond0信息变化:
 
可以看到活跃的Slave下出现了eth0网卡,并且因为我们只添加的eth0网卡,所以备用网卡此时是没有的 
 
 
 
此时再用真机PING一下bond0设置的IP:(发现可以PING通了!)
 
 
添加备用网卡eth1到逻辑网卡bond0:
 
与添加eth0命令一致 只需要将eth0换为eth1即可!:
 
 
 
观察bond0信息:
 
可以看到除了主网卡eth0以外,又出现了备用网卡eth1:
 
 
我们模拟一下当主网卡不在工作的时候eth1是否及时上岗工作!:
 
首先监视 bond0信息:
 
watch -n 1 cat/proc/net/bonding/bond0
让eth0网卡下线:
 
ifconfig  eth0 down   关闭eth0
   
 
ifconfig  eth0  up    开启eth0
 
 
执行 ifconfig eth0 down 前  eth0 正作为主网卡在工作:
 
 
 
执行后:(可以看到eth1及时的由备用网卡 变为了 主网卡来继续工作保证网络不出现问题!)

 
 
 
当我们开启eth0,关闭eth1的时候:(eth0由备用网卡变为了主网卡!)
 
 
 
###配置文件编写的建立形式###
编写bond0文件:
 
vim /etc/sysconfig/network-scripts/ifcfg-bond0
 
编写完毕,重启网络生效:
 
 
 
再编写eth0,eth1主,备用两块网卡到bond0上:
 
eth0文件的内容:
 
 
步骤:(先编写,再重启,查看是否生成配置文件)
 
 
同理 eth1文件的配置:
 
 
 
可以看到bond0信息又出现了:
 
 
 
 
 
 
 
 
#####设备的移除#####
先查看网卡设备:
 
nmcli  connection   show

 
 
删除逻辑网卡bond0:
 
nmcli connetction  delete  bond0
 


 
删除eth0 eth1接口上的信息 :
 
 
 
 
over!
 
 
 
(责任编辑:IT)