如何閱讀網路地圖:一台機器的流量往哪裡去
有個問題是清單檢視回答得很差的:這台機器的流量究竟經過哪裡。答案找得到,但每次都得在腦中把整條鏈組合起來。
AtlasPVE ·
本條目涵蓋以下問題
- proxmox 網路架構圖
- proxmox 拓撲檢視
- proxmox vm 在哪個橋接器上
- proxmox 網路地圖
- proxmox 連線視覺化
清單檢視很擅長回答有什麼:多少台機器、多少個橋接器、多少張網路卡。但要回答這台機器的流量經過哪裡,就沒有那麼容易。答案找得到,但必須打開四個畫面,在腦中把整條鏈接起來,而且每次提問都得重新接一次。
為什麼地圖不是清單
本 wiki 中每一篇網路條目都描述同一個方法:沿著鏈追下去。機器、橋接器、實體連接埠、外部世界。清單不會把這條鏈交到手上,它交出的是零件;每次都得自己組裝。地圖本身就是那條鏈。
差別在故障時才會顯現。平常日子裡,走過四個畫面不算麻煩。當東西壞了、時間又晚了,存在腦中的鏈就會接錯。
地圖必須具備的環節
依序是:外部世界、實體連接埠、有的話還有綁定介面(bond)、橋接器、有的話還有 VLAN 標籤,最後是機器本身。只要缺了其中一環,地圖看起來再好也沒有用,因為缺的那一環正是會卡住的地方。
地圖不可以做的事
它不能為了好看而犧牲真實。一張畫出不存在的線、或漏掉存在的線的地圖,比清單更糟:清單會逼人思考,錯誤的地圖則會讓人深信不疑。
手繪圖與即時地圖的差別
有人畫過一次的架構圖,無法說明兩件事:那條連線此刻是否正在傳輸流量,以及是否有規則正在過濾它。這兩個都是故障時會問的問題。牆上的架構圖半年後就不再反映現實;即時地圖顯示的則是當下實際存在的一切。
在地圖上要找什麼
沒有連接到任何東西的機器。如果它的網路卡懸空,問題就出在鏈的第一環。
沒有實體連接埠的橋接器。上面的機器彼此看得到,但除此之外什麼都看不到。這正是機器之間互通、卻上不了網這個症狀的樣貌。
只出現在一側的標籤。如果標籤在一處有、另一側卻沒有,不會出現任何錯誤,也不會有任何封包通過。
兩台不該互相看見的機器,卻在同一個橋接器上。原本以為已經隔開的東西,就是在這裡發現其實沒有隔開。
地圖看不到的地方
地圖顯示的是主機回報的內容。虛擬機器內部發生的事不在這張地圖上:它自己的防火牆、自己的路由、自己的設定。遇到伺服器上全部開放、卻仍然連不上的情況時,地圖看起來會是乾淨的,因為伺服器這一側確實是乾淨的。
知道這一點不會削弱地圖的價值,反而能正確地使用它:地圖排除了伺服器這一側,剩下的就是機器內部。
Atlas 的做法
Atlas 在一個畫面上把整條鏈從頭畫到尾:外部世界、實體網路卡、有的話還有綁定的連線、橋接器、帶標籤的網路介面,最遠端則是虛擬機器與容器。因此上述所有環節都在地圖上,不必再打開第四個畫面。
線條粗細跟隨即時流量,所以一眼就能看出哪條連線真正在工作;這是手繪圖給不了的兩件事之一。第二件就在節點本身:如果某個網路介面上啟用了防火牆且帶有標籤,地圖會把這件事顯示在機器旁邊。
符號代表的意義寫在地圖自己的圖例中,因此不必死記任何顏色或形狀。
資料來源
Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。