作者:王涛 戴华忠
来源:《活力》2019年第04期
【摘要】本文通过开源的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].口
因篇幅问题不能全部显示,请点此查看更多更全内容