openstack中使用linux_bridge實現vxlan網絡


openstack環境:

1 版本:ocata

2 系統:ubuntu16.04.2

3 控制節點 1個 + 計算節點 1個

4 控制節點網卡為ens33,ip = 172.171.5.200 ens34 manual模式 無IP

 

(為什么外網網卡ens34沒有IP地址?這是另一個故事,后面有專門章節講解。)

計算節點網卡 ens33 ,ip = 172.171.5.201

 

一  vxlan配置

1 控制節點:

編輯/etc/neutron/plugins/ml2/ml2_conf.ini文件

配置tenant_network_types = vxlan。該配置意義是項目中創建的內部網絡為vxlan類型。

配置flat外部網絡的標簽為provider,在創建外部網絡時使用。

編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件

配置物理網卡的映射,通俗講即指定外網網卡。ens34為本環境中出外網網卡。

指定vxlan的封裝IP,即外層IP。

 

2 計算節點

同理配置計算節點,標簽label要和控制節點一致

隧道的封裝IP為ens33的IP地址

重啟網絡服務。

service neutron-server restart
service neutron-linuxbridge-agent restart

二 在dashboard上創建網絡過程

1 admin用戶創建公網

這里首先創建的是外網。外網的類型有兩種:falt和vlan。當指定為flat類型時,物理網絡中填寫的就是上面配置的label。指明該flat網絡使用label所綁定的網卡出外網。
一定要區分創建外部網絡和非外部網絡。如下圖,勾選了外部網絡一定是創建公網,是所有VM出公網的網絡。admin用戶也可以為某個項目創建內網,不勾選外部網絡。

flat網絡創建子網。子網網段是能夠出外網的網段。比如這里填寫的172.171.5.0/24網段,該網段中每一個IP地址都能出外網。

填寫地址池,DNS服務器。外網到這里創建結束。接下來創建本環境中的項目demo項目的內網。

當創建好外部網絡之后,對應的控制節點底層網橋發生變化。由於寫博文截圖不夠及時,這里已經是創建好網絡,實例之后的截圖。

當創建好外部網絡之后,會出現紅框中的網橋信息。其中,該網橋連接了ens34網卡和dhcp節點tap543aa81e。

如下圖所示(畫功一般,見諒)

 

以demo用戶登錄

創建內部網絡。使用demo用戶登錄demo項目中,創建的內部網絡類型是由tenant_network_types中指定,為vxlan。

該配置能指定內部網絡類型,如flat,vlan,gre等。

分配內網的ip地址。內網地址指定網段為任意網段,因為該網段的地址要經過路由器的轉換,轉換到外網的IP地址出外網。

推薦使用私網地址。本環境使用192.168.0.0/24。

配置地址池,不配置即可使用全部。

配置內網之后創建路由器,連接內網和外網。如下創建router,外部網絡選擇上面創建的外部網絡名稱。本環境為out_side_net。

再添加接口為內部網絡。子網是指上面創建的內部網絡。

最后開啟一個實例。創建實例時選擇的網絡是內部網絡。

創建好內部網絡和實例之后,vxlan隧道就建立起來。系統會在控制節點創建一個vxlan 的VTEP,在計算節點創建一個vxlan的VTEP。

如下圖,第一張為控制節點,創建vxlan12;第二張為計算節點創建也為vxlan12。這兩個VTEP設備組成了vxlan隧道的兩個端點。

 

 通過查看計算節點上vxlan12的詳細信息可以看到其連接ens33網卡。

此時隧道的網絡如下圖所示

 

如下圖所示為創建好外部網絡,內部網絡,以及路由器之后的網絡拓撲。

內部網絡的情況大概如下圖所示。

登陸實例,ping外網,通。此時的除外網的網絡流量過程如下:

  1.  VM產生ICMP包,發往網橋。數據包源IP為192.168.0.X。
  2. 通過網橋在vxlan12上封裝外層數據包。
  3. 數據通過ens33網卡出計算節點,到控制節點,即網絡節點。
  4. 在控制節點的vxlan12處解開外層封裝,還原VM的ICMP包。
  5. 數據流到達router路由器,經過路由器NAT地址轉換。從192.168.0.X轉換成外網地址172.171.5.230~240中一個。
  6. 數據流經過網橋,從ens34出去到達公網。

回包過程大概是反過來的,不再累敘。

 

 openstsack網絡復雜,自身知識能力也有限,難免出現理解錯誤的地方。歡迎指正和交流。

 

參考博文:http://www.cnblogs.com/CloudMan6/。


免責聲明!

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



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