我在 Ubuntu 16.04 VM 上有一个专用网络接口,如下所示:
# Private network
auto ens19
iface ens19 inet static
address 10.10.10.179
netmask 255.255.255.0
mtu 1450
我的 vLAN 需要指定网关才能正常工作,因此我按如下方式附加它:
# Private network
auto ens19
iface ens19 inet static
address 10.10.10.179
netmask 255.255.255.0
mtu 1450
gateway 10.10.10.1
但是,每当我添加该网关并重新启动networking
服务时,它都不会以以下错误启动:
Dec 15 10:50:08 postfix0 ifup[1968]: RTNETLINK answers: File exists
Dec 15 10:50:08 postfix0 ifup[1968]: Failed to bring up ens19.
执行ip addr flush dev xxx
并没有帮助。
那么,我该如何解决这个问题呢?
答案1
创建命名路由表。 pvtnet 这个名称是任意的。如果 DHCP 在 10.10.10 网络上分发地址,则此操作将不起作用。
echo '200 pvtnet' >> /etc/iproute2/rt_tables
修改文件,/etc/network/interfaces
.
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# DHCP hands out the DEFAULT gateway.
auto eth0 # use the real device name on your system
allow-hotplug eth0
iface eth0 inet dhcp
# The private network interface
auto ens19
allow-hotplug ens19
iface ens19 inet static
address 10.10.10.179
netmask 255.255.255.0
mtu 1450
post-up ip route add 10.10.10.0/24 dev ens19 src 10.10.10.179 table pvtnet
post-up ip route add default via 10.10.10.1 dev ens19 table pvtnet
post-up ip rule add from 10.10.10.179/32 table pvtnet
post-up ip rule add to 10.10.10.179/32 table pvtnet