openstack网络架构 nova-network + neutron

openstack网络架构(nova-network/neutron)

openstack网络体系中,网络技术没有创新,但用到的技术点非常庞杂,包括bridge、vlan、gre、vxlan、ovs、openflow、sdn、iptables等,当然这里不会做具体技术介绍,概述技术,主要将其与openstack的结合点做详细分析。

nova-network网络架构

在nova-network中,其网络模型包括flat、dhcp flat、vlan,用到的技术主要有bridge、vlan,

dhcp flat多网络节点架构图如下所示:

优点:结构简单,稳定

缺点:所有租户都在一个水平面上,租户之间没有隔离,由于所有租户都在一个子网内,当大规模部署后,其广播风暴将会是不小的负面因素,至于这种模型其vm的上限,笔者还没有条件测试。

vlan架构如下所示:

  • 为租户创建独占的bridge
  • 创建vlan接口vlan100,依据802.1q协议打vlanid
  • Dnsmasq监听网桥网关,负责fixedip的分配
  • switch port设定为chunk mode
  • eth0负责vm之间的数据通信,eth1负责外网访问

vlan模型:

优点:租户有隔离

缺点:需要物理交换机chunk口的支持,实际部署时比较复杂,vlan id个数为4094个,也就是最多4094个子网租户,不适用于公有云。

结论:相比于neutron网络,虽说没有neutron那么多的功能插件,仅有bridge,但是其稳定性已得到大多数用户的验证,对于小规模的私有云(1千台虚机的规模),nova-network是可以考虑的,目前线上部署的环境也是nova-network。

参考资料:

https://www.mirantis.com/blog/openstack-networking-flatmanager-and-flatdhcpmanager/

https://www.mirantis.com/blog/vlanmanager-network-flow-analysis/

https://www.mirantis.com/blog/openstack-networking-vlanmanager/

http://blog.csdn.net/hilyoo/article/details/7721401

http://blog.csdn.net/beginning1126/article/details/39371757

neutron网络架构

neutron网络体系相比于nova-network要复杂的多,用到的技术点也非常庞杂,在介绍网络架构之前,有必要概述下gre、vxlan、ovs、openflow、sdn技术点。

上面阐述过,vlan技术存在vlan id个数限制4094,公有云租户肯定不止4094,二层技术,只能部署在一个局域网内,无法实现跨机房部署。为了突破这俩个限制,增加了gre和vxlan隧道技术。

GRE:

跨机房部署:3层隧道技术,在原来小网ip头前面加入大网ip头和gre头,大网ip头里面的ip是公网ip;

segment id:而gre头里面最重要的字段应该是4字节key值(segment id),充当了vlan技术里面的vlan id,隔离租户的作用,由于是4个字节,已经不受4094 vlan id限制。下图是gre典型应用vpn。

当然gre也有其缺点,

  1. gre是点对点技术,每两个点之间都需要有一个隧道,对于4层的端口资源是一种浪费;
  2. 增加ip头,势必减少vm的mtu值,同样大小的数据,需要更多的ip包来传,传输效率有影响。

VXLAN:

针对vlan和gre的第一个缺点,业界提出了vxlan技术,下图分别是vxlan头结构和通信流程。

  1. 24bit的VNID:vxlan技术在原有mac帧基础上增加了新的mac头、ip头、vxlan header,在vxlan header中,VNID相当于vlan id,24bit,16M的大小,远大于4094.
  2. 大二层网络,实现跨机房部署:在通信两端增加了VTEP设备,可以硬件设备,也可以软件实现,当然在neutron网络中,其是由软件实现的。该设备记录vlan id、vm mac、vtep ip的对应关系,这个关系是由vm发起arp请求获取到的。在vxlan网络中有个组播地址,所有vtep设备都需要加入该组播地址,vtep将arp的广播请求增加组播ip头转变为组播请求,一旦一个vm发起arp请求,所有vtep都能收到,vtep在将组播ip头去掉,将原始广播包发给vm,这样不同vm之间将建立起arp表。vxlan网络为所有vm建立一个大2层网络。
  3. 能让遗留子网不改变 IP 地址的情况下无缝的迁移到云上来;也可以让虚机跨数据中心进行迁移(以前顶多只能在同一个 VLAN 里迁移)
  4. 关于跨机房vxlan互通:前述通过组播消息实现arp的传输,但是在广域网上,组播包传输是受限制的,目前业界通常的解决方案是通过SDN controller,SDN controller兼做arp代理,并获取vm内层mac和外层VTEP ip对应关系,不同controller之间交换这些信息。

结论:

  1. gre解决了vlan id个数限制和跨机房互通问题;
  2. vxlan解决了vlan id个数限制和跨机房互通问题,同时解决了gre点对点隧道个数过多问题,同时实现了大2层网络,可用于vm在机房之间的的无缝迁移。

参考资料:

http://blog.csdn.net/freezgw1985/article/details/16354897

http://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/white-paper-c11-729383.html

时间: 2024-07-28 18:44:09

openstack网络架构 nova-network + neutron的相关文章

深入理解openstack网络架构(1)

原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture 前言 openstack网络功能强大同时也相对更复杂.本系列文章通过Oracle OpenStack TechPreview介绍openstack的配置,通过各种场景和例子说明openstack各种不同的网络组件.本文的目的在于提供openstack网络架构的全景图并展示各个模块是如何一起协作的.这对openstack的初学者

深入理解openstack网络架构(4)-----连接到public network

原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 在上一篇文章中,我们介绍了openstack中的路由,了解到openstack如何通过namespace实现的router将两个network连通.本文中,我们进一步分析路由功能,说明实现内部internal network和public network的路由(而不仅仅是internal network之间).我们还会分析n

深入理解openstack网络架构(3)-----路由

原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture2 前文中,我们学习了openstack网络使用的几个基本网络组件,并通过一些简单的use case解释网络如何连通的.本文中,我们会通过一个稍微复杂(其实仍然相当基本)的use case(两个网络间路由)探索网络的设置. 路由使用的组件与连通内部网络相同,使用namespace创建一个隔离的container,允许subnet

openstack M版安装 network(neutron)服务篇

安装配置network(neutron) 服务 Mitaka版本网络有两个选择,Provider network 和Self-service network,这里我们选择第二种. controller 节点 一.创建数据库 [[email protected] ~]# mysql -u root -p >>CREATE DATABASE neutron; >>GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost'   I

深入理解openstack网络架构(2)----Basic Use Cases

原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture1 译文转自: http://blog.csdn.net/halcyonbaby/article/details/41578293 在上一篇文章中,我们了解了几个网络组件,如openvswitch/network namespace/Linux bridges/veth pairs.这篇文章中,我们将用3个简单的use case

OpenStack参考架构的搭建经验

在OpenStack官方11月26日提供的<安装指南>中提到有一个部署模型,大体如下图所示 (图1 OpenStack系统架构图) 图1表现的是每一个节点中所安装的主要组件以及网络接口信息.更精准的展示如图2所示.图中显示的"Internet"网络接口参考图2中对网络接口的解释. (图2 OpenStack网络架构图) 图2所示,红色属于管理网络,咖啡色属于虚拟机网络,青色是外部网络,蓝色是存储网络. OpenStack中各种网络的功能 管理网络一般是带有默认网关的可访问I

Neutron 理解 (9): OpenStack 是如何实现 Neutron 网络 和 Nova虚机 防火墙的 [How Nova Implements Security Group and How Neutron Implements Virtual Firewall]

学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GRE/VxLAN 虚拟网络 (4)Neutron OVS OpenFlow 流表 和 L2 Population (5)Neutron DHCP Agent (6)Neutron L3 Agent (7)Neutron LBaas (8)Neutron Security Group (9)Neutro

Openstack 网络服务Neutron [五]

Openstack 网络服务Neutron [五] openstack 时间:2016年11月28日 Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个neutron Openstack Networking 网络: 在实际的物理环境下,我们使用交换机或者集线器把多个计算机连接起来形成了网络.在Neutron的世界里,网络也是将多个不同的云主机连接起

OpenStack —— 网络服务Neutron(五)

一.Neutron介绍 OpenStack网络服务已由Quantum改名为Neutron.Neutron是OpenStack核心项目之一,提供云计算环境下的虚拟网络功能服务. Neutron的设计目标是实现"网络即服务(Networking as a Service)".为了达到这一目标,在设计上遵循了基于SDN(Software-Defined Networking)实现网络虚拟化的原则,在实现上充分利用了Linux系统上的各种网络相关的技术. Neutron网络允许用户创建和管理网