工作生活

CENTOS 6/7 BONDING模式双网卡绑定

2019-06-29  本文已影响0人  大叔David

bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,能够提升网络吞吐量、实现网络冗余、负载等功能,有很多优势。
bonding技术是linux系统内核层面实现的,它是一个内核模块(驱动)。使用它需要系统有这个模块, 我们可以modinfo命令查看下这个模块的信息, 一般来说都支持。
bonding技术提供了七种工作模式,在使用的时候需要指定一种,每种有各自的优缺点.
1、balance-rr (mode=0) 默认, 有高可用 (容错) 和负载均衡的功能, 需要交换机的配置,每块网卡轮询发包 (流量分发比较均衡).
2、active-backup (mode=1) 只有高可用 (容错) 功能, 不需要交换机配置, 这种模式只有一块网卡工作, 对外只有一个mac地址。缺点是端口利用率比较低
3、balance-xor (mode=2) 不常用
4、broadcast (mode=3) 不常用
5、802.3ad (mode=4) IEEE 802.3ad 动态链路聚合,需要交换机配置,没用过
6、balance-tlb (mode=5) 不常用
7、balance-alb (mode=6) 有高可用 ( 容错 )和负载均衡的功能,不需要交换机配置 (流量分发到每个接口不是特别均衡)
具体的网上有很多资料,了解每种模式的特点根据自己的选择就行, 一般会用到0、1、4、6这几种模式。

1、查看系统内核是否支持bonding

[root@cobbler-node1 ~]# cat /boot/config-3.10.0-693.el7.x86_64 | grep -i bonding
CONFIG_BONDING=m

2、备份系统自带的网卡配置文件,以及创建bond0网卡配置文件

[root@cobbler-node1 ~]# cd /etc/sysconfig/network-scripts
[root@cobbler-node1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@cobbler-node1 network-scripts]# cp -a ifcfg-eth0 ifcfg-eth0.bak
[root@cobbler-node1 network-scripts]# cp -a ifcfg-eth1 ifcfg-eth1.bak
[root@cobbler-node1 network-scripts]# cp -a ifcfg-eth0.bak ifcfg-bond0

3、修改系统eth0、eth1、bond0网卡配置文件

[root@cobbler-node1 network-scripts]# vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth0
ONBOOT=yes
USERCTL=no
MASTER=bond0        #需要和上面的ifcfg-bond0配置文件中的DEVICE的值对应
SLAVE=yes
[root@cobbler-node1 network-scripts]# vim ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth1
ONBOOT=yes
USERCTL=no
MASTER=bond0       #需要和上面的ifcfg-bond0配置文件中的DEVICE的值对应
SLAVE=yes
[root@cobbler-node1 network-scripts]# vi ifcfg-bond0
TYPE=Bond
BOOTPROTO=none
DEVICE=bond0   
ONBOOT=yes
IPADDR=10.129.49.240
NETMASK=255.255.255.0
GATEWAY=10.129.49.1
DNS1=10.112.15.30
DNS2=10.112.15.33
USERCTL=no
BONDING_OPTS="mode=6 miimon=100"     #在bond0中加入这一项可以省略配置bonding.conf

4、将eth0、eth1网卡配置文件合并显示

[root@cobbler-node1 network-scripts]# paste ifcfg-eth0 ifcfg-eth1
TYPE=Ethernet   TYPE=Ethernet
BOOTPROTO=none  BOOTPROTO=none
DEVICE=eth0     DEVICE=eth1
ONBOOT=yes      ONBOOT=yes
USERCTL=no      USERCTL=no         #控制用户是否有修改网卡的权限,必须设置为no,只有root用户才可以修改
MASTER=bond0    MASTER=bond0
SLAVE=yes       SLAVE=yes

5、对比eth0、eth1网卡配置文件不同内容

[root@cobbler-node1 network-scripts]# diff ifcfg-eth0 ifcfg-eth1     
3c3
< DEVICE=eth0
---
> DEVICE=eth1

6、在/etc/modprobe.d/目录下创建bonding.conf(网卡绑定模式)配置文件

[root@cobbler-node1 network-scripts]# echo -e "alias bond0 bonding\noptions bond0 mode=6 miimon=100" >> /etc/modprobe.d/bonding.conf
[root@cobbler-node1 network-scripts]# cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 mode=6 miimon=100   

注意:
mode=6代表负载均衡;两块网卡同时工作,增加网络带宽,不需要依赖物理交换机设置
mode=1代表主备切换;只有一块网卡处于活动状态,活动网卡故障切换到备用网卡
miimon=100代表网络链路检测频率100ms检查一次,如果出现问题则切换到备用网卡

7、执行modprobe bonding命令更新加载bonding模块,使其系统支持网卡bonding

[root@cobbler-node1 network-scripts]# modprobe bonding

验证bonding模块是否加载成功,出现如下结果则证明加载成功

[root@cobbler-node1 network-scripts]# lsmod | grep bonding
bonding               145728  0

8、重启系统网络服务

[root@cobbler-node1 network-scripts]# systemctl restart network

9、查看网卡绑定的模式以及绑定的网卡状态信息

[root@cobbler-node1 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 28:6e:d4:88:ce:5d
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 28:6e:d4:88:ce:5e
Slave queue ID: 0

10、查看系统网络信息,验证绑定成功

[root@cobbler-node1 network-scripts]# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 10.129.49.240  netmask 255.255.255.0  broadcast 10.129.49.255
        inet6 fe80::2a6e:d4ff:fe88:ce5d  prefixlen 64  scopeid 0x20<link>
        ether 28:6e:d4:88:ce:5d  txqueuelen 1000  (Ethernet)
        RX packets 1675775  bytes 126050576 (120.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3432  bytes 496778 (485.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 28:6e:d4:88:ce:5d  txqueuelen 1000  (Ethernet)
        RX packets 837774  bytes 63015040 (60.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1718  bytes 237790 (232.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 28:6e:d4:88:ce:5d  txqueuelen 1000  (Ethernet)
        RX packets 838224  bytes 63053418 (60.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1714  bytes 258988 (252.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
上一篇下一篇

猜你喜欢

热点阅读