在 Ubuntu 22.04 中,netplan 没有实现到网关的路由

在 Ubuntu 22.04 中,netplan 没有实现到网关的路由

抱歉,如果这很简单...但我似乎无法让 netplan 设置到默认网关的正确路由。我必须使用“sudo route add default gw [...]”手动设置它,以使服务器能够访问互联网。

这是我当前的 netplan 配置(在 /etc/netplan/00-installer-config.yaml 中):


network:
  version: 2
  renderer: networkd  
  ethernets:
    eno1:
      dhcp4: no
    eno2:
      dhcp4: no
    enp33s0f0:
      dhcp4: no
    enp33s0f1:
      dhcp4: no
    ens1f0:
      addresses:
        - [xxx].[yy].[zz].124/29
      routes:
        - to: default
          via: [xxx].[yy].[zz].121
      nameservers:
        addresses: [redacted]
      dhcp4: no
      dhcp6: no
    ens1f1:
      dhcp4: no


这样就可以正确设置 IP 号码,我可以从邻近的服务器连接。但是,“route -n”仅显示以下内容:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
[xxx].[yy].[zz].120   0.0.0.0         255.255.255.248 U     0      0        0 ens1f0

... 意味着没有到实际网关的路由。我必须使用“route”命令手动设置它,如下所示:

sudo route add default gw [xxx].[yy].[zz].121 ens1f0

... 然后一切都正常,包括 DNS;但这在重启后不起作用。知道我做错了什么吗?我尝试使用“on-link: true”设置,但也没有用。

非常感谢您的帮助/见解!

答案1

我刚刚在完全修补的 ubuntu 22.04 服务器上测试了您的精确配置文件,并且只调整了接口名称和 IP 地址,一切运行良好。

也许这是一个愚蠢的问题,但是在配置更改后您是否执行过“netplan apply”?

答案2

没有足够的积分来评论。我遇到了同样的问题,以为是 netplan 或 ubuntu 系统的问题,结果发现我在 Yaml 定义中将网关写错了,应该是 192.68.1.1,而不是 192.168.1.1。直到我检查 /run/systemd/network/10-netplan-ens8.network 才发现

答案3

我在 Ubunutu 22.04 上遇到了完全相同的问题。这真的很令人沮丧。感觉就像是被什么东西刺激到的 bug。

相关内容