OpenStack Neutron网络里使用VLAN,VXLAN和GRE要注意什么
Neutron能提供虚拟的分布式(这样就可以实现跨物理机虚机在同一个vlan)二层vswitch(提供虚拟的network\subnet\port)、三层router、防火墙、负载均衡等抽象网络功能,能为每个租户提供独立的虚拟网络环境,neutron是用来创建虚拟网络的,所谓虚拟网络,就是虚拟机启动的时候会有一个虚拟网卡,虚拟网卡会连接到虚拟switch上,虚拟交换机连接到虚拟router上,虚拟路由器最终和物理网卡联通,从而虚拟网络和物理网络联通起来。
Neutron一般包括三种网络:
1、External Network/API Network,这个网络是链接外网的,无论是用户调用OpenStack的API,还是创建出来的虚拟机要访问外网,或者外网要ssh到虚拟机,都需要通过这个网络。
2、Data Network,数据网络,虚拟机之间的数据传输通过这个网络来进行,比如一个虚拟机要连接到另一个虚拟机,虚拟机要连接虚拟路由都是通过这个网络来进行
3、Management Network,管理网络,OpenStack各个模块之间的交互,连接数据库,连接Message Queue都是通过这个网络来进行。
Horizon上创建一个neutron网络的过程:
1、为这个Tenant创建一个private network,不同的private network是需要通过VLAN tagging进行隔离的,互相之间广播(broadcast)不能到达,这里我们我们用的是GRE模式,也需要一个类似VLANID的东西,称为Segment ID(当然也可以是FLAT模式,不用vlan)
2、为private network创建一个subnet,subnet才是真正配置IP网段的地方,对于私网,我们常常用192.168.0.0/24这个网段
3、为这个Tenant创建一个Router,才能够访问外网
4、将private network连接到Router上
5、创建一个External Network((就是我们上面设置的192.168.226.138,ens37))
6、创建一个External Network的Subnet,这个外网逻辑上代表了我们数据中心的物理网络,通过这个物理网络,我们可以访问外网。因而PUBLIC_GATEWAY应该设为数据中心里面的Gateway,PUBLCI_RANGE也应该和数据中心的物理网络的CIDR一致,否则连不通。之所以设置PUBLIC_START和PUBLIC_END,是因为在数据中心中,不可能所有的IP地址都给OpenStack使用,另外的可能搭建了VMware Vcenter,可能有物理机,所以仅仅分配一个区间给OpenStack来用。
7、将Router连接到External Network
更多信息可以参考《Linux就该这么学》
网络即服务似乎被认为是多余的(如果不是服务,服务供应商在卖什么?),同时也是定义不明确的,但我们不能忽视它的存在,因为它代表了网络的未来。网络即服务概念源自云计算,以及对OpenStack中虚拟网络的特定支持,Quantum界面描述了如何创建网络连接服务来支持云计算和存储服务的连接。网络即服务与物理网络之间的关系这里网络即服务是创建来支持应用的虚拟网络。与连接固定地点(例如总部)到分支机构、服务器到服务器以及服务器到存储等的传统网络相比,有明显的区别。如果NaaS是应用网络,一个重要问题是它如何关联到网络基础设施和网络服务。这个问题的答案是将NaaS从美好的想法转变成“真正的”NaaS的关键。如果说,网络即服务的根源在云计算,那么,第一个实用NaaS选择就是虚拟覆盖网络。网络软件供应商Nicira(2012年由VMWare收购)开发了完全基于软件的Nicira NVP虚拟网络架构,并可以通过云API来控制。虚拟覆盖网络是隧道(使用一个合适的隧道协议,包括GRE)和虚拟交换机的组合,它在物理网络设备(交换机和路由器)“之上”创建了一个网络。鉴于网络即服务是由软件来部署和控制的,因此,对于创造连接的实际网络设备和服务而言,这些应用网络基本上是透明的附加物。虚拟覆盖网络对真实服务和基础设施生成的连接进行细分,但不创建连接或者更改服务合同关系。对于想要动态应用网络控制,但不想要改变其站点连接方式、构建方式以及其网络服务合同的内容的用户,这是一个完美的方法。创建虚拟网段如果网络服务本身需要变得更加灵活和更受应用驱动,我们需要更多开发工作来实现这一点。虚拟覆盖网络不能创建真实服务是一个重要的局限性,因为很多人将网络即服务视为新的灵活的网络服务,而其实,NaaS的虚拟覆盖形式只能够细分真实网络/服务提供的连接。虚拟覆盖网络并不是创建控制连接的虚拟网段的唯一方式。在以太网网络中,VLAN和VxLAN等标准能够将真实基础设施分割成虚拟网络,并且,网络运营商也提供虚拟LAN和虚拟专用网络(VPN)服务。这里的虚拟网络并没有那么虚拟,因为它是由具有真实特性的真实设备创建的。这些特性必须通过管理应用程序接口(API)来调用,这既有利也有弊。创建指定设备的NaaS的最明显的缺点是控制软件/云控制设备。这可能需要软件/云以及网络管理系统(Quantum为这种定制化提供设备)之间的协作,这是可以实现的。重要的是需要确保指定设备的网络及服务包含应用网络中所有关键要素。应用虚拟网络通常需要DHCP服务用于地址分配,DNS用于地址解析,以及默认网关(路由器)来连接应用网络到用户。整合网络即服务与WAN服务虚拟网络覆盖和指定设备形式的NaaS都仍然需要结合一组静态的底层广域网(WAN)服务,因此,很多人认为,NaaS模式还不能实现完全的灵活性。 NaaS服务上的所有流量都必须在实际网络的容量范围内,包括WAN链接。一些人认为,虚拟网络覆盖形式的NaaS并没有与设备集成,使其更难以管理。 NMS工具只是将NaaS服务“视为”流量。实现NaaS的完全的灵活性意味着需要整合NaaS概念与WAN服务。如果说,NaaS最后还有一个问题,那就是从服务运营商订购NaaS,实现这一点并不容易。在技术层面,运营商可以为用户提供一个管理门户,让他们在LAN(VLAN、 VxLAN)或VPN水平来构建、修改和移除虚拟网络,但这种类型的动态机制会与长期形成的行业内定价惯例(基于流量情况、站点连接的数量以及合同期限)产生冲突。用户会接受更高价格的NaaS吗?还是运营商提供有吸引力价格,但并不承诺客户服务?对于这些问题,市场方面仍然有待商榷。然而,问题并不只是这些。如果虚拟网络“肆意发展”而不考虑其流量对“实际”网络的影响,虚拟网络覆盖和基于设备的NaaS将会给所有网络用户带来服务质量(QoS)问题。如果内部部门启动他们自己的应用网络时无意中订购了非常昂贵的东西,基于运营商的NaaS可能让企业产生巨大的费用。
一、VLAN介绍
VLAN,是英文Virtual Local Area Network的缩写,中文名为"虚拟局域网", VLAN是
一种将局域网(LAN)设备从逻辑上划分(注意,不是从物理上划分)成一个个网段(或者
说是更小的局域网LAN),从而实现虚拟工作组(单元)的数据交换技术。
VLAN这一新兴技术主要应用于交换机和路由器中,但目前主流应用还是在交换机之中
。不过不是所有交换机都具有此功能,只有三层以上交换机才具有此功能,这一点可以查
看相应交换机的说明书即可得知。
VLAN的好处主要有三个:
(1)端口的分隔。即便在同一个交换机上,处于不同VLAN的端口也是不能通信的。这
样一个物理的交换机可以当作多个逻辑的交换机使用。
(2)网络的安全。不同VLAN不能直接通信,杜绝了广播信息的不安全性。
(3)灵活的管理。更改用户所属的网络不必换端口和连线,只更改软件配置就可以了。
二、VXLAN介绍
什么是VXLAN
VXLAN全称Virtual eXtensible LAN,是一种覆盖网络技术或隧道技术。VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP/MAC作为outer-header进行封装,然后在物理IP网上传输,到达目的地后由隧道终结点解封并将数据发送给目标虚拟机。
为什么需要Vxlan
vlan的数量限制
4096个vlan远不能满足大规模云计算数据中心的需求
2. 物理网络基础设施的限制
基于IP子网的区域划分限制了需要二层网络连通性的应用负载的部署
3. TOR交换机MAC表耗尽
虚拟化以及东西向流量导致更多的MAC表项
4. 多租户场景
IP地址重叠?
什么是隧道技术
隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。
这里所说的隧道类似于点到点的连接,这种方式能够使来自许多信息源的网络业务在同一个基础设施中通过不同的隧道进行传输。隧道技术使用点对点通信协议代替了交换连接,通过路由网络来连接数据地址。隧道技术允许授权移动用户或已授权的用户在任何时间、任何地点访问企业网络。
通过隧道的建立,可实现:* 将数据流强制送到特定的地址* 隐藏私有的网络地址* 在IP网上传递非IP数据包* 提供数据安全支持
隧道技术好处
隧道协议有很多好处,例如在拨号网络中,用户大都接受ISP分配的动态IP地址,而企业网一般均采用防火墙、NAT等安全措施来保护自己的网络,企业员工通过ISP拨号上网时就不能穿过防火墙访问企业内部网资源。采用隧道协议后,企业拨号用户就可以得到企业内部网IP地址,通过对PPP帧进行封装,用户数据包可以穿过防火墙到达企业内部网。
隧道的应用
VPN具体实现是采用隧道技术,将企业网的数据封装在隧道中进行传输。隧道协议可分为第二层隧道协议PPTP、L2F、L2TP和第三层隧道协议GRE、IPsec。它们的本质区别在于用户的数据包是被封装在哪种数据包中在隧道中传输的。
三、GRE介绍
GRE特点
跨不同网络实现二次IP通信
2.L3上面包装L3
3.封装在IP报文中
4.点对点隧道
GRE好处
不用变更底层网络架构重建L2、L3通信
实现不同host之间网络guest 互通
方便guest 迁移
支持网络数量扩大
对于GRE遂道,缺点主要是
一是增加了GRE表头会导致本应由交换机硬件来分片的变成由软件来分片(STT技术可以弥补这一点);
二是GRE广播,且遂道将虚拟二层打通了,广播风暴更厉害。但对于虚机来说,因为虚拟交换机是完全能够知道虚机的IP和MAC地址的映射关系的,根本不需要通过ARP广播来根据IP找MAC地址,目前Neutron中有这类似的blueprint可以禁止广播。所以个人比较看好STT技术,因为目前openvswitch与linux kernel还未实现STT,所以Neutron目前没有STT插件(但有VXLAN和GRE插件)。
察恒小儿: 不一定,看你怎么使用了.如果使用的是nova network,neutron就不需要装了.如果是用的ovs + neutron的方式,那必须要装neutron的相关agent,不然咋工作呢.
静宁县13685458017: 通过学neutron能学会整个openstack吗 - ?
察恒小儿: neutron作为openstack的一个核心服务组件;深入学习的话,肯定要先学会一定OpenStack的知识,你要先了解OpenStack用来干嘛吧..由于OpenStack很大,在有一定基础后,一般都是深入研究1-2个项目的.如Neutron;所以看你所谓的学会是怎么说了,深入理解每个项目的话,肯定是要逐个去学.如果是了解搭建的话,可以学习OpenStack平台架构来掌握.
静宁县13685458017: 如何借助OpenStack命令行工具管理虚拟机 - ?
察恒小儿: 我在本教程中将演示如何从命令行,在OpenStack上创建或终止虚拟机.这个过程是在Havana版本的OpenStack中进行测试的.至于像OpenStack Folsom这些早期的OpenStack版本,你只要将本教程所用的命令行中的“neutron”换成“quantum”即可. 姑且假设部署的一套OpenStack系统已在某处构建并运行起来.我要使用OpenStack CLI客户程序,在现有的OpenStack系统上管理虚拟机.
静宁县13685458017: 怎样写 OpenStack Neutron 的 Plugin - ?
察恒小儿: 首先要介绍一下我的开发环境.我没有使用DevStack,而是直接在电脑上安装了三个Virtual Box,然后根据OpenStack的Ubuntu 安装指南部署了一个环境:一个控制节点,一个网络节点和一个计算节点.接下来我会直接在控制节点上修改 <your ...
静宁县13685458017: 哪个模块负责openstack中的网络 - ?
察恒小儿: neutron 项目.主要是openstack中网络的配置和管理.另外nova项目中也涉及一部分关于计算节点中网络的配置.
静宁县13685458017: 在openstack中,虚拟机迁移需要用到哪个组件?() - 上学吧?
察恒小儿: 1、默认设置要安装neutron,但是neutron是无法使用的 2、设置成功后默认会带一个public的net,就是172.16的那个 这个事完全没用的,把它删除掉就可以,因为这个是个开发外网的net,而外网net肯定不会是这个网段,留着它反而会出现问题 3、这里ne...
静宁县13685458017: 如何调试和修改OpenStack中的Horizon部分 - ?
察恒小儿: Openstack 有很多项目,比如 nova 是虚拟机管理,neutron 是虚拟网络管理, glance 是存储管理,而 horizon 是负责 Openstack 的统一界面.horizon 的源代码和 neutron 的不太一样,分布在两个地方,一个是/usr/lib/python2.7/dist-packages/...