Linux中网卡绑定bonding以及网络成组teaming技术学习

1.网卡绑定bonding技术

(1)bonding技术简介

网卡bonding技术是一种允许将多个物理以太网接口绑定成单一的虚拟接口,同时增加数据带宽并且提供故障切换的技术,是网卡层面的高可用方案。Linux内核2.x版本后,提供了Bonding技术的支持。类似的技术其实在Sun和Cisco中已经存在,分别称为Trunking和etherchannel技术。

Linux Bonding技术支持七种模式,有些模式用来提供负载均衡的功能,有些模式用来提供容错能力,有些模式则二者兼而有之。值得注意的是,有些模式是需要服务器上联的交换机配置支持的。

A)mode=0(balance-rr)

mode=0具有负载均衡和容错的能力。采用Round Robin方式,依次有第一个slave网卡至最后一个slave网卡来传送数据包,每一块slave网卡都在轮流进行工作。如果其中一个slave网卡故障失效,整机的网络通信可以正常运转。需要上联交换机进行配置支持。

B)mode=1(active-backup)

mode=1模式下,同一时间只有一个网卡在工作,其他的网卡不工作。当当前的slave网卡故障失效后,其他的slave网卡开始接替工作。

mode=1模式下,不需要上联交换机进行配置支持。

C)mode=2(balance-xor)

本模式下,既具备负载平衡功能,也具备容错功能。需要上联交换机进行配置支持。

D)mode=3(broadcast)

所有slave网卡都会接收和发送数据包,本模式主要提供容错能力,任一张slave网卡故障失效,整机的网络通信仍可正常运转。需要上联交换机进行配置支持。

E)mode=4(802.3ad)

802.3ad是正式的交换机连接聚合技术,需要交换机本身支持802.3ad,而本机网卡也需要支持ethtool

F)mode=5(balance-tlb)

该模式下,是根据每个slave网卡的负载情况选择slave网卡进行发送,接收时使用当前轮到的slave。该模式要求slave接口的网络设备驱动有某种ethtool支持;而且ARP监控不可用。该种模式不需要上联交换机做特殊的配置支持。如果正在接受数据的slave出故障了,另一个slave网卡会接管MAC地址。

G)mode=6(balance-alb)

该模式是在mode=5的tlb基础上增加了rlb(接收负载均衡receiveload balance)。不需要上联交换机做特殊配置支持。接收负载均衡是通过ARP协商实现的。

(2)网卡绑定Bonding的配置方法

以配置一个网卡绑定bond0,关联的物理网卡是eth0和eth1,且bonding工作模式为mode=1,配置步骤如下:

步骤一:新建网卡绑定bonding配置文件ifcfg-bond0

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

  2. DEVICE=bond0

  3. IPADDR=192.168.1.11 #根据实际需要,填写需要绑定的ip地址掩码网关

  4. NETMASK=255.255.255.0

  5. ONBOOT=yes

  6. BOOTPROTO=none

  7. USERCTL=no

  8. BONDING_OPTS="mode=1 miimon=100" #设置网卡的运行模式,此处配置的是mode=1

备注: miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;模式1为主备模式。

步骤二:配置物理网卡eth0,eth1

 
  1. [root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0

  2. DEVICE=eth0

  3. BOOTPROTO=none

  4. ONBOOT=yes

  5. MASTER=bond0 #很重要的配置,指定物理网卡eth0的Master是bond0

  6. SLAVE=yes #指定自己是master的slave角色,受bond0控制

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

  2. DEVICE=eth1

  3. BOOTPROTO=none

  4. ONBOOT=yes

  5. MASTER=bond0 #很重要的配置,指定物理网卡eth0的Master是bond0

  6. SLAVE=yes #指定自己是master的slave角色,受bond0控制

步骤三:加载模块,让系统支持bonding

修改/etc/modprobe.conf配置 ,增加一行如下配置:

alias bond0 bonding

步骤四:重启网络服务

service network restart

步骤五:校验

执行ifconfig命令,查看是否有bond0网卡。

备注:可以通过一些系统文件查看bonding的配置和工作状态,即可以通过/proc/net/bonding/bond0以及/sys/class/net/bond0/bonding目录下的一些状态文件来了解bonding的一些信息。

2.网卡工作组teaming技术

(1)网卡工作组teaming技术简介

网卡绑定bonding可以提高网络的冗余,保证网络可靠性,提高网络速度。为了提高网络容错或吞吐量,一般服务器都会采取多网卡绑定的策略,在RHEL5/RHEL6中使用的是Bonding。而RHEL7提供了一项新的实现技术Teaming,用来实现链路聚合的功能,但是在RHEL7中,不会使用teaming替换bonding,它们是并存的,我们可以选择Teaming,也可以选择Bonding。

(2)网卡工作组teaming的配置方法

以配置一个网卡工作组team0,关联的物理网卡是eth0和eth1,且teaminging工作模式为mode=4,配置步骤如下:

步骤一:新建网卡工作组teaming配置文件ifcfg-team0

 
  1. [root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-team0

  2. DEVICE=team0

  3. DEVICETYPE=Team #很重要的配置

  4. ONBOOT=yes

  5. BOOTPROTO=none

  6. IPADDR=10.11.128.21

  7. PREFIX=24

  8. DEFROUTE=no

  9. TEAM_CONFIG='{"runner": {"name":"lacp", "active":true, "fast_rate":true, "tx_hash":["ipv4"], "ports":{"eth0":{}, "eth1":{}}}}' #很重要的配置,指定teaming的工作模式是lacp,也就是mode=4(803.2ad)

  10. MTU=1476

步骤二:配置物理网卡eth0,eth1

 
  1. [root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0

  2. DEVICE=eth0

  3. DEVICETYPE=TeamPort #很重要的配置

  4. UUID="5a9ddc27-f93e-4f4e-903c-be56fcb7258a"

  5. ONBOOT=yes

  6. TEAM_MASTER=team0 #配置了物理网卡eth0的Master网卡为team0

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

  2. DEVICE=eth1

  3. DEVICETYPE=TeamPort #很重要的配置

  4. UUID="dfasdcdsf7-f93e-4f4e-903c-23sdfsab725"

  5. ONBOOT=yes

  6. TEAM_MASTER=team0 #配置了物理网卡eth0的Master网卡为team0

步骤三:重启网络服务

service network restart

步骤四:校验

执行ifconfig命令,查看是否有team0网卡

备注:可以通过一些系统文件查看teaming的配置和工作状态,即可以通过//sys/class/net/team0目录下的一些状态文件来了解teaming的一些信息。

学习资料参考于:

https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/ch-Configure_Network_Bonding.html

http://www.lijyyh.com/2011/11/0-balance-rr-l-round-robin-salve-salve.html

猜你喜欢

转载自blog.csdn.net/zjy900507/article/details/81389756