開始前先了解
先準備兩台接到 vmbr1 的測試 VM, 各自有內部網卡與私有 IP. 記錄 MAC 與 guest 介面名稱, 不要修改對外網卡.
只使用可用的 VLAN ID, 一般範圍為 1-4094. 本篇的 100 與 200 是測試標籤, 不能據此假設機房或外部交換器已提供相同 VLAN.
測試會改變內部連線, 應從保留的 Console 操作. 不要把不同 VLAN 的隔離誤判成作業系統故障.
本次以 100 (demo-ubuntu) 的 ens19, 192.168.50.10/24 與 120 (cloud-ubuntu) 的 192.168.50.12/24 實測. 兩台都接到 vmbr1 時, VLAN 100 同標籤互通, 將 VM 120 暫改 VLAN 200 後隔離, 還原 VLAN 100 後再次互通. 配圖是節點命令列透過獨立 SSH 登入 VM 100 執行的真實結果; 未驗證外部交換器 trunk 或跨節點連線.
本系列使用 Proxmox VE 9 繁體中文介面的真實截圖. 節點, 儲存名稱與示範數值請換成自己的環境; 作業系統安裝程式可能維持其原有語言.
01在專用橋接器啟用 VLAN aware
選取節點的 網路 頁面, 編輯 vmbr1 並核對 VLAN aware. 展開 進階 可查看 VLAN ID, 本篇範圍 2-4094 包含測試用的 100 與 200.
本篇沿用內部網路教學中已單獨啟動的 vmbr1, 這一步只核對表單, 不再提交或整體套用網路. 若自己的橋接器尚未啟用 VLAN aware, 應先安排安全的網路變更與復原方式; 不要連同其他待處理管理設定一起套用.
放大圖片
02將兩台 VM 的測試網卡指定為 VLAN 100
在 VM 的 硬體 頁面選取專用 網路裝置, 按 編輯, 橋接 選 vmbr1, VLAN Tag 填 100. 用 MAC 確認選到內部網卡, 不是原本的對外網卡. 另一台測試 VM 的內部網卡也應使用相同橋接器與標籤.
此方式由虛擬網卡的設定指定 VLAN, guest 內一般直接為該介面設定 IP. 不要再自行建立同一個 100 的 VLAN 子介面而造成重複標記; 若要讓 guest 處理 trunk, 那是另一種配置方式.
放大圖片
03驗證相同 VLAN 可以互通
確認兩台 guest 的內部 IP 在相同網段且不重複. 本次 VM 100 使用 192.168.50.10/24, VM 120 使用 192.168.50.12/24. 在 VM 100 內使用實際內部介面執行 ping, 不要把指令直接執行在節點的管理介面.
如果同 VLAN 也不通, 先核對遮罩, Bridge, Tag, 網卡狀態與 VM 防火牆. 下列 ens19 是介面名稱範例, 請換成以 MAC 核對到的實際名稱.
ping -I ens19 -c 4 192.168.50.12
放大圖片
04改為 VLAN 200, 驗證隔離並整理設定
將 VM 120 的專用網卡暫改為 VLAN 200, VM 100 保留 100, 再用相同的內部介面與目的 IP 測試. 本次未配置跨 VLAN 路由, 因此測得 4 次送出, 0 次回覆. 修改時保留網卡的 MAC, 橋接器與其他參數, 不要連同管理網路一起更動.
完成後將 VM 120 還原為 VLAN 100, 核對保存的配置並再測一次. 本次還原後再次收到 4 次回覆. 配圖上半部是 VLAN 200 的隔離結果, 下半部是還原 VLAN 100 後的配置與互通結果.
不同 VLAN 若要互通, 需要另外的路由與防火牆安排. 本篇沒有驗證外部交換器 trunk 或公網 VLAN, 不應將內部測試結果當作外部線路已開通.
放大圖片
完成後如何確認
本次兩台 VM 已驗證同 VLAN 100 互通, VLAN 100/200 在沒有路由時隔離, 並在還原 VLAN 100 後再次互通. 自己的環境仍需依實際網卡與位址核對, 不將此結果套用到未驗證的外部 trunk 或跨節點網路.
管理網路未修改, 測試結束後的標籤與用途有清楚紀錄.
常見問題
在 VM 填 VLAN 100, 外部交換器就會跟著開通嗎?
不會. 本篇只設定虛擬網路, 外部 VLAN 還需實體網卡, 交換器與上游線路有一致安排, 並另外實測.
guest 裡面還要建立 VLAN 100 子介面嗎?
本篇是直接在 VM 網路裝置指定 Tag, guest 使用一般介面即可. 讓 guest 自行處理多個 VLAN 的 trunk 配置需要不同設定, 不應混用.