本節在實驗環境中手工配置 Linux VLAN 子介面與 Bridge,模擬物理交換機的「隔離 + 交換」雙重功能,為理解 OpenStack Neutron 網絡模型打下基礎。
eth0 作為 Trunk 口eth0.10 (VLAN 10) 與 eth0.20 (VLAN 20)brvlan10、brvlan20 兩座 Linux Bridgeauto 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。
# 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
brvlan10 → 啟動 → 內部配置 IP 192.168.100.10/24brvlan20 → 啟動 → 內部配置 IP 192.168.100.20/24
# brctl show brvlan10 ... eth0.10 vnet0 brvlan20 ... eth0.20 vnet1
通過 virsh domiflist VM1 確認 vnet0 屬於 VM1。
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
| 物理交換機 | 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 僅提供「交換」。兩者結合,完整復刻二層交換機功能。