如何在 Ubuntu 上的桥接(br0)设备上设置 IP 别名?
如果我等待 br0 出现然后执行
/sbin/ifconfig br0:0 192.168.10.1 netmask 255.255.255.0
那么它工作正常。
但是,如果我将以下内容添加到我的 /etc/network/interfaces 文件中,它不起作用并且网络无法启动:
auto br0:0
iface br0:0 inet static
address 192.168.10.1
netmask 255.255.255.0
目前,我在 /etc/network/if-up.d/bridge_alias 中有一个脚本,其执行如下操作:
#!/bin/bash
if [ "${LOGICAL}" == "br0" ] && [ "${PHASE}" = "post-up" ]; then
echo -n "Starting br0:0 ... "
/sbin/ifconfig br0:0 192.168.10.2 netmask 255.255.255.0
echo "Done!"
fi
但是,仅使用操作系统网络配置文件,正确的方法是什么?
答案1
唯一可以做到这一点的方式是通过 ifconfig(或者可能是 ip addr add,但我还没有针对网桥进行检查)。if-up.d 是可以的,但我建议您在接口中使用 post-up,例如:
自动 br0:0 iface br0:0 inet 静态 地址 192.168.10.1 网络掩码 255.255.255.0 发布 /sbin/ifconfig br0:0 192.168.10.2 网络掩码 255.255.255.0
您可以根据需要重复此动作多次。
答案2
这是我正在使用的东西,适用于 Debian 8 和 Ubuntu 16.03:
auto lo
iface lo inet loopback
auto br1
iface br1 inet static
bridge_ports eth1
address 172.17.17.1
netmask 255.255.255.0
network 172.17.17.0
broadcast 172.17.17.255
post-up /usr/sbin/dhcpd
auto br1:1
iface br1:1 inet static
address 172.17.17.2
netmask 255.255.255.0
network 172.17.17.0
broadcast 172.17.17.255