bonding

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

bonding聚合链路工作模式

bond聚合链路模式共7中模式:0-6 Mode

  • mod=0 ,即:(balance-rr) Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。

  负载均衡:所有链路处于负载均衡状态,轮询方式往每条链路发送报文这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。

  性能问题:一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客 户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。

  Bond0在大压力的网络传输下,性能增长的并不是很理想。 需要交换机进行端口绑定

  • mod=1,即: (active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。

  容错能力:只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他 的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。

  无负载均衡:此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个 接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

  • mod=2,即:(balance-xor) XOR policy(平衡策略)聚合口数据报文按源目MAC、源目IP、源目 端口进行异或HASH运算得到一个值,根据该值查找接口转发数据报文

  负载均衡:基于指定的传输HASH策略传输数据包。

  容错能力:这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常 的链路上。

  性能问题:该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。既然目的地 是通过MAC地址来决定的,因此该模式在“本地”网络配置下可以工作得很好。如果所有流量是通过 单个路由器,由于只有一个网关,源和目标mac都固定了,那么这个算法算出的线路就一直是同一 条,那么这种模式就没有多少意义了。

  • mod=3,即:broadcast(广播策略)这种模式的特点是一个报文会复制两份往bond下的两个接 口分别发送出去,在动态聚合模式下,聚合组内的成员端口上均启用LACP(链路汇聚控制协议)协议,其端口状态 通过该协议自动进行维护。

  负载均衡:基于指定的传输HASH策略传输数据包。默认算法与blance-xor一样。

  容错能力:这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常 的链路上。对比blance-xor,这种模式定期发送LACPDU报文维护链路聚合状态,保证链路质量。 需要交换机支持LACP协议

  • mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡) 在每个物理接口上根据当前的负载(根据速度计算)分配外出流量。如果正在接收数据的物理接口 口出故障了,另一个物理接口接管该故障物理口的MAC地址。 需要ethtool支持获取每个slave的速率
  • mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)

  该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何 switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP 应答,并把源硬件地址改写为bond中某个物理接口的唯一硬件地址,从而使得不同的对端使用不 同的硬件地址进行通信。 mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会 发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只 占了小部分流量

说明

常用的模式为 0,1,3,6
mode 1、5、6 不需要交换机设置
mode 0、2、3、4需要交换机设置
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需
要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模
式4中需要 LACP和 EtherChannel

Bonding配置

详细帮助

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

https://www.kernel.org/doc/Documentation/networking/bonding.txt

创建bonding设备的配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8

#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一
条线路不通就转入另一条线路
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1" /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

查看bond0状态:

/proc/net/bonding/bond0

删除bond0

ifconfig bond0 down
rmmod bonding

nmcli实现bonding

#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
ipv4.method manual ipv4.addresses 10.0.0.100/24 #添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成 #要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1 #启动绑定
nmcli con up mybond0

Linux 多网卡bonding的更多相关文章

  1. linux下网卡bonding配置(转)

    linux下网卡bonding配置   章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...

  2. linux下网卡bonding配置

    linux下网卡bonding配置   章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...

  3. Linux下的网卡Bonding

    1. 网卡Bonding一共有0-6七种mode,具体区别请自行搜索: 2. 建议通过nmtui命令在交互模式下配置,这样不会落下重要的字段,也不用去记忆到底有哪些字段: 3. 我的实验环境是VMWa ...

  4. Linux 网卡 bonding配置

    网卡 bonding配置 目录 网卡 bonding配置 一.bonding技术 bonding的七种工作模式 总结: 二.Centos7配置bonding 1.关闭和停止NetworkManager ...

  5. Linux配置网卡、网卡会话、网卡bonding

    配置网卡  1.路径:  /etc/sysconfig/network-scripts/ifcfg-eno16777728 2.含义:HWADDR=00:0C:29:9C:D6:4D   Mac地址 ...

  6. Linux 双网卡绑定

    Linux 双网卡绑定 Linux 双网卡绑定双网卡绑定的常用模式:mode1:active-backup 模式,即主备模式.mode0:round-broin 模式,即负载均衡模式(需要交换机配置聚 ...

  7. Linux 多网卡的7种bond模式原理

    Linux 多网卡绑定 网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种 mode=0:平衡负载模式,有自动备援,但 ...

  8. Linux 双网卡绑定技术

    bond技术是在linux2.4以后加入内核. 一般步骤是1.把bonding模块加入内核, 2 编辑要绑定的网卡设置,去除地址设定 3 添加bond设备,设置地址等配置 4  重启网络 5 在交换机 ...

  9. Linux双网卡绑定

    Linux双网卡绑定 作者:Eric 微信:loveoracle11g eth0和eth1绑定为bond0 [root@rac-node1 ~]# cat /etc/sysconfig/network ...

随机推荐

  1. 写出Hibernate中核心接口/类的名称,并描述他们各自的责任?

    Hibernate的核心接口一共有5个,分别为:Session.SessionFactory.Transaction.Query和 Configuration.这5个核心接口在任何开发中都会用到.通过 ...

  2. springboot使用@Value注入properties文件中的值,中文乱码

    最近开发一个需求,讲一个中文值配置在properties文件中,然后代码中使用@Value注解进行注入使用,然而出现了如下状况: 中文出现乱码,将代码修改如下: String str = new St ...

  3. JVM的基础知识

    一.JVM的基础知识 1.JVM内存结构: 1.JVM堆内存结构: 2.JVM内存分配: 3.Java的堆机构和垃圾回收: 4.Jvm堆内存配置参数: 5.JVM新生代概念和配置: 6.JVM老生代概 ...

  4. 一个注解@Recover搞定丑陋的循环重试代码

    使用背景 在实际项目中其中一部分逻辑可能会因为调用了外部服务或者等待锁等情况下出现不可预料的异常,在这个时候我们可能需要对调用这部分逻辑进行重试,代码里面主要就是使用for循环写一大坨重试的逻辑,各种 ...

  5. 【leetcode 29】 两数相除(中等)

    题目描述 给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 整数 ...

  6. USART_GetITStatus()和USART_GetFlagStatus()的区别

    USART_GetITStatus()和USART_GetFlagStatus()的区别 都是访问串口的SR状态寄存器,唯一不同是,USART_GetITStatus()会判断中断是否开启,如果没开启 ...

  7. jQ模拟打字效果插件typetype

    typetype是一个jquery插件,可以模拟人类的打字效果. 效果图如下所示: 查看演示 http://weber.pub/demo/160828/jQuery.Type/jQuery.type. ...

  8. H5 视频播放解决方案

    前两天,美团推出的杨洋H5火爆朋友圈.里面主要的是多段视频播放.暂停.听起来很简单,但是由于腾讯白名单限制,在微信浏览器,qq浏览器,会自动将video标签中非腾讯域名的视频 ,自动全屏,结尾追加视频 ...

  9. leetcode 1962. 移除石子使总数最小

    题目描述: 给你一个整数数组 piles ,数组 下标从 0 开始 ,其中 piles[i] 表示第 i 堆石子中的石子数量.另给你一个整数 k ,请你执行下述操作 恰好 k 次: 选出任一石子堆 p ...

  10. jboss7学习3-jboss安装 访问(外网)添加用户

    一.下载安装 1.下载地址: http://www.jboss.org/jbossas/downloads ,下载Certified Java EE 6 Full Profile版本. 2.解压 jb ...