linux中bond模式原理分析,Linux Bond的模式与原理。

原理:

多块网卡虚拟成一张,实现冗余;多张网卡对外显示一张,具有同一个IP;网络配置都会使用Bonding技术做网口硬件层面的冗余,防止单个网口应用的单点故障。

对于多物理网卡的 Bond 网卡而言,其中一块物理网卡会被设置为 Master(主设备),其他的网卡都是 Slave(从设备),Bond 网卡的 MAC 地址取自标志为 Master 的

物理 网卡,然后将这个 MAC 地址复制到其他物理网卡上;

工作模式:在主备模式下 , 只有主网卡 eth0 工作,eth1 作为备份网卡是不工作的,只有当一个网络接口失效时 ( 例如主交换机掉电等 ),为了不会出现网络中断,系统会按照配置指定的网卡顺序启动工作,保证机器仍能对外服务,起到了失效保护的功能。

在负载均衡模式下,由于两块网卡都正常工作,它能提供两倍的带宽,在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用。

不足:

1. 我们先看主备模式

主备模式下,Linux Bonding实现会将Bond的两个slave网口的MAC地址改为Bond的MAC地址,而Bond的MAC地址是Bond创建启动后,主用slave网口的MAC地址。

当主用网口故障后,Bond会切换到备用网口,切换过程中,上层的应用是无感知不受影响的,因为Bond在驱动层,会接管上层应用的数据包,缓存起 来等备用网卡起来后再通过备用网卡发送出去。当然,前提是切换时间很短,否则缓冲区是会溢出的,溢出后就开始丢包了。

2. 再看负载均衡模式

负载均衡模式下,Linux Bonding实现可以保持两个slave网口的MAC地址不变,Bond的MAC地址是其中一个网卡的,Bond MAC地址的选择是根据Bond自己实现的一个算法来的,具体如何选择还没有研究。

当然,这里要重点说明的是,Bond负载均衡模式下,要求交换机做配置,是的两个slave网口能够互通,否则的话,丢包会很厉害,基本没法使用。这个是因为Bond的负载均衡模式算法,会将包在两个网口之间传输以达到负载均衡。

由于负载均衡模式下,两个slave有独立的MAC地址,你可能会想,我能否给slave网口再绑定一个IP地址,用作其他用途。

这种方法是实现不了的。

负载均衡模式下,两个slave网口在操作性系统上看到是两个独立的MAC地址,但是当你指定一个MAC地址发送包的时候,实际上发生的现象,不是你期望的。你指定MAC地址1发包,这个数据包可能到MAC地址2出去了。

这个是因为Bond对这两个网口做了手脚,改了网口的驱动。看起来他们有独立的MAC地址,实际上他们的MAC地址不是独立的,只能给Bond使用。

不足

从上面的介绍中,很容易看到Bond的一点不足:

Bond更改了网口的驱动,其网口不能被用作其他用途。

Bond还有一点不足就是其故障监测上面:

Bond默认只能做网口MII监测不能做链路监测(链路是指本机到网关的路径),也就是只能监测网口是否连接(网口是否亮);当然Bond也支持ARP协议的链路监测,但是ARP链路监测在一些场景下,太消耗资源,得不偿失。我们曾经在实际应用中使用过,效果确实不好。来源:https://www.icode9.com/content-3-630201.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值