王濤 戴華忠

【摘要】本文通過開源的OpenStack構建Neutron網絡系統,完成數據的路由轉發,分析Neutron網絡的數據流。
【關鍵詞】OpenStack:Neutron;云主機
Neutron網絡提供網絡、子網和路由作為對象抽象的概念。通過路由可以將不同的子網和網絡進行路由轉發。
一、Neutron網絡規劃
OpenStack創建兩個本地虛擬網絡,地址段為172.16.1.0/24的Privatel和地址段為172.16.2.0/24的Private2的子網。并通過創建的虛擬路由器將Privatel、Private2與創建的Flat外網網絡public連接,形成互聯互通。
二、Neutron網絡數據流分析
OpenStack創建云主機及網絡的拓撲圖如圖1所示,創建的public、 privatel和private2網絡上相應端口對應的OVS內部tag(內部VLAN ID)分別為1、2、3,通過查看controller節點的br-ex(外部網橋)的流表發現在phy-br-ex的port入口處將內部VLAN ID為1的VLAN數據幀去掉VLAN標志,變成普通幀。查看br-tun(隧道網橋)的流表發現內部VLAN ID分別為2和3的VLAN數據幀首先去掉VLAN標志,并分別添加十六進制的VXLAN tunnel ID為54和4d,并從vxlan-cOa8640b端口發出。Controller節點查看br- ex和br-tun的部分流表如下所示:
[root@controller~]#ovs-ofctl dump-flows br-ex
cookie=Oxaea8bd7f49d752fc, duration=2431.lOls, table=0,n_packets=2, n_bytes=180, priority=4,in_port=" phy-br-ex" ,dl vlan=l actions=strip__ vlan,NORMAL
[root@controller~]#ovs-ofctl dump-flows br-tun
cookie-Oxe165700653ea4a87, duration=2577.822s,table=22, n_packets=2, n_bytes=180, priority=l,dl_vlan=2 actions=strip_vlan,load:Ox54->NXM_NX_TUN_ID[],output:" vxlan-cOa8640b"
cookie-Oxe165 700653 ea4a87, duration=25 77.802s,table=22, n_packets=2, n_bytes=180, priority=l,dl_vlan-3 actions=strip_vlan,load:Ox4d->NXM_NX_TUN_ID[],outiput:" vxlan-cOa8640b"
三、測試OpenStack主機
通過分配的浮動IP ssh遠程登錄到云主機,并使用ping命令來測試云主機與外網的連通性。 [root@controller~(keystone_admin)]# ssh—i keypairl.pemcirros@192.168.122.9
$ ping -c 3 8.8.8.8
PING 8.8.8.8(8.8.8.8):56 data bytes
64 bytes from 8.8.8.8: seq=4 ttl-34 time-65.053 ms
64 bytes from 8.8.8.8: seq=5 ttl=34 time=46.009 ms
64 bytes from 8.8.8.8: seq=6 ttl-34 time-52.190 ms
結語
本文通過OpenStack的Neutron網絡組建虛擬網絡系統,通過分析網絡流表掌握Neutron網絡的內部工作機制。
參考文獻:
網絡(neutron)概念.http s://doc s.openstack.org/mitaka/ zh- CN/install-guide-rdo/neutron-concepts.html[EB/OL].口