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. JS的Event各种属性级target/currentTarget/relatedTarget各种目录的解释

    1.Event属性解释:https://developer.mozilla.org/zh-CN/docs/Web/API/Event 2.Event.target/currentTarget/rela ...

  2. Dubbo 配置文件是如何加载到 Spring 中的?

    Spring 容器在启动的时候,会读取到 Spring 默认的一些 schema 以及 Dubbo 自 定义的 schema,每个 schema 都会对应一个自己的 NamespaceHandler, ...

  3. kafka中consumer group 是什么概念?

    同样是逻辑上的概念,是Kafka实现单播和广播两种消息模型的手段.同一个topic的数据,会广播给不同的group:同一个group中的worker,只有一个worker能拿到这个数据.换句话说,对于 ...

  4. JavaScript ajax返回状态

    该内容转自CSDN:http://blog.csdn.net/u013381651/article/details/51261956 xmlhttp.readyState的值及解释: 0:请求未初始化 ...

  5. org.apache.kafka.common.errors.SerializationException: Error deserializing... Caused by: org.apache.kafka.common.errors.SerializationException: Size of data received by IntegerDeserializer is not 4

    原因,最近开发的kafka消息接收,突然报如下错: org.apache.kafka.common.errors.SerializationException: Error deserializing ...

  6. jQuery--内容过滤和可见性过滤

    一.内容过滤 1.内容过滤选择器介绍 :empty 当前元素是否为空(是否有标签体) :contains(text)   标签体是否含有指定的文本 :has(...)                 ...

  7. 描述 Java 中的重载和重写?

    重载和重写都允许你用相同的名称来实现不同的功能,但是重载是编译时活动, 而重写是运行时活动.你可以在同一个类中重载方法,但是只能在子类中重写方 法.重写必须要有继承.

  8. redis持久存储RDB和AOF的区别及优缺点

    1.前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据.由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能, ...

  9. 学习saltstack (三)

    salt是一个新的基础平台管理工具,2011-02-20诞生,创造者Thoms SHatch,起名salt原因生活中常见.易记,使用saltstack.com原因这个域名没有被注册,Because s ...

  10. 前端网络安全——Cookies

    一.Cookies特性 1.前端数据存储 2.后端通过http头设置 3.请求时通过http头传给后端 4.前端可读写 5.遵守同源策略 二.Cookies内容 1.域名 2.有效期,删除cookie ...