我最近设置了一个具有绑定以太网配置的 Ubuntu 16.04 系统。以前,似乎要使其正常工作,需要将绑定模块包含在/etc/modules
或中/etc/modules.d
。此处记录了这一点:
https://help.ubuntu.com/community/UbuntuBonding
然而,在我刚刚设置的 Ubuntu 16.04 系统上,我没有做任何事情来强制加载绑定内核模块(例如 中没有条目/etc/modules
),但是绑定内核模块已加载并且绑定端口正在按广告宣传的方式工作。
我一直在试图找出触发此模块加载的原因,但找不到它。据我所知,Canonical 并没有在 16.04 版本中切换到 systemd-networkd,因此据我所知,没有 systemd 魔法在起作用。也没有udev
定义任何规则。
现在整件事真的让我很困扰(特别是因为在 14.04 中不显式加载该模块是行不通的),所以在 StackExchange 上询问。
答案1
NetworkManager 最近获得了对绑定的支持。我怀疑它希望您手动加载模块。
有少数教程不会告诉您加载模块,所以我想知道 ifenslave 脚本...哈哈。
从 Debian 8 软件包中,文件 ifenslave.pre-up:
add_master()
{
# Return if $BOND_MASTER is already a bonding interface.
[ -f "/sys/class/net/$BOND_MASTER/bonding/slaves" ] && return
# If the bonding module is not yet loaded, load it.
if [ ! -r /sys/class/net/bonding_masters ]; then
modprobe -q bonding
fi