pig2 发表于 2015-6-4 16:01:04

Neutron使用openvswitch网络通信的基本原理





声明:本博客欢迎转载,但请保留原作者信息!
作者:闵宏亮
团队:华为杭州OpenStack团队





Openstack在创建虚拟机进行网络配置的时候大致分为两个步骤:

1、Nova-compute通过调度在主机侧创建虚拟机,并且创建好linux bridge,是否创建linux网桥取决于是否把安全组的功能打开,创建好bridge和veth类型的点对点端口,连接bridge设备和br-int网桥。

2、Neutron-ovs-agent周期任务扫描到网桥上的端口发送rpc请求到neutron-server侧,获取端口的详细信息,进行网络配置,当然,不同类型的网络会进行不同的处理,OVS当前支持,vlan、vxlan、flat、gre类型的网络。


再来仔细看一下具体虚拟机的通信是怎样实现的:

也分为两种情况来看:
1、同板虚拟机
参考下图:



在报文入口方向打上vlan,在br-int网桥上进行二层的隔离,对neutron-ovs-agent来说,这个是一个内部vlan,因此,很显然,对于这个主机使用的network来说,在主机侧neutron-ovs-agent都会维护一个内部vlan,并且是一一对应的,用于不同network的虚拟机在板上的互相隔离,由于板内虚拟机通信不经过物理网口,因此,也不会受到网口带宽和物理交换机性能的影响。


2、跨板虚拟机:




这里以vlan类型网络举例,network的segment_id为100,即vlan为100,虚拟机出来的报文在进入br-int网桥上被打上内部的vlan,举例来说打上vlan 3,下行的流量在经过对应的网络平面后,vlan会进行对应的修改,通过ovs的flow table把vlan修改成真实的vlan值100;上行流量在br-int网桥上通过flow table把vlan 100修改成内部的vlan 3,flat网络原理类似,下行流量会在br-eth通过flow table strip_vlan送出网口,vxlan类型的网络稍有不同,不过原理也是类似。



wangarlove 发表于 2015-6-4 23:52:35

好东西

eason 发表于 2015-6-25 16:43:47

openstack网络有三种,管理网,数据传输网(tunnel),外网。在“基本典型组网图”中,eth0和eth1分别是什么作用。在虚拟机通信的图中,通信都是通过eth0传输的,是否楼主的意思是eth0是书传输网的网卡,eth1是外网网卡
页: [1]
查看完整版本: Neutron使用openvswitch网络通信的基本原理