Neutron总结-OpenStack中的网络隔离 ----转载

前言

最近,关于xx公有云的用户网络,由于隔离问题引发安全讨论,大家顿时对啥“经典网络”、“VPC”等概念兴趣大增,大家的热议中多次提到AWS的VPC,亚马逊的AWS怎么搞的,我们不得而知,但是我们可以聊聊OpenStack的,毕竟它一直在模仿AWS嘛。

“隔离”啥

首先,我们先搞清楚,所谓“隔离”,到底是在“隔”什么。

我们知道,计算机网络,是分层实现的,不同协议工作在不同层,这些层的设计、制定都有国际标准,按着OSI的分层模型,共有七个层,大家在讨论的隔离,通常指的是第2层,也叫“数据链路层”。

数据链路层的网络包,也叫“帧”,我们常说的网卡的MAC地址,就是帧的地址,MAC,其实是“媒体访问控制”(media access control)的简称,这是数据链路层的一个子层。

那为什么要在这个二层上搞隔离呢?

因为二层的帧,其中一些帧的地址是广播地址,在同一个二层的设备都可以、也必须接收这些帧,交换机一般认为工作在二层,对这些广播包,也都要转发,所以二层通常被称为一个“广播域”,这就好比大家在一个教室里,都能互相看到,除非分隔到不同的教室。

OpenStack的玩法

openstack的neutron负责为虚拟机提供网络,而且openstack是假设多租户的,那多租户之间的隔离问题,它当然要提供支持,下面我们就看一下neutron是怎么实现的。

平坦网络

neutron中创建的网络是有“type”的,其中最基础的一种type就是“flat”,顾名思义,“平坦”就是指都在一个空间下,也就是没有做二层上的隔离,虚拟机都在同一个二层,同一个广播域。

从网上找了个示意图:

这种”平坦“的大二层网络,虽然实现、管理相对简单,但也会有诸多问题,除了安全方面,还有广播风暴等问题。

单个大二层网络,就好比整个学校的人都在一个大礼堂,大家都能看到,而且万一谁得了传染病,大家都被传染,要想隔离,可以把人分散到各个教室。

VLAN隔离网络

neutron中创建”vlan“这种类型的网络,就是主要使用的二层隔离方案,VLAN(虚拟局域网)本身就是交换机广泛使用的二层隔离技术。

示意图大概这样:

这就好比把整个学校的人,从大礼堂,分隔到了不同的教室,同一个教室的人互相可见,不同教室的人不可见。

但这种方案也有一定的局限性,首先管理相对麻烦,需要配合设置物理交换机,另外VLAN的可用数量有限制,VLAN的ID号仅有四千多个,我们假设每个租户分配1个VLAN,那最多也就能支持四千多个租户。

OverLay网络

overlay(覆盖)网络,所谓”覆盖“,大体上指”在一层上面覆盖另一层,也可以说是用一层载着另一层移动“,VXLAN是最常见的协议,它是把虚拟机的二层的帧,在宿主机上用UDP包裹起来,然后以宿主机的IP,必要的话,经过3层的路由,到达目的宿主机,然后再解封,把内包裹的二层帧,输送给目的虚拟机。

有点抽象?我们先看看VXLAN的包结构,就知道”包裹“是啥意思了:

那个”Inner Frame“就是被包裹的虚拟机的二层的包。

最终封装完的包,外层的源IP、目的IP地址,都是宿主机的,所以只要宿主机之间互通(3层可达),被封装的内层帧就可以被运输:

那这种方案有什么优点呢?

主要的:

  1. vxlan的范围足够大,一千六百多万,租户随便用
  2. 因为是完全隔离的,租户可以随意定义自己的网络,哪怕和其他租户的IP段重叠都没有关系,比如上图中,租户A的网络,与租户B的网络
  3. 如果通过一定技术实现支持3层路由器,租户可以将自己的网络,随意组织自己的网络拓扑,比如上图中,租户A的两个网络,连接到一个路由器(可以是虚拟的)上

关于上面提的第三点,在neutron中大概是这样的:

VPC

最后,那到底啥是VPC呢?

很明确的告诉你,上面这个图就是VPC!

VPC(virtual private cloud),不是个技术专有名词,而是亚马逊AWS创造的一个产品层面的名词。

租户网络彻底隔离、IP段都能重叠、路由器、网络拓扑都能由自己定义,这还不是”虚拟私有云“吗!

原文链接:https://addops.cn/post/network-isolation-in-openstack.html

原文地址:https://www.cnblogs.com/duweidong/p/8921909.html

时间: 2024-10-11 04:51:48

Neutron总结-OpenStack中的网络隔离 ----转载的相关文章

Neutron 理解 (1): Neutron 所实现的虚拟化网络 [How Netruon Virtualizes Network]

原文:http://www.cnblogs.com/sammyliu/p/4622563.html 学习 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

在OpenStack中绕过或停用security group (iptables)

眼下.OpenStack中默认採用了security group的方式.用系统的iptables来过滤进入vm的流量.这个本意是为了安全,可是往往给调试和开发带来一些困扰. 因此,暂时性的禁用它能够排除由于iptables规则错误问题带来的网络不通等情况. 在H版本号中,能够通过改动neutron plugin.ini中的firewall配置来禁用security group. 但在I版本号中.类似的操作仅仅会让vm出来的流量都无法通过安全网桥. 因此,在正常配置启用security group

讲清楚说明白openstack中vm流量走向之1——集中式网络节点

一.背景介绍 openstack被广大公有云厂商所采用,对于公有云场景来讲Newtron组件所提供的网络功能,一直是较难理解的部分,本文详细介绍在openstack集中网络节点架构下,vm的南北向与东西向流量实现. 二.网络节点功能 由于openstack默认部署模式下,计算节点通过ml2插件实现二层互通,所有三层流量都要经过网络节点,如下图所示: 图中同一tenant下有2个不同子网,vm1/2和vm3/4分别属于不同的subnet,通过上图可以看出不同子网之间通信,以及未绑定fip的vm与公

OpenStack实践系列⑤网络服务Neutron

3.8 Neturn 服务部署 注册neutron服务 [[email protected] ~]# source admin-openrc.sh [[email protected] ~]# openstack service create --name neutron --description "OpenStack Networking" network +-------------+----------------------------------+ | Field | Va

OpenStack neutron vlan 模式下的网络包流向

时间:2015-01-15 18:09:41 1.什么是Neutron? Neutron是OpenStack的network project ,是NaaS(networking-as-a-service)专题,负责网络虚拟化,开始于OpenStack的Folsom版,取名为Quantum,在Havana版本改名为Neutron.Neutron并非提供特定的网络功能,而是为了管理网络,提供网络服务,你可以使用不同厂商开发的插件,在同一个架构中可以同时拥有多种网络模式(vlan.gre.vxlan等

深入浅出Neutron :OpenStack网络技术

<深入浅出Neutron :OpenStack网络技术>一书今天上市了,有兴趣的童鞋可以购买啦,记得好评并大力推广哦  -:) http://search.jd.com/Search?keyword=%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BANeutron&enc=utf-8&wq=%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BANeutron&pvid=j83yzmgi.iuouof 版权声明:本文为博主原创文章,

OpenStack 网络总结之:openstack中网络的基本概念

原文:openstack-install-guide-yum-icehouse.pdf/7. Add a networking service/Networking concepts OpenStack的Neutron可以管理OpenStack环境中的虚拟 网络基础设施(VNI),和物理网络基础设施(PNI). OpenStack的Neutron允许租户创建虚拟网络拓扑结构,包含的服务例如防火墙,负载均衡和虚拟专用网络(VPN)等等. Neutron提供了对以下对象的抽象:网络,子网和路由器.

openstack中neutron

OpenStack Neutron 网络模型 OpenStack nova-network 独立成为单独的组件 Neutron 后,形象的网络模型的多平面网络.混合平面私有网络.如图 3,图 4,图 5,图 6. 图 3. 多平面网络 图 4. 混合平面私有网络 图 5. 通过私有网络实现运营商路由功能 图 6. 通过私有网络实现每个租户创建自己专属的网络区段

mysql中不同事务隔离级别下数据的显示效果--转载

事务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都不会执行.也就是说,事务内的语句要么全部执行,要么一句也不执行. 事务的特性:acid,也称为事务的四个测试(原子性,一致性,隔离性,持久性) automicity:原子性,事务所引起的数据库操作,要么都完成,要么都不执行 consisitency:一致性,事务执行前的总和和事务执行后的总和是不变的