我有一个 Ubuntu 18.04(即 NetworkManager / netplan / systemd-networkd)VM,它运行良好,直到我尝试添加第二个接口。我最初遇到配置静态地址后 DHCP 仍在运行的问题(它仍在设置额外的默认网关和 DNS),我认为现在已经解决了。新接口(ens192)具有响应能力,但我无法连接到原始接口(ens160)。
我通过尝试从 10.1.1.1 的客户端连接到 10.2.0.20 (ens160) 接口(即通过配置为默认网关的路由器)来对此进行测试。
检查 TCP 转储,我看到 TCP syn 数据包从 ens160 上的客户端到达,但主机正在新接口上响应 (ack)。没有配置 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
这对行为没有影响。
我如何让两个接口按预期工作(最好不破坏网络规划)?
我做到了读这个- 但我并不想通过路由器发送流量,只是发送到连接的 LAN。如果相关的话,这是我当前的网络规划:
# 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]
答案1
10.1.0.0/26
路由表有一条通过到达网络的路由ens192
,因此返回数据包将10.1.1.1
通过该接口出去。
地址169.254.0.0/16
是自动配置的。该机器是否有其他 IPv4 地址?