by 無若
這邊以CentOS7+Liberty版本為例。
過去一段時間(Juno版本之前版本),OpenStack內的虛擬網絡與真正的物理網絡銜接主要使用openvswitch,其主要問題是在配置網橋時容易導致斷開連接,另外也不好管理。
在L版本中,官方的配置文檔中已經不再安裝openvswitch,主要是通過flat網絡方式與外部物理網絡銜接,采用這種方式不會導致突然斷開連接。
這里假設你應該完全安裝好了各種組件。
(1)檢查或編寫配置
編輯/etc/neutron/plugins/ml2/ml2_conf.ini中的
[ml2_type_flat] flat_networks = public
再編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini中的
[linux_bridge] physical_interface_mappings = public:eth1
注意這里的eth1是你的網絡接口名,可以用ip a查看
注意多網卡的時候,用此命令可以知道哪個網卡是連通的
例如:從這里查出eth0是UP的。
$ip a eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master brq070ed0ca-92 state UP qlen 1000 ...
(2)通過dashboard來配置flat網絡
在 “管理員” 條目下選擇 “網絡”,再點擊 “創建網絡” ,在里面要注意選擇 “Flat” ,物理網絡為 “public” (注意這里與/etc/neutron/plugins/ml2/ml2_conf.ini內的[ml2_type_flat]的flat_networks對應),然后再把 “共享的” 和 “外部網絡” 勾選起來,之后點擊 “創建網絡”。
之后,在 EXT_01 下 增加子網,注意此時需要在 “項目” 下的 “網絡” 中增加子網。
子網配置,這里 192.168.29.0/24 為真實的物理網絡:
配置子網詳情,注意這里的 192.168.29.195~192.168.29.197 為真實物理網絡中的一段:
創建成功后,創建 路由器 與 EXT_01 關聯
查看網絡拓撲,可以看到路由器在真實物理網絡中的IP地址為 192.168.29.196 :
驗證:使用ip netns命令找到這個虛擬路由器之后,用這個虛擬路由器ping真實物理網絡中的網關(這里是192.168.29.254),ping通即證明OpenStack內部虛擬網絡與真實物理網絡銜接成功!