虛擬機器沒有網路:按正確的順序排查
大多數人從虛擬機器內部開始找,但那是最後才該看的地方。這條鏈有四個環節,症狀會指出是哪一環斷了。
AtlasPVE ·
本條目涵蓋以下問題
- proxmox vm 無法上網
- proxmox vm 拿不到 ip
- proxmox vmbr0 是什麼
- proxmox bridge 設定
- proxmox vm 沒有網路連線
虛擬機器開機了,也在執行,卻沒有網路。第一個反應是進入虛擬機器內部查看網路設定,而這通常很浪費時間,因為那是鏈上的最後一環。
先看清這條鏈的形狀
伺服器上有一個橋接器,這個橋接器的行為就像一台交換器。虛擬機器的網路卡插在這台交換器上。交換器本身連接到一個實體連接埠。這條鏈是:虛擬機器、橋接器、實體連接埠、外部世界。只要其中任何一環斷了,虛擬機器內部看起來完全正常,網路線看起來也接上了,流量卻哪裡都去不了。
第一環:網路卡是否接在正確的橋接器上
查看虛擬機器的網路卡連接到哪個橋接器。由範本建立的虛擬機器,或從其他伺服器遷移過來的虛擬機器,會一直帶著舊的橋接器名稱。如果這台伺服器上已經沒有那個名稱,網路卡等於什麼都沒接上。
第二環:橋接器是否有對外的出口
如果橋接器中沒有任何實體連接埠,它就是一台只朝內的交換器:上面的虛擬機器彼此看得見,除此之外什麼都看不到。有時這是刻意的,有時則是在設定時漏掉了。虛擬機器之間互相看得見卻無法上網,這個症狀幾乎總是指向這裡。
第三環:標記的問題
如果網路使用帶 VLAN 標記的流量,上游交換器所期望的與虛擬機器所送出的必須一致。在期望帶標記的地方送出未標記的流量,或反過來,完全不會產生任何錯誤。一切看起來都正確,卻沒有任何封包通過。正因為它悄無聲息,這是最耗時間的一環。
第四環:現在才看虛擬機器內部
走到這一步時,有三件事要檢查,而且三者指向不同的方向。如果完全沒有取得位址,問題在更上游。如果有位址但什麼都出不去,就查看閘道。如果一切正常但名稱無法解析,問題在名稱解析,而不是網路。區分這三種症狀,就完成了一半的診斷。
還有複製的陷阱:如果複製出來的虛擬機器帶著與來源相同的網路身分,同一個位址就會被分配給兩台虛擬機器,連線會輪流中斷。
昨天還能用的情況
昨天這條鏈也是一樣的,所以要找的是改變了什麼:虛擬機器內部的防火牆、伺服器端的一條規則,或負責分配位址的服務上一筆過期的記錄。在昨天還正常運作的環境中,橋接器配置很少會自己壞掉。
Atlas 的做法
在網路頁面上,Atlas 把實體連接埠、橋接器、位址與路由顯示在同一個地方,因此可以用眼睛追蹤上述的鏈,而不必在腦中拼湊。變更網路設定時會啟動回復倒數:若未確認,舊的設定會自動恢復,而且這個倒數在伺服器上執行,不受瀏覽器影響。因此,切斷連線的變更不會讓人被鎖在外面。
資料來源
Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。