linux中多网卡绑定

  1. 云栖社区>
  2. 博客>
  3. 正文

linux中多网卡绑定

技术小胖子 2017-11-01 18:05:00 浏览392 评论0

摘要: linux中多网卡绑定 实验背景: (1)虚拟机系统:Centos6.7 (2)两张网卡 网卡绑定应用: 为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。

linux中多网卡绑定

  • 实验背景:

(1)虚拟机系统:Centos6.7

(2)两张网卡

  • 网卡绑定应用:

为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。比如我们可以将eth0和eth1绑定成虚拟网卡bond0

  • 实验步骤:

(1)/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,命令如下:

[root@jkkhj ~]# cd /etc/sysconfig/network-scripts/
[root@jkkhj network-scripts]# ls

[root@jkkhj network-scripts]# cp ifcfg-eth0 ifcfg-bond0

[root@jkkhj network-scripts]# ls

ifcfg-bond0  
ifcfg-eth0  
ifcfg-eth1   
ifcfg-lo  

(2)更改ifcfg-bond0配置文件

DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=
nonestatic也可以
IPADDR=192.168.100.120
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

(3)更改ifcfg-eth0和ifcfg-eth1配置文件

ifcfg-eth0配置文件:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

ifcfg-eth1配置文件:

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
(4)更改modules配置文件

命令: vim /etc/modprobe.d/dist.conf

在配置文件中添加:alias bond0 bonding
options bonding mode=1 miimon=100 
fail_over_mac=1(真实环境不用这个参数!)

wKiom1jzQBXDxkGQAAASjdXWG20191.png

加载模块:modprobe bonding


查看模块:[root@jkkhj ~]# lsmod |grep bonding

bonding               112051  0


重启网络服务:service network restart


注:(1)RHEL6的modules配置文件已更改为/etc/modprobe.d/dist.conf;

    (2)RHEL6版本以下在/etc/modprobe.conf。

    (3)这个fail_over_mac=1的作用:虚拟机多个网卡共用一个MAC地址时,网络不报错且能使用!在此次实验中可以不加fail_over_mac=1,也是可以的!

(5)检查bond0、eth0,eth1三者MAC地址

wKioL1jzSKihnPPtAABzu7A_Tro507.png

(6)查看两张网卡状态

命令:[root@jkkhj ~]# cat /proc/net/bonding/bond0

wKiom1jzSa2Cy4-SAABET_zEiNQ186.png

(7) 测试

关掉eth1,命令:ifdown eth1,截图如下:

wKioL1jzSpGQcZ7RAAAsOjqNIhY768.png

wKioL1jzStGQSlPpAAA4IUWy0tI465.png

截图可以看出:eth1关闭之后,eth0接管网络!

打开eth1,关闭eth0,截图如下:

wKioL1jzS5-RaO6bAAA5WVN8QGk749.png

截图可以看出:eth0关闭之后,eth1接管网络!

最后,在/etc/rc.local中加入

modprobe bonding miimon=100 mode=1


(8)扩展:






  • 查看网卡mac配置文件命令: /etc/udev/rules.d/70-persistent-net.rules打开之后可以看到其中有两块网卡 eth0 和 eth1, 分别记录下它们的mac地址 ,就是冒号分隔的一串数字。截图如下wKiom1jzTN-Cv7DlAABAlzr6ccw078.png

  • 常用模式:

       第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略)  

    特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。

    第二种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)  

特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。






     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1916467,如需转载请自行联系原作者




【云栖快讯】阿里巴巴小程序繁星计划,20亿补贴第一弹云应用免费申请,限量从速!  详情请点击

网友评论