Ubuntu

netplan apply/try/generate 以 ERROR 結尾

  • December 9, 2021

我們擁有基於 VMWare 和 Windows 和 Linux 虛擬機的雲基礎架構。上次重啟後 4 台 Ubuntu(3 台 Ubuntu 20.04 和一台 Ubuntu 16.04)伺服器沒有啟動網路介面。lshw -class network我看到列出了正確的網路介面。網路中沒有 DHCP,所有伺服器都使用靜態 IP。重新啟動後networkctl,特定介面的 OPERATIONAL 列中為 OFF。使網路正常工作的唯一方法是使用以下 IP 命令序列,但重啟後一切都消失了:

$ip link set <link_name> up
$ip addr add <server-ip>/24 dev <link_name>
$ip route add default via <gateway> dev <link_name>

看起來問題出在netplan上。我有 netplan 配置,它與伺服器一起部署,當從模板創建時,它在這個基礎設施中的所有其他 Ubuntu 伺服器上執行良好,除了這 4 台伺服器。它還在這些伺服器上工作,直到本週重新啟動(我們通常每月更新和重新啟動一次)配置如下所示:

network:
 version: 2
 renderer: networkd
 ethernets:
   <link_name>:
     dhcp4: no
     dhcp6: no
     addresses:
       - <server_ip>/24
     gateway4: <gateway>
     nameservers:
       search:
         - <domain>
       addresses:
         - <dns_1>
         - <dns_2>

但是,當嘗試netplan applynetplan generate或者netplan try,它返回奇怪的錯誤時,我在網際網路上找不到任何相關資訊。(出於安全目的,我用 <correct_gateway> 替換了我的網關 IP,在此操作中用 <some_random_ip> 替換了其他 IP)

ERROR:src/parse.c:1120:handle_gateway4: assertion failed (scalar(node) == cur_netdef-&gt;gateway4): ("&lt;correct_gateway&gt;" == "&lt;some_random_ip&gt;")
Bail out! ERROR:src/parse.c:1120:handle_gateway4: assertion failed (scalar(node) == cur_netdef-&gt;gateway4): ("&lt;correct_gateway&gt;" == "&lt;some_random_ip&gt;")

如果我在 *.yaml 配置文件中添加一些縮進錯誤,它會返回指向此錯誤的正常錯誤消息。

我嘗試重新安裝 netplan.io 沒有任何運氣,也不知道接下來要嘗試什麼。

嗯,找到了解決辦法。

問題是配置文件中的折舊gateway4標籤。

過去是gateway4: &lt;gateway&gt;,現在是:

     routes:
     - to: default
       via: &lt;gateway&gt;
       metric: 100

引用自:https://serverfault.com/questions/1085456