我在 Azure 上有一个 Ubuntu 18.04 VM,在同一个子网上有 2 个 NIC。两者都有公共 IP,但只有 1 个可以访问互联网。我尝试修改 netplan 文件,但似乎只能让其中一个工作。
以下是路由表:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 _gateway 255.255.255.255 UGH 100 0 0 eth1
0.0.0.0 _gateway 255.255.255.255 UGH 100 0 0 eth0
default _gateway 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
168.63.129.16 _gateway 255.255.255.255 UGH 100 0 0 eth0
169.254.169.254 _gateway 255.255.255.255 UGH 100 0 0 eth0
网络计划如下:
network:
ethernets:
eth0:
dhcp4: true
routes:
- to: 0.0.0.0
via: 10.0.0.1
metric: 100
# dhcp4-overrides:
#route-metric: 100
#use-routes: false
dhcp6: false
match:
driver: hv_netvsc
macaddress: 60:45:bd:c0:aa:ff
set-name: eth0
eth1:
dhcp4: true
routes:
- to: 0.0.0.0
via: 10.0.0.1
metric: 100
#dhcp4-overrides:
# route-metric: 200
dhcp6: false
match:
driver: hv_netvsc
macaddress: 60:45:bd:c7:6a:d7
set-name: eth1
version: 2
在此配置中,我只能从 eth0 访问(ping)互联网。我尝试覆盖 DHCP 路由并仅在 1 个网卡上设置默认值,但似乎不起作用。两个网卡在 Azure 中都有静态 IP。感谢任何提示。
编辑:
有趣的是,我更新了我的 netplan,设置了静态 IP 并禁用了 dhcpv4,但 systemd 仍然从 DHCP 继承路由,所以我相信这是问题所在,但我不确定如果我在 netplan 中将其设置为禁用,如何才能禁用它
systemd-networkd[2711]: eth1: DHCPv4 address 10.0.0.5/24
systemd-networkd[2711]: eth1: DHCP: No routes received from DHCP server: No data available
systemd-networkd[2711]: eth1: Configured
systemd-networkd[2711]: eth0: DHCPv4 address 10.0.0.4/24 via 10.0.0.1
systemd-networkd[2711]: eth0: Configured
答案1
我发现另一个问题正是我的用例。它似乎解决了我的问题。