讲点1

什么是Bonding

Bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。可以通过Centos系统自带服务bonding功能来实现虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

Bonding应用方向

网络负载均衡

对于Bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是Bonding。
    网络冗余 
对于服务器来说网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。Bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份。

Bonding的工作模式

        Mode 0 (balance-rr)

轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上发送数据包。本模式提供负载均衡和容错的能力

        Mode 1 (active-backup)

活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。

为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见

        Mode 2 (balance-xor)

平衡策略:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力

        Mode 3 (broadcast)

广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。

        Mode 4 (802.3ad)

IEEE 802.3ad 动态链接聚合策略(IEEE 802.3ad Dynamic link aggregation)

特点:创建一个聚合组它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一激活聚合体下。

外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应性。

必要条件:

条件1:ethtool支持获取每个slave的速率和双工设定;

条件2:switch(交换机)支持IEEE 802.3ad Dynamic link aggregation;

条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式;

        Mode 5 (balance-tlb)

适配器传输负载均衡策略(Adaptive transmit load balancing)

特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。

必要条件:ethtool支持获取每个slave的速率;

        Mode 6 (balance-alb)

适配器适应性负载均衡策略(Adaptive load balancing)

特点:

1、该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。

2、来自服务器端接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。

3、使用ARP协商进行负载均衡的一个问题是:每次广播 ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部流向当前的slave。这个问题可以通过给所有的对端发送更新 (ARP应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。当新的slave加入到bond中时,或者某个未激活的slave重新 激活时,接收流量也要重新分布。接收的负载被顺序地分布(round robin)在bond中最高速的slave上。

4、当某个链路被重新接上或者一个新的slave加入到bond中,接收流量在所有当前激活的slave中全部重新分配,通过使用指定的MAC地址给每个client发起ARP应答。下面介绍的updelay参数必须被设置为某个大于等于switch(交换机)转发延时的值,从而保证发往对端的ARP应答不会被switch(交换机)所阻截。

必要条件:

1:ethtool支持获取每个slave的速率;

2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个 bond 中的slave都有一个唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址将会被新选出来的 curr_active_slave所接管;

mod=6与mod=0的区别:

mod=6,先把eth0流量占满,再占eth1,…,ethX。而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6会发现第一个口流量很高,第2个口只占了小部分流量。

查看bond0状态:

cat /proc/net/bonding/bond0

关于Bonding的详细配置请参照

/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt

配置及操作思路(先想好怎么做,别盲目下手)

步骤1、新添加一块网卡,总共两块网卡eth0、eth1

步骤2、在网卡配置文件目录下新建ifcfg-bond0配置文件,修改里面的内容为

[root@6 ~]# vim /etc/sysconfig-network-scripts/
DEVICE=bond0 (可选)
IPADDR=192.18.5.109 (可选)
PREFIX=24(可选)
BONDING_OPTS=“miimon=100 mode=1”(必填,实验模式我们选择mode=1)

步骤3、修改原网卡文件ifcfg-eth0和新建网卡配置文件eth1里面的地址修改为

DEVICE=eth0,eth1
MASTER=bond0
SLAVE=yes

步骤4、关闭NetworkManager服务并重启network服务

service NetworkManager stop
chkconfig NetworkManager off

步骤5、查看bond0状态:cat /proc/net/bonding/bond

步骤6、实际测验,把物理网卡模拟故障看配置文件和服务是否生效

步骤1

步骤2

步骤3

到这里步骤基本算做完了,我们这里选择的Bonding的工作模式为mode1.所以我们要实现的功能是负载和容错。

其实很简单;就是用Bonding功能虚拟出来一个网卡,当物理网卡eth0,eth1其中一个故障,由bond0来自动指派其中一块网卡马上顶上去,实现网络不掉线,当然另外一块网卡是故障的你要想办法恢复就行。

步骤4

关闭chkconfig NetworkManager off 网络后台服务,因为这个服务程序在Centos6里很不稳定。给关了就行

然后如果以上配置修改完后用命令;service network restart 回车重启下服务

步骤5

用cat /proc/net/bonding/bond0查看各个网卡的工作状态。

步骤6

实际测验,把物理网卡模拟故障看配置文件和服务是否生效

多网卡分组绑定

网卡的配置文件设置方法和上面选项‘配置及操作思路’相同;

指定目录下/etc/modprobe.d/bonding.conf 配置文件正确设置方法:

第一种:你可以看到这种方式的话,多个bond口的模式就只能设成相同的了。

alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2 miimon=200 mode=1

第二种:这种方式,不同的bond口的mode可以设成不一样。

alias bond0 bonding
options bond0 miimon=100 mode=1
install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0

options 参数含义:

miimon:是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路;
max_bonds:配置的bond口个数;

系统启动自动绑定、增加默认网关

[root@node1 ~]# vim /etc/rc.d/rc.local
#追加
ifenslave bond0 eth0 eth1
route add default gw 192.168.5.1

    讲点2

一块网卡定义多个IP地址(用网卡别名实现)

vim/etc/sysconfig/network-scripts/

1、复制ifcfg-eth0(静态地址)一份并命名为ifcfg-eth0:1

2、vim编辑网卡别名文件ifcfg-eth0:1

3、把DEVICE=eth0:1,后面的地址由您指定

4、保存,重启service NetworkManagerstart服务

5、ifconfig验证改过后的网卡地址信息

6、关闭服务chkconfig NetworkManageroff,开机不启动

步骤1,2,3

步骤4

步骤5

步骤6

注意:

如果有多个地址按照以上方法,需要多少个地址就复制多少份文件并在原网卡信息后面加冒号和数字

cp ifcfg-eth0  ifcfg-eth0:1,2,3,4……

为每个设备别名生成独立的接口配置文件

一块网卡定义多个IP地址(一个接口是DHCP功能,另一个可以配置多个静态IP地址)

参考/usr/share/doc/initscripts-*/sysconfig.txt

注意:要实现此功能一定把网卡别名设置为静态,原始网卡地址配置为DHCP这样才能联网

vim/etc/sysconfig/network-scripts/

1、           修改网卡别名文件ifcfg-eth0:1,里面的地址修改为静态

2、           修改原网卡文件ifcfg-eth0,里面的地址修改为动态

3、           关闭NetworkManager服务并重启network服务

4、           用ifconfig命令验证网卡配置信息

之前我们已经把NetworkManager服务给关闭了,所以这步省略,命令看上面。

      讲点3

Centos6.8修改网卡的配置文件信息

修改网卡的基本要求(会修改网卡配置文件)

第一步把对应的网卡名称name改成你想修改的名字

[root@6 ~]# cd /etc/udev/rules.d/70-persistent-net.rules

保存重启系统。这时是不生效的但是重启系统后网卡名字已改变

第二部修改网卡的对应配置文件

[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0

第三部如果修改完毕后,不起作用;执行service network restart

因为害怕networkmanager服务有故障

Centos6.8的网卡配置文件说明(看图就可以)

vim/etc/sysconfig-network-scripts/eth0

修改网卡的配置文件信息手动配置静态static地址

[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0

修改网卡的配置文件信息(改mac地址6.8)

[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0

Centos6.8网卡配置文件丢失,手动更改方法(手动配置动态DHCP地址)

[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0

验证的结果

done!!!

转载于:https://blog.51cto.com/51eat/1845571

CentOS 6.8 Bonding技术实现和网卡功能配置基础相关推荐

  1. Linux系统下网卡网络配置基础

    Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们.除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命 ...

  2. Linux下双网卡绑定(bonding技术)

    Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的网卡 ...

  3. Linux下通过bonding技术实现网络负载均衡及冗余

    转自: http://blog.chinaunix.net/u2/64007/showart_2260398.html Linux Bonding 一.什么是bonding Linux bonding ...

  4. linux bonding 测试,Linux 双网卡bonding测试

    原文:http://www.cnblogs.com/killkill/archive/2009/02/15/1390717.html 先介绍一下情况,服务器A和服务器B都是CentOS 4.6的系统, ...

  5. bond的主备模式_号外号外:Redhat7通过bond技术实现双网卡绑定

    说明:redhat 7虽然新增了teaming技术支持双网卡绑定,但bonding技术依然可以沿用,本文测试的是bond的绑定方式.为了避免冲突,建议关闭NetworkManager:systemct ...

  6. linux bonding 技术

    文章目录 背景 简介 目录 1. Bonding驱动简介 1.1 配置并编译支持bonding的内核 1.2 安装ifenslave控制工具 2. Bonding驱动选项 3. 配置Bonding设备 ...

  7. linux bonding 原理,linux的bonding技术

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? bonding技术 参考1 参考2 参考3 bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n ...

  8. vmware workstation 上创建的centos 7.2 ,新添加一块网卡。无法找到配置文件。

    在vmware workstation 11上,新建一个centos 7.2系统. 初装带有一个块网卡:能够在/etc/sysconfig/network-scripts/目录下找到相应的网卡配置文件 ...

  9. Linux学习之CentOS(五)----网卡的配置

    [正文] Linux系统版本:Centos 6.5 Linux系统版本:Centos 7 前面,我们使用远程工具SecureCRT,通过"ifconfig eth0 + 具体的ip地址&qu ...

  10. 【CentOS Linux 7】【Linux网络配置基础】

    Linux系统及应用---调研报告 [CentOS Linux 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [CentOS Linux 7]实验2[Shell编程及应用] [ ...

最新文章

  1. HDU 1557 权利指数 国家压缩 暴力
  2. 从真实项目中抠出来的设计模式——第二篇:过滤器模式
  3. gitlab 端口_安装Gitlab-注意端口
  4. mysql中订单产品名,Ecshop后台订单列表增加”商品名”检索字段
  5. cout 数组_C++数组指针!
  6. golang 定义一个空切片_Golang slice切片操作之切片的追加、删除、插入等
  7. python脚本性能分析
  8. 构建之法 阅读笔记04
  9. Photoshop利用快速蒙版抠图方法
  10. phpMyAdmin安装详解
  11. 群晖docker位置_OMV利用Docker配置nextcloud,实现个人网盘的搭建!
  12. 产品经理需要掌握的十大知识模块
  13. not allowed to launch “localhost:81/XXXXX“
  14. PM、RD、QA、OP
  15. sshd_config配置解析
  16. 自定义mui的索引列表indexedList(可用作通讯录)详细用法
  17. matlab求异面直线的公垂线,求异面直线的公垂线
  18. 【系统设计】Verilog语法及示例(2)
  19. myeclipse添加oracle,向MyEclipse添加Oracle数据库
  20. LWN:Intel CPU的间接跳转保护功能!

热门文章

  1. 【VS2010学习笔记】【异常处理】general error c1010070: Failed to load and parse the manifest.
  2. python怎样安装wordcloud(词云)文件
  3. 智能优化算法:社交网络搜索算法-附代码
  4. Matlab半方差函数/变异函数
  5. CSS学习总结(3)——CSS文本样式(属性)
  6. ArcGIS学习总结(五)——地形分析-TIN及DEM的生成
  7. MODIS三种常见数据辐射定标处理
  8. (超详细)夜间灯光总值TNLI如何得到
  9. IDEA使用技巧--在文件导航栏中屏蔽指定后缀名的文件
  10. SQL语句-01-数据库操作/单表增删改查