程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 動手實踐 Linux VLAN - 每天5分鐘玩轉 OpenStack(13)

動手實踐 Linux VLAN - 每天5分鐘玩轉 OpenStack(13)

編輯:關於PHP編程

動手實踐 Linux VLAN - 每天5分鐘玩轉 OpenStack(13)


本節我們來看如何在實驗環境中實施和配置下面的 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,現在都處於關機狀態

配置 VM1

在 virt-manager 中將 VM1 的虛擬網卡掛到 brvlan10 上。

啟動 VM1

查看 Bridge,發現 brvlan10 已經連接了一個 vnet0 設備

通過 virsh 確認這就是 VM1 的虛擬網卡。

配置 VM2

類似的,將 VM2 的網卡掛在 brvlan20 上

啟動 VM2

查看 Bridge,發現 brvlan20 已經連接了一個 vnet1 設備

通過 virsh 確認這就是 VM2 的虛擬網卡。

驗證 VLAN 的隔離性

為了驗證 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。

Linux Bridge + VLAN = 虛擬交換機

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

  1. 物理交換機存在多個 VLAN,每個 VLAN 擁有多個端口。
    同一 VLAN 端口之間可以交換轉發,不同 VLAN 端口之間隔離。
    所以交換機其包含兩層功能:交換與隔離。

  2. Linux 的 VLAN 設備實現的是隔離功能,但沒有交換功能。
    一個 VLAN 母設備(比如 eth0)不能擁有兩個相同 ID 的 VLAN 子設備,因此也就不可能出現數據交換情況。

  3. Linux Bridge 專門實現交換功能。
    將同一 VLAN 的子設備都掛載到一個 Bridge 上,設備之間就可以交換數據了。

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

eth0 相當於虛擬交換機上的 trunk 口,允許 vlan10 和 vlan20 的數據通過
eth0.10,vent0 和 brvlan10 都可以看著 vlan10 的 access 口
eth0.20,vent1 和 brvlan20 都可以看著 vlan20 的 access 口


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved