如何配置 netplan 以便 enp9s0 连接到互联网而 enp5s0 连接到局域网?

如何配置 netplan 以便 enp9s0 连接到互联网而 enp5s0 连接到局域网?

我必须使用 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 不是路由器,而是您的主机。到此网络的“路由”是将流量从您的网络接口发送出去。

删除这条路线,情况就会好起来。

相关内容