基于openstack网络模式的vlan分析

作者&投稿:野彭 (若有异议请与网页底部的电邮联系)
~

OpenStack概念

OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。、

OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。

openstack neutron中定义了四种网络模式:

# tenant_network_type = local

# tenant_network_type = vlan

# Example: tenant_network_type = gre

# Example: tenant_network_type = vxlan

本文主要以vlan为例,并结合local来详细的分析下openstack的网络模式。

1. local模式

此模式主要用来做测试,只能做单节点的部署(all-in-one),这是因为此网络模式下流量并不能通过真实的物理网卡流出,即neutron的integration bridge并没有与真实的物理网卡做mapping,只能保证同一主机上的vm是连通的,具体参见RDO和neutron的配置文件。

(1)RDO配置文件(answer.conf)

主要看下面红色的配置项,默认为空。

复制代码

   

代码如下:

CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS

openswitch默认的网桥的映射到哪,即br-int映射到哪。 正式由于br-int没有映射到任何bridge或interface,所以只能br-int上的虚拟机之间是连通的。

复制代码

   

代码如下:

CONFIG_NEUTRON_OVS_BRIDGE_IFACES

流量最后从哪块物理网卡流出配置项

复制代码

   

代码如下:

# Type of network to allocate for tenant networks (eg. vlan, local,

   # gre)

   CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=local

   # A comma separated list of VLAN ranges for the Neutron openvswitch

   # plugin (eg. physnet1:1:4094,physnet2,physnet3:3000:3999)

   CONFIG_NEUTRON_OVS_VLAN_RANGES=

   # A comma separated list of bridge mappings for the Neutron

   # openvswitch plugin (eg. physnet1:br-eth1,physnet2:br-eth2,physnet3

   # :br-eth3)

   CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=

   # A comma separated list of colon-separated OVS bridge:interface

   # pairs. The interface will be added to the associated bridge.

   CONFIG_NEUTRON_OVS_BRIDGE_IFACES=

(2)neutron配置文件(/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini)

复制代码

   

代码如下:

[ovs]

   # (StrOpt) Type of network to allocate for tenant networks. The

   # default value 'local' is useful only for single-box testing and

   # provides no connectivity between hosts. You MUST either change this

   # to 'vlan' and configure network_vlan_ranges below or change this to

   # 'gre' or 'vxlan' and configure tunnel_id_ranges below in order for

   # tenant networks to provide connectivity between hosts. Set to 'none'

   # to disable creation of tenant networks.

   #

   tenant_network_type = local

RDO会根据answer.conf中local的配置将neutron中open vswitch配置文件中配置为local

2. vlan模式

大家对vlan可能比较熟悉,就不再赘述,直接看RDO和neutron的配置文件。

(1)RDO配置文件

复制代码

   

代码如下:

# Type of network to allocate for tenant networks (eg. vlan, local,

   # gre)

   CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=vlan //指定网络模式为vlan

   # A comma separated list of VLAN ranges for the Neutron openvswitch

   # plugin (eg. physnet1:1:4094,physnet2,physnet3:3000:3999)

   CONFIG_NEUTRON_OVS_VLAN_RANGES=physnet1:100:200 //设置vlan ID value为100~200

   # A comma separated list of bridge mappings for the Neutron

   # openvswitch plugin (eg. physnet1:br-eth1,physnet2:br-eth2,physnet3

   # :br-eth3)

   CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1 //设置将br-int映射到桥br-eth1(会自动创建phy-br-eth1和int-br-eth1来连接br-int和br-eth1)

   # A comma separated list of colon-separated OVS bridge:interface

   # pairs. The interface will be added to the associated bridge.

CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-eth1:eth1 //设置eth0桥接到br-eth1上,即最后的网络流量从eth1流出 (会自动执行ovs-vsctl add br-eth1 eth1)

此配置描述的网桥与网桥之间,网桥与网卡之间的映射和连接关系具体可结合 《图1 vlan模式下计算节点的网络设备拓扑结构图》和 《图2 vlan模式下网络节点的网络设备拓扑结构图 》来理解。

思考:很多同学可能会碰到一场景:物理机只有一块网卡,或有两块网卡但只有一块网卡连接有网线

此时,可以做如下配置

(2)单网卡:

CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth0 //设置将br-int映射到桥br-eth10

复制代码

   

代码如下:

# A comma separated list of colon-separated OVS bridge:interface

   # pairs. The interface will be added to the associated bridge

   CONFIG_NEUTRON_OVS_BRIDGE_IFACES= //配置为空

这个配置的含义是将br-int映射到br-eth0,但是br-eth0并没有与真正的物理网卡绑定,这就需要你事先在所有的计算节点(或网络节点)上事先创建好br-eth0桥,并将eth0添加到br-eth0上,然后在br-eth0上配置好ip,那么RDO在安装的时候,只要建立好br-int与br-eth0之间的连接,整个网络就通了。

此时如果网络节点也是单网卡的话,可能就不能使用float ip的功能了。

(3)双网卡,单网线

复制代码

   

代码如下:

CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1 //设置将br-int映射到桥br-eth1

   /pp# A comma separated list of colon-separated OVS bridge:interface

   /pp# pairs. The interface will be added to the associated bridge.

   /ppCONFIG_NEUTRON_OVS_BRIDGE_IFACES=eth1 //配置为空

还是默认都配置到eth1上,然后通过iptables将eth1的流量forward到eth0(没有试验过,不确定是否可行)

3. vlan网络模式详解

   图1 vlan模式下计算节点的网络设备拓扑结构图

首先来分析下vlan网络模式下,计算节点上虚拟网络设备的拓扑结构。

(1)qbrXXX 等设备

前面已经讲过,主要是因为不能再tap设备vnet0上配置network ACL rules而增加的

(2)qvbXXX/qvoXXX等设备

这是一对veth pair devices,用来连接bridge device和switch,从名字猜测下:q-quantum, v-veth, b-bridge, o-open vswitch(quantum年代的遗留)。

(3) int-br-eth1和phy-br-eth1

这也是一对veth pair devices,用来连接br-int和br-eth1, 另外,vlan ID的转化也是在这执行的,比如从int-br-eth1进来的packets,其vlan id=101会被转化成1,同理,从phy-br-eth1出去的packets,其vlan id会从1转化成101

(4)br-eth1和eth1

packets要想进入physical network最后还得到真正的物理网卡eth1,所以add eth1 to br-eth1上,整个链路才完全打通

   图2 vlan模式下网络节点的网络设备拓扑结构图

网络节点与计算节点相比,就是多了external network,L3 agent和dhcp agent。

(1)network namespace

每个L3 router对应一个private network,但是怎么保证每个private的ip address可以overlapping而又不相互影响呢,这就利用了linux kernel的network namespace

(2)qr-YYY和qg-VVV等设备 (q-quantum, r-router, g-gateway)

qr-YYY获得了一个internal的ip,qg-VVV是一个external的ip,通过iptables rules进行NAT映射。

思考:phy-br-ex和int-br-ex是干啥的?

坚持"所有packets必须经过物理的线路才能通"的思想,虽然 qr-YYY和qg-VVV之间建立的NAT的映射,归根到底还得通过一条物理链路,那么phy-br-ex和int-br-ex就建立了这条物理链路。




华为拥抱OpenStack、力推企业云
API proxy:通过API proxy实现OpenStack内部管理网络与外部网络的隔离,提升openStack服务的网络安全性。Backup:提供全系统的管理数据备份功能。包括OpenStack的所有管理数据的备份和FusionMananger管理数据的备份功能。除了在OpenStac外围做了产品化增强,华为还在OpenStack和KVM里面针对NFV做了功能增强,如资源...

用Docker之后还需要OpenStack吗
很多KVM和Docker的性能测试的对比跟OpenStack一点关系都没有,因为OpenStack只是一种框架。事实上这种性能测试(不管是KVM还是Docker)是跑在OpenStack下,这表明了KVM和Docker可以共存。当使用OpenStack去管理Docker情况下,Docker和OpenStack的争论是没有意义的。3,云平台提供一个完整管理数据中心的解决方...

毕业一年半,目前是外包公司做运维,工资一直不高,也没有自信跳槽,求助大 ...
分两种情况考虑。第一:如果你对运维感兴趣或者想继续做运维,那么我建议你继续做下去。运维的工作包括:保证服务器上各种服务的正常运行,以及排错,排错要会看日志,看多了也就会了。会搭建环境,最基础的有lnmp,lamp环境。学习新的技术,如docker,openstac,zabbix等等。部署各项服务。管理资源,比如账...

海勃湾区18464005790: openstack vlan需要交换机吗 -
凤屠鱼腥: 如果你openstack 网络使用了 vlan 模式 ,当然需要外部的物理交换机来支持 VLAN 的传输.

海勃湾区18464005790: OpenStack Neutron网络里使用VLAN,VXLAN和GRE要注意什么 -
凤屠鱼腥: external 出口用Vlan, 内网虚拟机可以用vxlan .gre 用的不多.

海勃湾区18464005790: VMware 与 OpenStack 如何最佳整合 -
凤屠鱼腥: OpenStack中国社区编者按:通过多年的发展,VMWare在虚拟化市场处于领军地位,很多企业部署了VMWare虚拟化方案,随着OpenStack云计算平台的快速崛起,很多企业都面临一个问题:能否、以及如何整合VMWare和OpenStack来最佳...

海勃湾区18464005790: 如何使用openstack实现nfv -
凤屠鱼腥: OpenStack 发布最新第10个版本 Juno,主要吸引人的功能包括,建立网络功能虚拟化(Network Functions Virtualization,NFV)平台功能初级版、Sahara套件也支持Hadoop和Spark来快速建置与管理大资料丛集.

海勃湾区18464005790: openstack openvswitch什么关系 -
凤屠鱼腥: OpenvSwitch是实现虚拟化网络的重要基础组件,在OpenStack中利用OpenvSwitch作为底层部件来完成虚拟网络提供和租户网络管理. 在部署和应用OpenStack的过程中,可能会碰到网络相关的一些问题,能够准确的理解OpenStack中OpenvSwitch的角色和网络的理念,会有助于解决问题和快速部署.OpenvSwitch可以认为是一种Linux Bridge的实现,只不过功能更多一些.因此,它完全可以替代Bridge.原先Bridge可以实现的功能在OpenvSwitch中都可以实现.

海勃湾区18464005790: VMware集成OpenStack仅仅是一个开发工具么 -
凤屠鱼腥: 在VMworld 2014,VMware宣布了集成OpenStack(VIO)测试版,VMware想要尝试为管理员提供一个方式,用他们熟悉的vSphere环境在基于OpenStack创建私有云.VMware指出他们计划发布OpenStack,然后加以强化,以确保OpenStack在交付...

海勃湾区18464005790: 如何快速上手搭建一个Open vSwitch测试网络 -
凤屠鱼腥: Linux系统和VMware虚拟机上工作的Open vSwitch Open vSwitch是一个开源的虚拟交换机,已经成为大多数基于Linux虚拟机的默认选项,如Xen和KVM. 因为Open vSwitch是KVM和Xen的默认虚拟交换机,所以你会发现其几乎都是使...

海勃湾区18464005790: openstack如何和hyper - v对接 -
凤屠鱼腥: openstack本身就是管理平台.可以管理各种类型的虚拟机.包括KVM,XEN,还有hyper-v的虚拟机.openstack目前代码中已经包含有hyper-v的驱动,支持对于hyper-v的管理.

海勃湾区18464005790: 好的,谢谢!那能采用openstack+hyper - v来构建私有云吗? -
凤屠鱼腥: 看起来都可行,同时看起来需要很多时间去配置的样子.另外,windows+hyper-v是可以作为OpenStack的计算节点的.

海勃湾区18464005790: openstack 怎样创建虚拟网络 -
凤屠鱼腥: (一)网络服务配置1、在compute node上面安装nova-network nova-api-metadata,在controller管理机上面安装nova-network服务compute node:# apt-get install nova-api-metadata controller : # apt-get install nova-network 2、编辑nova.conf定义...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网