前面我們已經學習了 OVS 的 local 網絡 和 falt 網絡,今天開始討論 vlan 網絡。
vlan network 是帶 tag 的網絡。
在 Open vSwitch 實現方式下,不同 vlan instance 的虛擬網卡都接到 br-int 上。 這一點與 linux bridge 非常不同,linux bridge 是不同 vlan 接到不同的網橋上。
在我們的實驗環境中,收發 vlan 數據的物理網卡為 eth1,上面可以走多個 vlan,
所以物理交換機上與 eth1 相連的的 port 要設置成 trunk 模式,而不是 access 模式。
在 ML2 配置中 enable vlan network
在 /etc/neutron/plugins/ml2/ml2_conf.ini 設置 vlan network 相關參數:
tenant_network_types = vlan
指定普通用戶創建的網絡類型為 vlan。
然后指定 vlan 的范圍:
上面配置定義了 label 為 “default” 的 vlan network,vlan id 的范圍是 3001 - 4000。 這個范圍是針對普通用戶在自己的租戶里創建 network 的范圍。 因為普通用戶創建 network 時並不能指定 vlan id,Neutron 會按順序自動從這個范圍中取值。
對於 admin 則沒有 vlan id 的限制,admin 可以創建 id 范圍為 1-4094 的 vlan network。
接着需要指明 vlan 網絡與物理網絡的對應關系:
如上所示: 在 [ml2_type_vlan] 中定義了 lable “default”,
[ovs] 中則通過 bridge_mappings 指明 default 對應的 Open vSwitch 網橋為 br-eth1。
這里 label 的作用與前面 flat network 中的 label 一樣,只是一個標示,可以是任何字符串。
我們需要提前通過 ovs-ovctl 命令:
-
創建 br-eth1。
-
將物理網卡 eth1 橋接在 br-eth1 上。
配置完畢,下一節創建 OVS vlan network。