本文主要是介绍openstack之网络分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现在的任务是了解通过openstack创建一台新的虚拟机时,在网络上都做了哪些处理,vxlan是如何建立的,和数据库是否有关系,执行的命令是哪些。
逻辑分析一下:
1、dashboard创建虚拟机;
2、随机选择一个主机生成虚拟机,这里假设是04节点;
3、生成主机之后,必须配置网络,系统上使用的是vxlan作为网络接口建立网络连接;
4、在控制节点上应该有与主机对应的接口;这个时候主机上已经出现了新的虚拟机和设备接口,用brctl show命令可以查看。(疑问一:这个接口的创建过程是如何实现的?命名规则是什么?)
5、对应的查看控制节点应当多了个与虚拟机对应的网络设备(疑问二:是这样吗?如果是,又是怎么建立的,命名规则是什么样的?)
先解决第一个疑问:生成虚拟机后,查看物理节点网络的所有变化。
1、使用brctl show时,发现bond1下面多了个设备名为:tap4eae0eb0-37
2、使用ip link list时多了一条指令
79: tap4eae0eb0-37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master brq0a807a08-33 state UNKNOWN mode DEFAULT group default qlen 500
link/ether fe:16:3e:f4:3e:af brd ff:ff:ff:ff:ff:ff
3、使用ifconfig,多了下面内容
tap4eae0e Link encap:Ethernet HWaddr FE:16:3E:F4:3E:AF
inet6 addr: fe80::fc16:3eff:fef4:3eaf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:105 errors:0 dropped:0 overruns:0 frame:0
TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:10387 (10.1 Kb) TX bytes:12466 (12.1 Kb)
总结一下就是,在这台节点上多了个tap4eae0eb0-37的网络设备,但是这个网卡没有任何和ip有关的信息。
关于第一个疑问并没有解决,因为我自己也可以新建一个这样的网络设备,问题是这个虚拟网络设备和虚拟机是如何关联在一起的?
通过virsh list命令可以看到当前节点下的虚拟机数量和名字,但是没什么用,还是不知道这个虚拟设备如何与虚拟机关联的。
再看第二个疑问:openstack的控制节点的网络有哪些变化?
对比第一个疑问的三个命令,发现控制节点的网络没有任何变化。这说明,vxlan所有的动作都只和宿主机有关,而和控制节点无关。
为了进一步证明其无关性,我再次新建一个虚拟机。查看网络变化:
查看三个命令,依然没有任何变化。
那么现在问题的关键点可以完全放到物理主机上。
写到这突然有个疑问,为什么有些节点有以vxlan开头的虚拟设备与tap对应,有些节点确实是vnet开头的设备于tap对应,04节点上连续两个设备都是tap开头与之对应的都是vnet,这个和vxlan的区别在哪呢?
而且我发现删除虚拟机后,tap开头的设备也就消失了,但是vnet的设备却一直存在。
发现一个问题,如果选的是proceted安全组和private网络,那么就不能创建虚拟机。因为还没有研究。
同时新建虚拟机时,虚拟网络设备名和vnet,vxlan无关。tap是新建虚拟机的网络设备,vnet和vxlan一直存在(怀疑vxlan不是openstack自动创建的,而是手工创建的,因为观察发现新建虚拟机时只有tap*******有变化。那么问题又来了,这些物理节点上的vxlan名却可以和控制节点上的vxlan想对应。同时,还有个问题,当我创建新的虚拟机时,为何控制节点的tap设备不增加?)
解答上面的疑问:仔细看了下控制节点,之所以没有变化,是因为物理节点是通过网桥和控制节点连接的,因此当物理机节点上的虚拟设备增加时,只需要和物理机建立联系,通过网桥和控制节点保持关系就行。因此新建虚拟机时,控制节点的设备不需要增加。
解答上面的疑问后,又有了新的疑问,我能看到控制节点上有网桥和vxlan,这两者有什么关系,还有不同的物理节点上,有的是vnet有的是vxlan,这有什么区别吗?而且物理节点的vxlan也是挂在网桥下的。到这一步需要考虑的就是将物理节点和控制节点建立联系时,控制节点对物理节点做了什么?它是如何设置物理节点的网络的?
现在问题关注的焦点应该在新建虚拟机和tap设备上。(还有一点,控制节点的网络namespace一直被我忽略了,这些namespace的作用分割网络,那这些空间里是什么呢?)
使用下面三个命令看了下namespace,里面并没有什么值得关注的内容
ip netns exec qrouter-9a77ef39-39bb-4fe9-bb9a-f980401d71ad ip link list
ip netns exec qrouter-42bed38f-379b-448a-8b5b-f2b5afcb391a brctl show
ip netns exec qdhcp-bcbae864-6635-4f18-8f76-c95b438e388f ifconfig
现在研究vxlan还是研究tap呢?
关键1:neutron如何将tap和虚拟机建立联系。
关键2:控制节点和物理机建立联系时,控制节点对物理机做了什么。
这篇关于openstack之网络分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!