本節開始咱們將學習 Linux Bridge 如何實現 Neutron 的各類功能。
首先須要配置 linux-bridge mechanism driver。
Neutorn ML2 plugin 默認使用的 mechanism driver 是 open vswitch 而不是 linux bridge。那是否還有研究 linux bridge 的必要呢?
個人答案是:頗有必要!linux
緣由以下:網絡
linux bridge 技術很是成熟,並且高效,因此業界不少 OpenStack 方案採用的是 linux bridge,好比 Rackspace 的 private cloud。學習
open vswitch 實現的 Neutron 虛擬網絡較爲複雜,不易理解;而 linux bridge 方案更直觀。先理解 linux bridge 方案後再學習 open vswitch 方案會更容易。而且能夠經過兩種方案的對比更加深刻地理解 Neutron 網絡。spa
在深刻學習以前,咱們先複習一下 linux bridge 實現虛擬交換節的基本原理。虛擬機
上圖中,br0 是 linux bridge,br0 充當虛擬交換機的做用,負責將物理網卡 eth0 和虛擬網卡 tap 設備 vnet0/vent1 鏈接到同一個二層網絡,實現虛擬機 VM1 和 VM2,以及虛擬機與外網之間的通訊。it
關於 linux bridge 更詳細的內容請參考「預備知識 -> 網絡虛擬化」 相關章節。原理
要在 Neutron 中使用 linux bridge,首先須要配置 linux-bridge mechanism driver。 Neutron 默認使用 ML2 做爲 core plugin,其配置位於 /etc/neutron/neutron.conf。配置
控制節點和計算節點都須要在各自的 neutron.conf 中配置 core_plugin 選項。plugin
而後須要讓 ML2 使用 linux-bridge mechanism driver。 ML2 的配置文件位於 /etc/neutron/plugins/ml2/ml2_conf.ini。im
mechanism_drivers 選項指明當前節點可使用的 mechanism driver,這裏能夠指定多種 driver,ML2 會負責加載。 上面的配置指明咱們只使用 linux-bridge driver。
控制節點和計算節點都須要在各自的 ml2_conf.ini 中配置 mechanism_drivers 選項。
Neutron 服務正常啓動後,全部節點上都會運行 neutron-linuxbridge-agent
linux-bridge mechanism driver 已經配置完畢,下一節會檢視當前的網絡狀態。
隨着各類 Neutron 功能的實踐,咱們將看到這個網絡狀態會不斷的演變和發展。