在 ML2 中 enable local network - 每天5分鍾玩轉 OpenStack(79)


前面完成了一系列准備工作,本節開始將創建各種 Neutorn 網絡,我們首先討論 local network。

 

local network 的特點是不會與宿主機的任何物理網卡相連,也不關聯任何的 VLAN ID。

對於每個 local netwrok,ML2 linux-bridge 會創建一個 bridge,instance 的 tap 設備會連接到 bridge。位於同一個 local network 的 instance 會連接到相同的 bridge,這樣 instance 之間就可以通信了。

因為 bridge 沒有與物理網卡連接,所以 instance 無法與宿主機之外的網絡通信。 同時因為每個 local network 有自己的 bridge,bridge 之間是沒有連通的,所以兩個 local network 之間也不能通信,即使它們位於同一宿主機上。

下圖是 local network 的示例:

image525.png

  • 創建了兩個 local network,分別對應兩個網橋 brqXXXX 和 brqYYYY。

  • VM0 和 VM1 通過 tap0 和 tap1 連接到 brqXXXX。

  • VM2 通過 tap2 連接到 brqYYYY。

  • VM0 與 VM1 在同一個 local network中,它們之間可以通信。

  • VM2 位於另一個 local network,由於 brqXXXX 和 brqYYYY 沒有聯通,所以 VM2 無法與 VM0 和 VM1 通信。

下面我們將一步一步實現 local network。

在 ML2 配置中 enable local network

創建 local 網絡之前請先確保 ML2 已經加載了 local type driver。 ML2 的配置文件位於 /etc/neutron/plugins/ml2/ml2_conf.ini。

type_drivers 告訴 ML2 加載所有 5 種網絡的 type driver。

type_drivers = local,flat,vlan,gre,vxlan

這樣所有類型的網絡我們都可以創建(雖然在本節只創建 local 網絡)。

普通用戶和 admin 都可以通過 CLI 或者 Web GUI 創建網絡,但只有 amdin 才能指定網絡的 type,所以需要用 tenant_network_types 告訴 ML2 當普通用戶在自己的 Tenant(Project)中創建網絡時,默認創建哪種 type 的網絡,這里 type 是 local。

tenant_network_types = local

tenant_network_types 可以指定多種 type,比如:

tenant_network_types = vlan, local

其作用是先創建 vlan 網絡,當沒有 vlan 可創建時(比如 vlan id 用完),便創建 local 網絡。

當配置文件發生了變化,需要重啟 Neutron 相關服務使之生效。

有了上面的這些准備,我們可以開始深入學習 linux bridge 如何實現每種 network type 了。

 

下一節將創建第一個 local network。

 

blob.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM