CentOS 7 双网卡bond 网卡mac 相同的处理
背景
网络组通知一几台主机的双网卡是同样的mac。交换机成了环路,无法学习mac
排查过程
首先检查 /etc/modprobe.d/bond.conf
文件,确实是 mode=1, 应该使用 active backup(主备模式)的模式,
但是通过使用 nmtui
命令调出图形界面检查,确是round-robin(双活轮询)模式。
说明/etc/modprobe.d/bond.conf
于是在/etc/sysconfig/network-scripts/ifcfg-bond0
添加如下配置
BONDING_OPTS=”miimon=100 mode=1"
BONDING_MASTER=yes
然后重启 network
systemctl restart network
分别使用 ifconfig
和 nmtui
检查网卡信息, 返现nmtui
看到的bond 模式确实切换成了active backup(主备模式),但是两张物理网卡和 bond0 虚拟网卡的 mac 依然是相同的。
经过搜索, /etc/sysconfig/network-scripts/ifcfg-bond0
添加配置 fail_over_mac=1, 最终添加如下配置
BONDING_OPTS=“miimon=100 mode=1 fail_over_mac=1”
BONDING_MASTER=yes
重启网卡
systemctl restart network
再次查看网卡mac, 此时 bond0的mac与正在工作的master网卡一致,slave 网卡有自己的mac, 此时拔掉正在工作的master网卡的网线,bond0的mac就切换为了之前 slave 网卡的 mac。网络通信正常, 主备切换正常。
后记
/etc/modprobe.d/bond.conf
为什么不生效依然没搞清楚
关于fail_over_mac参数:
bond0获取mac地址有两种方式,一种是从第一个活跃网卡中获取mac地址,然后其余的SLAVE网卡的mac地址都使用该mac地址;另一种是使用fail_over_mac参数,是bond0使用当前活跃网卡的mac地址,mac地址或者活跃网卡的转换而变。