首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

OpenStack 網絡實戰 (13):Linux VLAN + Bridge 手把手構建虛擬交換機

     編輯:Java 綜合教學

OpenStack 網絡實戰 (13):Linux VLAN + Bridge 手把手構建虛擬交換機

本節在實驗環境中手工配置 Linux VLAN 子介面與 Bridge,模擬物理交換機的「隔離 + 交換」雙重功能,為理解 OpenStack Neutron 網絡模型打下基礎。

目標拓撲

目標拓撲

  • 物理介面 eth0 作為 Trunk 口
  • 創建 eth0.10 (VLAN 10) 與 eth0.20 (VLAN 20)
  • 分別掛載到 brvlan10、brvlan20 兩座 Linux Bridge
  • 虛擬機 VM1 接入 brvlan10,VM2 接入 brvlan20
  • 驗證 VLAN 隔離性:同網段 IP 無法互通

步驟 1:宿主機配置 VLAN 與 Bridge (/etc/network/interfaces)

auto eth0
iface eth0 inet manual

auto eth0.10
iface eth0.10 inet manual
    vlan-raw-device eth0

auto brvlan10
iface brvlan10 inet static
    address 192.168.10.1
    netmask 255.255.255.0
    bridge_ports eth0.10
    bridge_stp off
    bridge_fd 0

auto eth0.20
iface eth0.20 inet manual
    vlan-raw-device eth0

auto brvlan20
iface brvlan20 inet static
    address 192.168.20.1
    netmask 255.255.255.0
    bridge_ports eth0.20
    bridge_stp off
    bridge_fd 0

修改後重啟宿主機或 systemctl restart networking。

步驟 2:驗證介面與 Bridge 狀態

# ifconfig
eth0.10: ... UP ...
brvlan10: ... UP ...
eth0.20: ... UP ...
brvlan20: ... UP ...

# brctl show
bridge name    bridge id        STP  interfaces
brvlan10       8000.xxxx        no   eth0.10
brvlan20       8000.xxxx        no   eth0.20

ifconfig輸出 brctl show

步驟 3:配置虛擬機網絡 (virt-manager)

  1. VM1:網卡掛載到 brvlan10 → 啟動 → 內部配置 IP 192.168.100.10/24
  2. VM2:網卡掛載到 brvlan20 → 啟動 → 內部配置 IP 192.168.100.20/24

VM1網卡配置 VM2網卡配置

步驟 4:驗證 Bridge 自動掛載 vnet 介面

# brctl show
brvlan10  ...  eth0.10  vnet0
brvlan20  ...  eth0.20  vnet1

通過 virsh domiflist VM1 確認 vnet0 屬於 VM1。Bridge掛載vnet

步驟 5:驗證 VLAN 隔離性

  • VM1 ping VM2 → 不通
  • 原因:ARP 廣播被 VLAN 隔離,VM2 的 ARP 請求無法到達 VM1,無法解析 MAC,故 Ping 失敗。
root@VM2:~# ping 192.168.100.10
PING 192.168.100.10 (192.168.100.10) 56(84) bytes of data.
^C
--- 192.168.100.10 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss

Ping不通

核心原理總結:Linux Bridge + VLAN = 虛擬交換機

物理交換機Linux 實現
Trunk 口 (允許多 VLAN)物理介面 eth0
VLAN 隔離VLAN 子介面 eth0.10、eth0.20 (僅隔離,無交換)
Access 口 + 交換Bridge brvlan10 掛載 eth0.10 + vnet0 實現同 VLAN 交換
Access 口 + 交換Bridge brvlan20 掛載 eth0.20 + vnet1

Linux VLAN 僅提供「隔離」;Linux Bridge 僅提供「交換」。兩者結合,完整復刻二層交換機功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved