在 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 上遇到了完全相同的問題。真是令人沮喪。感覺就像是被什麼東西搔癢的蟲子。

相關內容