我有一个 Ubuntu 18.04(即 NetworkManager / netplan / systemd-networkd)VM,它运行良好,直到我尝试添加第二个接口。在我配置了一个静态地址(它仍在设置一个额外的默认 gw 和 DNS)之后,我最初遇到了 DHCP 仍在运行的问题,我认为现在已经解决了。新界面(ens192)有响应,但我无法连接到原始界面(ens160)。
我通过尝试从位于 10.1.1.1 的客户端(即通过配置为默认网关的路由器)连接到 10.2.0.20 (ens160) 接口对此进行了测试。
检查 TCP 转储,我看到 TCP 同步数据包从 ens160 上的客户端到达,但主机在新接口上响应(确认)。没有配置 iptables 规则。
这是路由表:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 10.2.0.254 0.0.0.0 UG 100 0 0 ens160
10.1.0.0 0.0.0.0 255.255.0.0 U 101 0 0 ens192
10.2.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens160
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens160
(我不知道 169.254.0.0 地址来自哪里)。我注意到 ens192 局域网路由的指标比 ens160 高。我本来希望这可以解释与我看到的行为完全相反的行为(即更高的指标可能意味着发送到 10.1.0.0 的数据包被回复到超过 10.2.0.0)但只是为了检查我将其更改为与其他:
# ip route del 10.1.0.0/16 dev ens192
# ip route add 10.1.0.0/16 dev ens192 metric 100
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.2.0.254 0.0.0.0 UG 100 0 0 ens160
10.1.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens192
10.2.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens160
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens160
这对行为没有影响。
如何让两个接口按预期工作(最好不破坏网络计划)?
我确实读过这个- 但我不是试图通过路由器发送流量,只是发送到连接的局域网。如果它是相关的,这是我目前的网络计划:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: no
addresses: [10.2.0.27/16]
gateway4: 10.2.0.254
nameservers:
addresses: [10.2.0.52,10.2.0.61]
ens192:
dhcp4: no
addresses: [10.1.0.73/16]
路由表有一条到
10.1.0.0/26
网络的路由 viaens192
,因此返回的数据包10.1.1.1
通过该接口出去。169.254.0.0/16
地址是自动配置的。机器是否有另一个 IPv4 地址?