天天看點

動手實踐 Linux VLAN - 每天5分鐘玩轉 OpenStack(13)配置 VLAN配置 VM1配置VM2驗證 VLAN 的隔離性Linux Bridge + VLAN = 虛拟交換機

本節我們來看如何在實驗環境中實施和配置如下 VLAN 網絡

編輯 /etc/network/interfaces,配置 eth0.10、brvlan10、eth0.20 和 brvlan20。

下面用 vmdiff 展示了對 /etc/network/interfaces 的修改

重新開機主控端,ifconfig 各個網絡接口

用 brctl show 檢視目前 Linux Bridge 的配置。

eth0.10 和 eth0.20 分别挂在 brvlan10 和 brvlan20上 了

在主控端中已經提前建立好了虛機 VM1 和 VM2,現在都處于關機狀态

在 virt-manager 中将 VM1 的虛拟網卡挂到 brvlan10 上。

啟動 VM1

檢視 Bridge,發現 brvlan10 已經連接配接了一個 vnet0 裝置

通過 virsh 确認這就是 VM1 的虛拟網卡。

類似的,将 VM2 的網卡挂在 brvlan20 上

啟動 VM2

檢視 Bridge,發現 brvlan20 已經連接配接了一個 vnet1 裝置

通過 virsh 确認這就是 VM2 的虛拟網卡。

為了驗證 VLAN10 和 VLAN20 之間的隔離,我們為 VM1 和 VM2 配置同一網段的 IP。

配置 VM1 的 IP

配置 VM2 的 IP

Ping 測試結果: VM1 與 VM2 是不通的

原因如下:

1. VM2 向 VM1 發 Ping 包之前,需要知道 VM1 的 IP 192.168.100.10 所對應的 MAC 位址。VM2 會在網絡上廣播 ARP 包,其作用就是問 “誰知道 192.168.100.10 的 MAC 位址是多少?”

2. ARP 是二層協定,VLAN 的隔離作用使得 ARP 隻能在 VLAN20 範圍内廣播,隻有 brvlan20 和 eth0.20 能收到,VLAN10 裡的裝置是收不到的。VM1 無法應答 VM2 發出的ARP包。

3. VM2 拿不到 VM1 vnet0 的 MAC 位址,也就 Ping 不到 VM1。

現在對 KVM 的網絡虛拟化做個總結。

實體交換機存在多個 VLAN,每個 VLAN 擁有多個端口。

同一 VLAN 端口之間可以交換轉發,不同 VLAN 端口之間隔離。

是以交換機其包含兩層功能:交換與隔離。

Linux 的 VLAN 裝置實作的是隔離功能,但沒有交換功能。

一個 VLAN 母裝置(比如 eth0)不能擁有兩個相同 ID 的 VLAN 子裝置,是以也就不可能出現資料交換情況。

Linux Bridge 專門實作交換功能。

将同一 VLAN 的子裝置都挂載到一個 Bridge 上,裝置之間就可以交換資料了。

總結起來,Linux Bridge 加 VLAN 在功能層面完整模拟現實世界裡的二層交換機。

eth0 相當于虛拟交換機上的 trunk 口,允許 vlan10 和 vlan20 的資料通過

eth0.10,vent0 和 brvlan10 都可以看着 vlan10 的 access 口

eth0.20,vent1 和 brvlan20 都可以看着 vlan20 的 access 口

本文轉自CloudMan6 51CTO部落格,原文連結:http://blog.51cto.com/cloudman/1757390

繼續閱讀