多网卡绑定配置-bonding

来源:互联网 发布:网络调研常见的方法 编辑:程序博客网 时间:2024/05/29 04:49

多网卡绑定配置-bonding

    • 多网卡绑定配置-bonding
      • 何为bonding
      • bonding的优点
        • 网络的负载均衡
        • 网络的冗余高可用
      • Bonding的常见绑定模式
        • Mode 0 balance-rr
        • Mode 1 active-backup
        • Mode 3 broadcast
      • CentOS6实现Bonding配置
        • 创建bonding设备的配置文件
        • 生效bond设备
        • 查看bond0状态
      • 删除bond0
      • 关于bonding详细帮助


何为bonding

所谓bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现网卡的带宽扩容、高可用或者负载均衡,具体的功能取决于采用的哪种bonding模式。
一般情况下,将多块网卡设置同一IP地址是不可能的,会导致IP地址的冲突,导致网络不可用。但是通过bonding,可以将多个物理网卡的MAC地址修改为相同的MAC地址,虚拟出一块网卡对外提供连接。其原理类似RAID,虽是多块网卡,但对访问者来说则是一块网卡。由于是将多块网卡合为一块使用,所以能够得到更好的更快的性能。
bonding技术在生产场景中是一种常用的技术。其实在 Sun和Cisco中早已存在并应用,被称为Trunking和Etherchannel技术,在Linux的Kernels 2.4.12及以后的版本中也采用了这种技术,被称为 bonding。 像Samba、Nfs这种共享文件系统,网络的吞吐量非常大,就造成网卡的压力很大,就会用到bonding技术。

bonding的优点

网络的负载均衡

bonding的网络负载均衡是我们在文件服务器中常会用到的,比如把多块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百兆的本地网络来说,文件服务器在多个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为解决同一个IP地址,突破流量的限制。如何在有限的资源的情况 下,实现网络负载均衡,最好的办法就是 bonding 。

网络的冗余高可用

对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来 提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把网个网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡也能提供正常的服务。


Bonding的常见绑定模式

Mode 0 (balance-rr)

轮转(Round-robin)策略:从头到尾的顺序在每一个从属设备接口上面发送数据包,一条链路故障会自动切换正常链路。
特点:本模式提供负载均衡和容错的能力。传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕);但是如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。而且需要在接入交换机做端口聚合,否则可能无法使用。

Mode 1 (active-backup)

活动-备份(主备)策略:只有一个从属设备处于活动状态,其它从属设备处于备用状态,只有在活动的从属设备接口宕掉时才会激活其他从属设备,所有流量都在活动的链路上处理。为了避免交换机发生混乱,此时绑定的MAC地址只在一个外部端口上可见。交换机配置的是捆绑的话将不能工作,因为交换机往两块网卡发包,有一半包是丢弃的。
特点:此模式只提供容错能力,优点是可以提供高网络连接的可用性,但资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

Mode 3 (broadcast)

广播策略:在所有的从属设备接口上传送所有的报文,提供容错能力。
特点:所有包从所有网络接口发出,不做均衡,只有冗余机制,过于浪费资源。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。此模式需要和交换机的聚合强制不协商方式配合。


CentOS6实现Bonding配置

创建bonding设备的配置文件

创建bonding设备的第一步就是要先创建bond设备文件,由于之前系统没有,所以需要自己手工创建,分别是一个bond配置文件和两个从属bond的网卡配置文件。具体的操作步骤和配置文件写法,请看下面:

cd /etc/sysconfig/network-scripts/  #进入到/etc/sysconfig/network-scripts/目录vim ifcfg-bond0#使用vim创建并编辑ifcfg-bond0配置文件,文件内容如下:    DEVICE=bond0    BONDING_OPTS="mode=0 miimon=100"#mode是用来指明bond模式的。如果mode=0,那么代表此bond设备使用的是0模式,(balance-rr)轮转策略。有0-6七种bond模式可以选择。#miimon是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路    IPADDR=172.18.23.33    PREFIX=16    GATEWAY=172.18.0.1vim ifcfg-eth0  #如果参与bond的设备配置文件存在,则直接编辑。    DEVICE=eth0    BOOTPROTO=none    MASTER=bond0#MASTER=bond0说明主设备是bond0    SLAVE=yes#SLAVE=yes说明这个设备是仆从设备    USERCTL=no#USERCTL=no指明普通用户不能配置此设备,改为yes,则普通用户也可以配置此设备。cp ifcfg-eth0 ifcfg-eth1#如果参与bond的设备配置文件不存在,则创建后再编辑,可以选择复制已有的设备文件,因为除了设备名外其它配置都一样。vim ifcfg-eth1    DEVICE=eth1    BOOTPROTO=none    MASTER=bond0    SLAVE=yes    USERCTL=no

生效bond设备

在创建修改好bond的配置文件后,并不会立即生效,需要重启网络服务方可生效。在这里请大家注意一下NetworkManager服务,这个服务是用于图形界面的网络配置的,如果不需要最好关掉,不然会影响许多网络配置的生效。

关闭NetworkManager服务    chkconfig NetworkManager  off    #禁止服务开机自启动    service NetworkManager  stop    #停止服务重启网络服务    service network restart

查看bond0状态

在重启网络服务之后,需要去查看bond的状态,确保bond启用成功。一般会用到ifconfig、cat /proc/net/bonding/bond0 、cat /sys/class/net/bond0/bonding/mode 这三个命令。

ifconfig #使用ifconfig命令可以查看设备的bond信息,下图中三个设备MAC地址相同,原eth0、eth1IP地址失效,两块网卡共用bond0设备的一个IP地址。下图中蓝线标注的是这三个设备的主仆关系。

这里写图片描述

cat /proc/net/bonding/bond0 #查看bond0的状态信息,有些信息是ifconfig看不到的,如:设备的up或down。

这里写图片描述

cat /sys/class/net/bond0/bonding/mode     balance-rr 0#这条命令可以查看bond设备的模式策略,如balance-rr 0则表示是0模式,轮转策略。

删除bond0

ifconfig bond0 down#禁用bond0设备rm -rf /etc/sysconfig/network-scripts/ifcfg-bond0 #删除bond0设备的配置文件vim /etc/sysconfig/network-scripts/ifcfg-eth0#将配置文件改回,删除和bond有关的设置。    DEVICE=eth0    BOOTPROTO=dhcp    #此项改为dhcp后,网卡会启用dhcp服务,自动获取IP、gateway、dns等网络配置。vim /etc/sysconfig/network-scripts/ifcfg-eth1    DEVICE=eth1    BOOTPROTO=dhcplsmod |grep bonding#查看bonding模块是否存在    bonding               132885  0 rmmod bonding#卸载bonding模块lsmod |grep bonding#确认成功卸载service network restart #重启网络服务

关于bonding详细帮助

bonding功能强大,其功能远不止于此,比如我在此没有介绍的其它四种bonding模式,以及其具体的配置方法,注意事项。都可以在下面的文档中查到,有兴趣的朋友可以深入研读一下。

Linux系统自带帮助文档,需要先安装才能查看。
yum install kernel-doc
less/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt

官网文档
https://www.kernel.org/doc/Documentation/networking/bonding.txt

原创粉丝点击