网络拓扑
了解了TAP设备、veth pair,则我们可以看看一下openstack的计算节点的网络情况。
首先,虚拟机通过TAP设备连接linux bridge
其次,通过vethpair 实现linxu bridge与ovs bridge的互通
最后,通过将ovsbridge挂载到物理网卡上,实现这个云平台的二层网络互通。
至于为什么会有双层网桥:这是和security group的概念有关,openstack中的security group开通哪些端口,屏蔽哪些端口是用iptables来实现的,然而br-int这些虚拟bridge都是openvswitch创建的,openvswitch的kernel mode和netfilter的kernel mode不兼容,一个IP包进来要么走iptables的规则进行处理,要么走openvswitch的规则进行处理,通过上面的复杂的图我们可以看到,br-int上面有很多openvswitch的规则,比如vlan tag等,所以iptables必须要另外建立一个linux bridge来做,因而有了qbr,在了解拓扑结构的时候,可以将qbr忽略,看成VM直接连接到br-int上就可以了。
虚拟器启动简析
虚拟机在创建的时候有一步是netwoking的状态,其实现的就是到neutron中申请一个port。
基于以上试验,我们可以想象其网络配置方式:
1,创建一个tap设备
2,创建qbr网桥
3,创建veth pair,qvo和qvb
4,将qvb添加到qbr上
5,将qvo添加到br-int上
6,基于这些网络设备启动虚拟机,实现网络的互通
7,通过dhcp分配虚拟机IP
参考文档:
http://www.cnblogs.com/popsuper1982/p/3800233.html
http://www.cnblogs.com/popsuper1982/p/3931783.html