Linux双网卡绑定

  • A+
所属分类:基础知识

网卡绑定是非常实用的Linux内核功能之一,通过绑定多网卡便能提供网络高可用性和负载均衡服务。分享一篇在CentOS/RHEL 6.x、7.x操作系统下的双网卡绑定教程给有需要的朋友们。

CentOS/RHEL 6.X

第一步 创建绑定配置文件

确认对外提供服务的IP地址、掩码、网关等信息。

  1. [root@Wanghualang ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0  

  1. DEVICE=bond0  
  2. IPADDR=192.168.1.200  
  3. NETMASK=255.255.255.0  
  4. GATEWAY=192.168.1.1  
  5. TYPE=Bond  
  6. ONBOOT=yes  
  7. NM_CONTROLLED=no  
  8. BOOTPROTO=static  

第二步 编辑第一张网卡

使用以下基本内容即可,网卡物理地址、设备名根据实际情况修改即可。

  1. [root@Wanghualang ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1  

  1. DEVICE=eth1  
  2. TYPE=Ethernet  
  3. ONBOOT=yes  
  4. HWADDR=00:0C:29:62:38:B9  
  5. NM_CONTROLLED=no  
  6. MASTER=bond0  
  7. SLAVE=yes  

第三步 编辑第二张网卡

使用以下基本内容即可,网卡物理地址、设备名根据实际情况修改即可。

  1. [root@Wanghualang ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2  

  1. DEVICE=eth2  
  2. TYPE=Ethernet  
  3. ONBOOT=yes  
  4. HWADDR=00:0C:29:62:38:C3  
  5. NM_CONTROLLED=no  
  6. MASTER=bond0  
  7. SLAVE=yes  

第四步 配置绑定模式

目前共有七种绑定模式,不同的模式提供不同的服务,教程中使用的是模式1(主备高可用模式),更多模式和功能见扩展阅读。

扩展阅读展开

  1. mode0:Balance-rr,用于容错和负载平衡的循环模式;  
  2. mode1:active-backup,设置用于容错的活动备份模式;  
  3. mode2:balance-xor,为容错和负载平衡设置异或(异或)模式;  
  4. mode3 :broadcast,设置容错的广播模式,所有传输都在所有的从接口上发送;  
  5. mode4:802.3ad,设置IEEE 802.3ad动态链接聚合模式,共享相同速度和双工设置;  
  6. mode5:balance-tlb,设置传输负载平衡(TLB)模式以实现容错和负载平衡;  
  7. mode6:balance-alb,为容错和负载平衡设置活动负载平衡(ALB)模式。  

  1. [root@Wanghualang ~]# vim /etc/modprobe.d/bonding.conf  

  1. alias bond0 bonding  
  2. options bond0 mode=1 miimon=100  

第五步 重启网络

  1. [root@Wanghualang ~]#service network restart  

重启网络时有一定几率会出现报错,比如RTNETLINK answers: File exists,解决思路见扩展阅读。

扩展阅读展开

1.检查网卡设备名称和物理地址的对应关系,如果信息不匹配就修改为正确的对应关系,这种情况多半会出现在Linux克隆系统中。

  1. [root@Wanghualang ~]# vim /etc/udev/rules.d/70-persistent-net.rules  

2.刷新网卡设备信息,教程是绑定eth1和eth2,根据实际情况修改设备名。

  1. [root@Wanghualang ~]# ip addr flush dev eth1  
  2. [root@Wanghualang ~]# ip addr flush dev eth2  

第六步 检查绑定状态

  1. [root@Wanghualang ~]# cat /proc/net/bonding/bond0  

  1. Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)  
  2.   
  3. Bonding Mode: fault-tolerance (active-backup)  
  4. Primary Slave: None  
  5. Currently Active Slave: eth1  
  6. MII Status: up  
  7. MII Polling Interval (ms): 100  
  8. Up Delay (ms): 0  
  9. Down Delay (ms): 0  
  10.   
  11. Slave Interface: eth1  
  12. MII Status: up  
  13. Speed: 1000 Mbps  
  14. Duplex: full  
  15. Link Failure Count: 0  
  16. Permanent HW addr: 00:0c:29:62:38:b9  
  17. Slave queue ID: 0  
  18.   
  19. Slave Interface: eth2  
  20. MII Status: up  
  21. Speed: 1000 Mbps  
  22. Duplex: full  
  23. Link Failure Count: 0  
  24. Permanent HW addr: 00:0c:29:62:38:c3  
  25. Slave queue ID: 0  

CentOS/RHEL 7.X

第一步 加载功能模块

默认情况下,7.x操作系统已经加载bonding模块,如果未加载则需要手动加载。

  1. [root@Wanghualang ~]# modprobe bonding  

加载模块后就能显示相关模块信息。

  1. [root@Wanghualang ~]# modinfo bonding  

第二步 创建绑定配置文件

确认对外提供服务的IP地址、掩码、网关、绑定模式等信息。

  1. [root@Wanghualang ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0  

  1. DEVICE=bond0  
  2. TYPE=Bond  
  3. NAME=bond0  
  4. BONDING_MASTER=yes  
  5. BOOTPROTO=none  
  6. ONBOOT=yes  
  7. IPADDR=192.168.1.13  
  8. NETMASK=255.255.255.0  
  9. GATEWAY=192.168.1.1  
  10. BONDING_OPTS="mode=1 miimon=100"  

第三步 编辑第一张网卡

使用以下基本内容即可,网卡物理地址、设备名根据实际情况修改即可。

  1. [root@Wanghualang ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32  

  1. TYPE=Ethernet  
  2. BOOTPROTO=none  
  3. DEVICE=ens32  
  4. ONBOOT=yes  
  5. HWADDR=00:0c:29:3b:4a:74  
  6. MASTER=bond0  
  7. SLAVE=yes  

第四步 编辑第二张网卡

使用以下基本内容即可,网卡物理地址、设备名根据实际情况修改即可。

  1. [root@Wanghualang ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33  

  1. TYPE=Ethernet  
  2. BOOTPROTO=none  
  3. DEVICE=ens33  
  4. ONBOOT=yes  
  5. HWADDR=00:0c:29:3b:4a:7e  
  6. MASTER=bond0  
  7. SLAVE=yes  

第五步 重启网络

  1. [root@Wanghualang ~]# systemctl restart network  

第六步 检查绑定状态

  1. [root@Wanghualang ~]# cat /proc/net/bonding/bond0  

  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: