基于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
</p><p># A comma separated list of colon-separated OVS bridge:interface
</p><p># pairs. The interface will be added to the associated bridge.
</p><p>CONFIG_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网络模式的vlan分析,希望能帮助大家,,谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。

(0)

相关推荐

  • 无线智能路由器的基本设置(网络名称(SSID).无线频道.网络模式)

    普通无线智能路由器用户,需要撑握无线智能路由器哪些基本设置方法呢?无线智能路由器最基本的设置不外乎无线网络的基本参数,如网络名称 (SSID)、无线频道、网络模式等。下面以JCG JHR-N825R无 ...

  • VMware虚拟机三种网络模式的区别

    提到VMware大家就想起了虚拟机技术,虚拟机技术在最近的几年中得到了广泛的发展,一些大型网络服务商都开始采用虚拟机技术,不仅节省了投资成本,更节约了能源的消耗。 我们知道VMware也分几种版本,普 ...

  • Win 7网络模式锁死问题

    不知道Windows 7用户有没有碰到这样的尴尬——在网络和共享中心里想改变当前网络连接的位置,但是却发现对应的位置连接是不可选的,因此就被锁死在了公用网络模式,而不能改成家庭网络或者办公网络。 其实 ...

  • Win7系统打不开steam提示无法链接至steam网络的多种原因分析及解决方法

    Steam平台目前是一款全球最大的综合性数字发行平台,玩家可以在该平台购买.下载.讨论.上传和分享游戏和软件.很多Win7专业版系统用户打开steam后出现steam-错误:并且提示“无法链接至ste ...

  • 华为手机设置网络模式的方法

    华为手机是一款为广大消费者所喜爱的手机品牌,它颜值高,性能高,是值得选购的手机.使用此手机时,不少小伙伴还不太熟悉有关的操作技巧,因此常常存在困惑.比如:很多用户不知道怎么设置网络模式,小编今天就来问 ...

  • 如何更改华为荣耀C7手机的首选网络模式

    今天小编来教大家如何更改华为荣耀C7手机的首选网络模式具体如下:1. 第一步,选择进入"设置".2. 第二步,选择"无线和网络"选项.3. 第三步,选择&quo ...

  • 如何在OPPO手机中切换网络模式(2G/3G/4G)?

    如今我们的手机可以切换到不同的网络模式,当我们的流量不够的时候就可以从4G切换到3G,那么具体应该如何操作呢?今天,小编就教大家在OPPO手机中切换网络模式(2G/3G/4G).具体如下:1. 首先, ...

  • 怎么将虚拟机中的网络模式设置为自定义

    当我们在使用虚拟机的时候,如果想要对其中的网络模式进行自定义设置的话,应如何操作呢?接下来就由小编来告诉大家.具体如下:1. 第一步,打开电脑中的VMware软件.2. 第二步,进入软件主页后,点击左 ...

  • 如何设置华为手机网络模式

    现在有很多人在使用华为手机,有些新用户不知道如何设置网络模式,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步根据下图箭头所指,找到并点击[设置]图标.2. 第二步进入[设置]页面 ...