配置双网卡的目的:==========================

1、你想做路由器,网关

2、实现冗余

3、负载均衡

    linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际 同样 连接两条物理线路到交换机
    实现平时 双网卡同时工作,分流网络压力,同时提供冗余备份,监控,防止物理线路的单点故障。
   
    用于关键性节点服务器,高网络IO服务器,网络共享存储服务器等。。。。。
   
    Linux bonding 驱动模块  提供了一种方法,用以把多个网络接口(network interface)组合成一个 逻辑的 "bonded"  接口。
    Bonded  接口的工作方式取决于驱动的模式:不同的模式提供了热备份或负载均衡等不同的服 务。

      此外,驱动还会监控链路的可用性。大多数目前发布的Linux内核都以模块(module)方式带了bonding驱动,
      ifenslave工具(主要配置工具)也都已经安装好。

 

CentOS双网卡绑定,实现负载均衡

确保关闭   SElinux      Networkmanager , 给虚拟机添加一张网卡 ens37 , 确保两张虚拟网卡都是  相同的连接模式  NAT  。

bind0 IP 地址: 192.168.10.54

先关闭两张网卡

[root@uplooking ~]# ifdown  ens33
[root@uplooking ~]# ifdown  ens38

新建网卡配置文件 
[root@uplooking  /etc/sysconfig/network-scripts]#vim ifcfg-bond0

 ifcfg-bond0  配置文件  ==============
 
TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
IPADDR="192.168.10.54"
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
ONBOOT=yes
BONDING_OPTS="miimon=100 mode=6"         ##bonding 参数直接在网卡配置文件中指派,并且开机可以自动生效
                                                                            ## mode=1     1为储备模式,  推荐为 6 ,不会浪费资源。

ifcfg-ens33 配置文件==============

TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

ifcfg-ens38 配置文件==============

TYPE=Ethernet
BOOTPROTO=none
NAME=ens38
DEVICE=ens38
ONBOOT=yes
MASTER=bond0
SLAVE=yes

重启网络 ============================
[root@uplooking ~]# systemctl  restart  network

观察验证: ==========================
[root@uplooking ~]# ifconfig

linux网卡与网卡驱动架构 linux网卡作用_配置文件


 

 

 

###查看 bind0 的状态   #####################################

    ###  命令验证     ip addr 或者   ifconfig  查看验证===================================
  ###  状态信息验证    cat  /proc/net/bonding/bond0  文件可以显示  双网卡 配置信息。

    ens 33   和  ens  37 的  启用状态。

        cat /proc/net/bonding/bond0   通过查阅该文件,获取bond0 网卡的工作状态信息
       
        通过断开不同网卡,观察改文件的信息变化。
       
[root@server-18 ~]# watch -n 1 "cat /proc/net/bonding/bond0"

  Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: ens37
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 3
Permanent HW addr: 00:0c:29:e6:3b:9d
Slave queue ID: 0

Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 3
Permanent HW addr: 00:0c:29:e6:3b:a7     
   
   

验证负载均衡的效果:  

http-02  ping  192.168.10.54

            arp -a  查询 arp 表:发现  192.168.10.54 在  00:0C:29:58:4C:31 (ens33)  网卡上

           

linux网卡与网卡驱动架构 linux网卡作用_负载均衡_02

   

http-03   ping   192.168.10.54

             arp -a  查询 arp 表:发现  192.168.10.54 在  00:0C:29:58:4C:3B  (ens33)  网卡上

             

linux网卡与网卡驱动架构 linux网卡作用_配置文件_03


 

 

 

 

           

取消 bond0 网卡的方法  ##############################

           
            1、ifdown  bond0  ##此时网络断开
            2、移除ifcfg-bond0 网卡的配置文件,建议不要直接删除,而是移到别的位置,备份起来、
                    [root@server-18 /etc/sysconfig/network-scripts]#mv ifcfg-bond0  /root
                   
                   echo -bond0  >  /sys/class/net/bonding_masters    ## 移除系统中的 bonding状态。                   
                   
            3、修改 ens33  ens38  网卡配置,解除 与 bond0 网卡的从属关系
                  BOOTPROTO=static
                  MASTER=bond0 去掉
                  SLAVE=yes   去掉
                  加上自己网卡的原先配置。
           
            4、 systemctl restart network 
           
            5、 ifconfig再次观察