1
Xusually 2020-02-17 20:21:05 +08:00 3
这是 bond 的 failover 模式默认行为。fail_over_mac 的默认值是:none,可选 active
详见: https://www.kernel.org/doc/Documentation/networking/bonding.txt fail_over_mac Specifies whether active-backup mode should set all slaves to the same MAC address at enslavement (the traditional behavior), or, when enabled, perform special handling of the bond's MAC address in accordance with the selected policy. Possible values are: none or 0 This setting disables fail_over_mac, and causes bonding to set all slaves of an active-backup bond to the same MAC address at enslavement time. This is the default. active or 1 The "active" fail_over_mac policy indicates that the MAC address of the bond should always be the MAC address of the currently active slave. The MAC address of the slaves is not changed; instead, the MAC address of the bond changes during a failover. |
2
king1688888888 OP @Xusually 多谢大神指点!经过测试,添加 fail_over_mac=1 后,确实 bond0 的 MAC 变成了活动网卡的 MAC。
|
3
Xusually 2020-02-17 21:07:02 +08:00
@king1688888888 不客气。
上面我没贴完整,还有一个:follow or 2,具体你看下我发的 URL 对应的部分。都有对应的最佳使用场景,和 bond 所在的网络环境和网卡设备条件有关。 follow or 2 The "follow" fail_over_mac policy causes the MAC address of the bond to be selected normally (normally the MAC address of the first slave added to the bond). However, the second and subsequent slaves are not set to this MAC address while they are in a backup role; a slave is programmed with the bond's MAC address at failover time (and the formerly active slave receives the newly active slave's MAC address). This policy is useful for multiport devices that either become confused or incur a performance penalty when multiple ports are programmed with the same MAC address. |
4
king1688888888 OP @Xusually 还想请教大神一个问题,是关于双网卡故障转移与 NetworkManager 冲突的问题,eth1、eth2 的配置里,我没有加 NM_CONTROLLED=yes 这个参数,按理说就不受 NetworkManager 影响。实测发现,停用了 NetworkManager,故障转移正常。但开启了 NetworkManager 之后,故障转移失败。针对这个问题,请问可以发一下官方链接说明吗?我现在还不太懂找官方资料学习。
|
5
king1688888888 OP @Xusually 网上都只说停用 NetworkManager 就对了,省得麻烦,但想深入了解一下原因。
|
6
Xusually 2020-02-17 21:36:19 +08:00
@king1688888888 如果你有 NetworkManger,并且你不想它来接管,你需要显式指定 NM_CONTROLLED=NO 才有意义。假定你没有 NetworkManager,你指定不指定都只会加载 if-cfg 自己的配置。
这个倒不是默认行为的问题,道理很简单: 如果你没有显式的声明说我不接受 NetworkManager 的话,你有启动 NM,那么 NM 来检查你的 if 脚本配置,没看到这个,它就会来配置网络。 如果你有显式的拒绝,它就不来干涉。 如果你没有 NM,那就无所谓。 为了你配置的可维护性,建议直接指定 NM_CONTROLLED=NO |
7
king1688888888 OP @Xusually 谢谢!
|
8
gearfox 2020-02-17 23:07:24 +08:00
为什么不使用对 networkmanger 支持更好的 Teaming?
|
9
xmr68yahoo 2020-02-18 04:09:11 +08:00
我感觉同 MAC 是没有问题的。
类似于 VRRP 如果双网卡的话 LACP 可以使带宽翻倍,网卡负载分担,但需对段交换机支持。 |
10
king1688888888 OP @gearfox 谢谢分享,我的测试环境是 RHEL6.10 ,也曾查阅过一些技术分享,Teaming 似乎更适合应用在 RHEL7 系列。
|
11
king1688888888 OP @xmr68yahoo 我目前的阶段只会参考教程去配置,虽然表面是成功了,但很多现象我无法用网络知识理论给自己解释。比如我都拔网线了,以我的理解就是这张网卡都没在工作了,怎么还会用到这网卡的 MAC 去通信。
|
12
xmr68yahoo 2020-02-18 15:22:52 +08:00
@king1688888888
首先要看 MAC 用来干嘛,每次 MAC 变动,都会在二层网络中触发 ARP 更新 如果 MAC 变动,同时也要向 DHCP 服务器获取新的 IP 地址,这样会造成业务中断。 如果路由或者交换机做了 MAC 绑定或者 ARP 安全策略,你会更麻烦。 |
13
king1688888888 OP @xmr68yahoo 是的,所以在麻烦来临前,我必须先弄明白 bond 一些原理。
|