我必须使用 Ubuntu 20.04.5 LTS 构建替代服务器,并且我正在尝试从 NetworkManager 迁移到 netplan。我的新服务器可以连接到互联网,但抱怨它没有路由到我的 192.168.0.0 局域网。所有对局域网主机的 ping 都导致Destination Host Unreachable
我有一台旧的 Centos7 服务器,它使用 NetworkManager,可以按照我想要的方式工作。在那台旧主机上galactica
,网卡 enp6s0 具有 ipv4 192.168.1.5,并连接到互联网,网卡 enp3s0 具有 ipv4 192.168.0.5,并连接到我的局域网。在这台旧服务器 galactica 上,ip addr
显示以下内容:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 60:a4:4c:59:1e:17 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.5/24 brd 192.168.0.255 scope global noprefixroute enp3s0
valid_lft forever preferred_lft forever
inet6 fe80::62a4:4cff:fe59:1e17/64 scope link
valid_lft forever preferred_lft forever
3: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 68:05:ca:40:ac:5a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global noprefixroute enp6s0
valid_lft forever preferred_lft forever
inet6 2600:1700:8fd4:80:6a05:caff:fe40:ac5a/64 scope global mngtmpaddr dynamic
valid_lft 3226sec preferred_lft 3226sec
inet6 fe80::6a05:caff:fe40:ac5a/64 scope link
valid_lft forever preferred_lft forever
4: wlp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 5e:bc:ba:f9:24:a9 brd ff:ff:ff:ff:ff:ff
并ip route
显示如下内容:
default via 192.168.1.254 dev enp6s0 proto static
default via 192.168.0.5 dev enp3s0 proto static metric 100
192.168.0.0/24 dev enp3s0 proto kernel scope link src 192.168.0.5 metric 100
192.168.1.0/24 dev enp6s0 proto kernel scope link src 192.168.1.5
192.168.1.0/24 via 192.168.1.254 dev enp6s0 proto static
我注意到它显示了两条默认路线。
在新服务器上executor
,网卡 enp9s0 具有 ipv4 192.168.1.8,并连接到互联网,网卡 enp5s0 具有 ipv4 192.168.0.5,但没有到任何地方的路由。我希望它连接到我的局域网。我有两个文件/etc/netplan
,01_wan_00.yaml 和 02_lan_00.yaml:
network:
version: 2
renderer: networkd
ethernets:
enp9s0:
addresses:
- 192.168.1.8/24
gateway4: 192.168.1.254
nameservers:
addresses: [68.94.156.1, 68.94.157.1, 1.1.1.1]
network:
version: 2
renderer: networkd
ethernets:
enp5s0:
addresses:
- 192.168.0.8/24
nameservers:
addresses: [68.94.157.1, 1.1.1.1]
routes:
- to: 192.168.0.0/24
via: 192.168.0.8
在此新主机上,ip addr
显示以下内容:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 88:c9:b3:b0:66:21 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.8/24 brd 192.168.1.255 scope global enp9s0
valid_lft forever preferred_lft forever
inet6 fe80::8ac9:b3ff:feb0:6621/64 scope link
valid_lft forever preferred_lft forever
3: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0a:cd:24:bd:08 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.8/24 brd 192.168.0.255 scope global enp5s0
valid_lft forever preferred_lft forever
inet6 2600:1700:8fd4:80:20a:cdff:fe24:bd08/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 3585sec preferred_lft 3585sec
inet6 fe80::20a:cdff:fe24:bd08/64 scope link
valid_lft forever preferred_lft forever
我看到 enp5s0 没有单词noprefixroute
。该命令ip route
显示以下内容:
default via 192.168.1.254 dev enp9s0 proto static
192.168.0.0/24 dev enp5s0 proto kernel scope link src 192.168.0.8
192.168.0.0/24 via 192.168.0.8 dev enp5s0 proto static
192.168.1.0/24 dev enp9s0 proto kernel scope link src 192.168.1.8
我注意到只有一条默认路线,但是当我在 01_wan.yaml 中包含路线部分时,netplan apply
抱怨我应该只有一条默认路线,而且我的路线无论如何都不起作用。
那么正确的配置方法是什么executor
?
答案1
仔细检查你的网卡的设备名称/电缆连接。
在这种情况下,设备名称被反转,因此 enp5s0 物理连接到互联网,并且应该具有 ipv4 192.168.1.8,对于 enp90s 反之亦然。
更糟糕的是,局域网的流量会传到互联网并返回,而命令的结果ip
仍然与旧主机上的 NetworkManager 不完全一致。所以我们知道我们有一个防火墙问题,但似乎我们已经解决了基本的连接问题。
答案2
routes:
- to: 192.168.0.0/24
via: 192.168.0.8
这是不正确的。您告诉系统 192.168.0.8 是路由器,并且到 192.168.0.0/24 网络的流量应发送到此路由器。但 192.168.0.8 不是路由器,而是您的主机。到此网络的“路由”是将流量从您的网络接口发送出去。
删除这条路线,情况就会好起来。