基于openstack网络模式的vlan分析

所属分类: 网络 / 组网 阅读数: 1385
收藏 0 赞 0 分享

  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分析,希望能帮助大家,,谢谢阅读,希望能帮到大家,请继续关注脚本之家,我们会努力分享更多优秀的文章。

更多精彩内容其他人还在看

在SyGate代理服务器中设置黑白名单限制用户权限

这篇文章主要为大家介绍了通过设置黑白名单可以控制客户计算机对Internet的访问,用户既可以使用黑名单进行控制,也可以使用白名单进行控制,下面本文将详细描述具体步骤
收藏 0 赞 0 分享

WinRoute限制部分程序启动 全管理您的局域网络

为了提工作或者学习效率,可以再上班或者学习时间禁止一些聊天类的工具,这些要求利用WinRoute都可以轻松实现,下面脚本之家的小编来介绍一下WinRoute的使用方法
收藏 0 赞 0 分享

实现单个网卡连接两个网段互通的方法步骤

这篇文章主要为大家介绍了主机不在同一网段内,即使通过交换机或集线器连接了也无法相互通信。那么怎么实现单个网卡连接两个网段呢?下面脚本之家的小编将会详细介绍其实现方法步骤
收藏 0 赞 0 分享

怎么计算子网掩码和子网个数以及最大主机数?

要划分子网就需要计算子网掩码和分配相应的主机块,尽管采用二进制计算可以得出相应的结论,但如果采用十进制计算方法,计算起来更为简便。下面将详细介绍其计算规则
收藏 0 赞 0 分享

保证内网通信安全的九项技术措施

这篇文章主要为大家介绍了如何利用九项技术措施来保证内网通信安全。内网是网络应用中的一个主要组成部分,其安全性也受到越来越多的重视,要提高内网的安全,可以使用的方法很多,需要的朋友可以参考下
收藏 0 赞 0 分享

分享局域网内共用电视卡的方法

本文就介绍一种“共享”电视卡的简单方法只要在服务器(或普通电脑)上安装一块电视卡以及相应的软件,就可以实现把电视节目广播到整个网络,让局域网内的所有计算机都可以共享电视
收藏 0 赞 0 分享

Windows Vista局域网网络连接设置的六个步骤

VISTA在局域网上不了网怎么办?装了VISTA,需要正确设置DNS才能正常上网,脚本之家小编带您一起学习设置Vista局域网网络连接的6个步骤,需要的朋友可以参考下
收藏 0 赞 0 分享

财政局组件计算机网络系统建设的案例

这篇文章主要为大家介绍了以财政局办公大楼计算机网络系统建设为实例,讲述了计算机网络系统建设的大概思路,需要的朋友可以参考下
收藏 0 赞 0 分享

集线器的三个重要概念及其优缺点

集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。它被广泛应用到各种场合。什么是集线器?它有什么优缺点,需要的朋友可以参考下
收藏 0 赞 0 分享

如何实现Windows 98与Windows XP互相访问?

曾经遇到很多用户抱怨,在局域网内安装了Windows XP的电脑不能与安装了Windows 98的电脑互相访问,如何实现Windows 98与Windows XP互相访问?下面本文将用3个步骤解决此问题
收藏 0 赞 0 分享
查看更多