怎样深入理解openstack网络架构

  介绍

怎样深入理解openstack网络架构,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

前言

openstack网络功能强大同时也相对更复杂。本系列文章通过甲骨文openstack TechPreview介绍openstack的配置,通过各种场景和例子说明openstack各种不同的网络组件。本文的目的在于提供openstack网络架构的全景图并展示各个模块是如何一起协作的。这对openstack的初学者以及希望理解openstack网络原理的人会非常有帮助。首先,我们先讲解下一些基础并举例说明只,

根据最新的冰室版用户调查,基于open vswitch插件的中子在生产环境和POC环境都被广泛使用,所以在这个系列的文章中我们主要分析这种openstack网络的配置。当然,我们知道openstack网络支持很多种配置,尽管中子+ open vswitch是最常用的配置,但是我们从未说它是最好或者最高效的一种方式.Neutron + open vswitch仅仅是一个例子,对任何希望理解openstack网络的人是一个很好的切入点。即使你打算使用其他类型的网络配置比如使用不同的中子插件或者根本不使用中子,这篇文章对你理解openstack网络仍是一个很好的开始只,

我们在例子中使用的配置是甲骨文OpenStack技术预览所提供的一种配置。安装它非常简单,并且它是一个很好的参考。在这种配置中,我们在所有服务器上使用eth3作为虚拟机的网络,所有虚拟机流量使用这个网卡.Oracle OpenStack技术预览版使用VLAN进行L2隔离,进而提供租户和网络隔离,下图展示了我们如何进行配置和部署:,,

怎样深入理解openstack网络架构

第一篇文章会略长,我们将聚焦于openstack网络的一些基本概念。我们将讨论open vswitch,网络名称空间,linux桥,veth双等几个组件。注意这里不打算全面介绍这些组件,只是为了理解openstack网络架构。可以通过网络上的其他资源进一步了解这些组件。

open vswitch (ov)

在甲骨文openstack技术预览版中用于连接虚拟机和物理网口(如上例中的eth3),就像上边部署图所示.OVS包含的发生和港口、ov桥梁不同于与linux桥(使用brctl命令创建)。让我们先看下ov的结构,使用如下命令:

 #, ovs-vsctl 显示
  7 ec51567 - ab42 49 - e8 - 906 d - b854309c9edf
  ,,,Bridge  br-int
  ,,,,,,,Port  br-int
  ,,,,,,,,,,,Interface  br-int
  ,,,,,,,,,,,,,,,类型:内部
  ,,,,,,,Port “int-br-eth3"
  ,,,,,,,,,,,Interface “int-br-eth3"
  ,,,Bridge “br-eth3"
  ,,,,,,,Port “br-eth3"
  ,,,,,,,,,,,Interface “br-eth3"
  ,,,,,,,,,,,,,,,类型:内部
  ,,,,,,,Port “eth3"
  ,,,,,,,,,,,Interface “eth3"
  ,,,,,,,Port “phy-br-eth3"
  ,,,,,,,,,,,Interface “phy-br-eth3"
  ovs_version:“1.11.0" 

我们看到标准的部署在计算节点上的机汇,拥有两个网桥,每个有若干相关联的端口。上边的例子是在一个没有任何虚拟机的计算节点上。我们可以看到eth3连接到个叫br-eth3的网桥上,我们还看到两个叫phy-br-eth3“int-br-eth3"和的港口,事实上是一个veth一对,作为虚拟网线连接两个发生。我们会在后边讨论veth巴黎。

当我们创建一个虚拟机,br-int网桥上会创建一个端口,这个港口最终连接到虚拟机(我们会在后边讨论这个连接)。这里是启动一个虚拟机后的机汇结构:,,

 #, ovs-vsctl 节目
  efd98c87 dc62 - 422 d - 8 - f73 a68c2a14e73d
  ,,,Bridge  br-int
  ,,,,,,,Port “int-br-eth3"
  ,,,,,,,,,,,Interface “int-br-eth3"
  ,,,,,,,Port  br-int
  ,,,,,,,,,,,Interface  br-int
  ,,,,,,,,,,,,,,,类型:内部
  ,,,,,,,Port “qvocb64ea96-9f"
  ,,,,,,,,,,,标签:1
  ,,,,,,,,,,,Interface “qvocb64ea96-9f"
  ,,,Bridge “br-eth3"
  ,,,,,,,Port “phy-br-eth3"
  ,,,,,,,,,,,Interface “phy-br-eth3"
  ,,,,,,,Port “br-eth3"
  ,,,,,,,,,,,Interface “br-eth3"
  ,,,,,,,,,,,,,,,类型:内部
  ,,,,,,,Port “eth3"
  ,,,,,,,,,,,Interface “eth3"
  ovs_version:“1.11.0" 


  “br-int”网桥现在有了一个新的port" qvocb64ea96-9f"连接VM,并且被标记为vlan1。虚拟机的每个网卡都需要对应在“br-int”网桥上创建一个港口。

ov中另一个有用的命令是dump-flows,以下为例子:,

 #, ovs-ofctl  dump-flows  br-int
  NXST_FLOW  reply  (xid=0 x4):
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

怎样深入理解openstack网络架构