Linux 双网卡绑定

Linux 双网卡绑定

1 什么是bind

bind 是多网卡绑定的一种称谓。通俗来说,bind 是一种网卡集群的技术,可以将多块网卡 配置为主备或者负载均衡,它会虚拟出一块物理上不存在的网卡(通常名字为bond0),并与 参与绑定的物理网卡持有相同的IP地址。

bind有两种模式: 网卡主备、负载均衡.假设参与绑定的物理网卡分别是eth0和eth1.对于 绑定模式的理解如下:

  mode=1:主备模式,只有主网卡eth0工作,eth1作为备用网卡并不工作,eth1的作用就是
          等待eth0无法正常使用时,它顶替eth0继续工作。
 mode=0:负载均衡模式,两块网卡都工作,提供两倍带宽。

2 为什么要bind

  • 高可用

    一套业务是由多个功能组件组成的。任何一个组件不能工作者会导致业务无法正常运行, 为了避免因组件故障而影响业务,很多组件都出现了主备模式,实际就是有一个同样功能 的备用组件,当正常工作的组件异常(坏掉了),备用的直接顶替原有组件工作。

    在主机中的网络保障,就是通过双网卡绑定技术来实现的,可以保证业务在网络层可持 续不间断 .

  • 提高网络吞吐量

    很多大企业每天处理几T甚至几十T的数据,有庞大的带宽支持下,还需要网卡同样支持 处理如此多的数据包,基于各种原因,有时候一个网卡无法满足如此大的数据量,此时 添加一块网卡,进行双网卡绑定为负载均衡模式,可以提高一倍的吞吐量。

3 如何配置

  1. 在操作系统上添加两块网卡
  2. 查看设备名

    ifconfig -a
    或者
    ip a
    

    示例:

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 10.211.55.14  netmask 255.255.255.0  broadcast 10.211.55.255
       inet6 fdb2:2c26:f4e4:0:21c:42ff:fe26:8b74  prefixlen 64  scopeid 0x0<global>
       inet6 fe80::21c:42ff:fe26:8b74  prefixlen 64  scopeid 0x20<link>
       ether 00:1c:42:26:8b:74  txqueuelen 1000  (Ethernet)
       RX packets 2163  bytes 650492 (635.2 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 212  bytes 23989 (23.4 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    其中eth0即为设备名。一般情况下CentOS/RHEL 中网卡的设备名是 ethN的格式或者ensN等, N为非负整数。 所以新添加的网卡,一般为eth0,eth1等,这里以此为例。

  3. 配置网卡的网络参数 网卡配置时,参数及值不区分大小写。因此不用特别在意。
    • 确认配置文件 在Linux系统中,网卡的配置文件存放在 /etc/sysconfig/network-scripts 路径中。 网卡对应的配置文件以如下格式命名:

      ifcfg-<设备名>
      
    • 修改物理网卡配置 此配置应用于eth0和eth1,请分别配置

      DEVICE=<设备名>
      TYPE=Ethernet
      ONBOOT=yes
      BOOTPROTO=none
      MASTER=bond0
      SLAVE=yes
      
      参数说明
      • DEVICE #网口名eth0
      • TYPE #ethernet表示以太网接口
      • ONBOOT=yes #LINUX在启动时激活该网口
      • BOOTPROTO=none #使用什么协议激活网口, none表示不使用任何协议, static表示设置静态IP, dhcp表示动态获取IP
      • MASTER=bond0 #指定虚拟网口的名字(主人)
      • SLAVE=yes #备用(从设备)
    • 配置虚拟网卡 一般虚拟网卡我们配置成bondN,第一个虚拟网卡为bond0,根据网卡配置文件的命名规则, 该虚拟网的配置文件为名 ifcfg-bond0 ,在该文件中添加以下内容:

      DEVICE=bond0
      TYPE=Ethernet
      ONBOOT=yes
      BOOTPROTO=static
      IPADDR=192.168.150.50
      NETMASK=255.255.255.0
      GATEWAY=192.168.150.1
      
  4. 配置绑定模式及监测 在路径/etc/modprobe.d/中新建一个文件,可随意命名,便于区分该文件的作用即可。 比如物命名为bind.conf. 在该文件中添加以下两行内容:

    alias bond0 bonding
    options bond0 miimon=100 mode=1
    

    miimon是用来进行链路监测的:miimon=100表示系统每100ms监测一次链路连接状态,如果有一条线路不同就转入另一条线路。
    mode=1表示属于主备模式。

  5. 配置物理网卡与虚拟网卡之间的绑定关系及开机启动 /etc/rc.d/rc.local文件中加入如下语句:

    ifenslave bond0 eth0 eth1
    
  6. 重启服务器

    reboot
    

4 查看当前使用的网卡

cat /proc/net/bonding/bond0|grep "Currently Active Slave"

示例:

Currently Active Slave: eth0

此示例表示eth0 为当前正在使用的网卡,eth1为备用

Author: halberd.lee

Created: 2019-08-02 Fri 10:28

Validate

原文地址:https://www.cnblogs.com/halberd-lee/p/11287078.html