用 VLAN 區隔:一條線、多個網路,以及標籤加在哪裡
區隔的目的是限制糟糕的一天能波及多遠。VLAN 透過一條線路做到這一點,但標籤加在哪裡、橋接器是否允許承載標籤,都可能在無聲無息中出錯。
AtlasPVE ·
本條目涵蓋以下問題
- proxmox vlan 設定
- proxmox vlan aware 橋接器
- proxmox vm vlan tag 設定
- proxmox 虛擬機 網路隔離
- proxmox vlan 不通
如果所有東西都放在同一個扁平的網路上,每一台機器都看得到其他每一台機器。哪天其中一台遭到入侵,它看到的就是同一份清單。這正是區隔的目的:事先決定糟糕的一天能波及多遠。
VLAN 是什麼
它是一種在一條實體線路上承載多個彼此互不知情的網路的方法。每個封包都會加上一個小標籤,能辨識這些標籤的交換器會分別承載這些網路,而不會把它們混在一起。線路只有一條,網路卻不只一個。
標籤加在哪裡
這是最容易混淆的部分。標籤可以加在兩個地方:虛擬機器的網路介面上,也就是由伺服器替封包加標籤;或是機器內部,也就是由作業系統自己加標籤。兩種都可行。絕對不要兩種同時使用,因為雙重標籤會變成意料之外的東西,而且到底是哪裡壞掉,會好幾天都弄不清楚。
原則上,在伺服器端加標籤比較乾淨:機器內部保持單純,而且遷移機器時,設定會跟著一起走。
橋接器是否允許承載標籤
必須另外告訴橋接器,它要承載帶標籤的流量。如果沒有告訴它,標籤不是被丟掉就是被忽略,而且一切都在無聲中發生。又是同樣的模式:沒有錯誤訊息,只是沒有流量。
上游的連接埠有沒有放行
伺服器所連接的實體交換器連接埠,必須設定成允許要通過的標籤。如果該連接埠只允許一個網路,那個網路可以運作,其他網路則會消失。即使伺服器端完美無缺,結果也一樣,因為鏈條中的那一環不在這台機器上。
區隔不等於阻擋
兩個 VLAN 在中間有路由器之前是分開的,而通常中間就是有路由器。把東西放在不同的網路上,本身並不代表彼此看不到;如果要讓它們真的無法互相看見,就需要在路由發生的地方設定規則。略過這個區別時,大家會以為已經把東西區隔開了,實際上只是替它們編了號碼。
先畫圖,再分配號碼
先畫一次哪台機器絕對不該和哪台機器通訊。沒有這張圖就發出去的 VLAN 號碼,六個月後會變成一座沒人記得的迷宮。區隔不是編號的工作,而是做決定的工作。
Atlas 的做法
Atlas 把網路配置連同實體連接埠、橋接器和位址顯示在同一個地方,所以靠眼睛看就能追蹤標籤位於鏈條中的哪個位置。網路定義的進階部分,也就是區域和虛擬網路的定義,Atlas 刻意以唯讀方式顯示:那裡的錯誤定義影響的不是一台機器,而是整個叢集,所以 Atlas 只顯示、不編輯。對網路設定所做的變更受到回復倒數計時的保護,所以用標籤做實驗時,不會因此被鎖在外面。
資料來源
Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。