前面完成了一系列準備工作,本節開始将建立各種 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 的示例:
建立了兩個 local network,分别對應兩個網橋 brqXXXX 和 brqYYYY。
VM0 和 VM1 通過 tap0 和 tap1 連接配接到 brqXXXX。
VM2 通過 tap0 和 tap2 連接配接到 brqYYYY。
VM0 與 VM1 在同一個 local network中,它們之間可以通信。
VM2 位于另一個 local network,由于 brqXXXX 和 brqYYYY 沒有聯通,是以 VM2 無法與 VM0 和 VM1 通信。
下面我們将一步一步實作 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 相關服務使之生效。
下一節将建立第一個 local network。
本文轉自CloudMan6 51CTO部落格,原文連結:http://blog.51cto.com/cloudman/1843665