OpenFlow能解决私有云网络VLAN问题么
本文转载自:http://network.51cto.com/art/201202/314310.htm
在关于私有云网络的文章中,我们首先探讨了物理网络是否影响私有云。本文我们将讨论如何通过软件定义网络控制面板整合虚拟和物理交换层。
私有云网络网络必须在灵活性和动态性上优于传统网络。实际上,私有云必须使用软件定义网络,建立一种服务与底层虚拟和物理基础架构相分离的网络,最终实现网络即服务(NaaS)。
然而,除了专有的实现技术,想要在使用多个供应商和多种虚拟机管理程序的私有云中实现NaaS/SDN,我们还需要解决很多问题。
私有云网络:管理覆盖虚拟和物理设备的VLAN
首先,私有云网络具有两个交换层:虚拟交换层和物理交换层。物理交换机是我们20多年来一直使用的以太网交换机。虚拟交换层是各种虚拟机管理程序的组件。大多数虚拟机管理程序架构都通过一个通用控制面板连接虚拟交换机,构成一个大型的分布式虚拟交换机。市面上现有的一些改进的虚拟交换机,以及仍在不断发展的开放系统虚拟交换机都是:OpenvSwitch。
虚拟和物理交换机仍然是两个不同的网络实体,它们必须一同实现私有云。大多数网络架构师使用VLAN连接这两种设备,但是这要求物理和虚拟交换机处于锁步状态。
一种可行的方法是,在配置数据中心的所有线路和端口上配置所有可能的VLAN。然而,这种万能方法可扩展性很差,而且具有非常大的配置错误风险,以及可能存在安全性和合规性问题。另一个方法是实现一种VLAN学习解决方案,动态管理虚拟和物理网络的VLAN,特别是在VM发生迁移的时候。有一些解决方案很好用,但是它们是私有的。边缘虚拟桥接(EVB)IEEE802.1qbg是一个正在开发的VLAN学习和映射标准。
NVGRE和VXLAN:支持3层协议VLAN
私有云网络VLAN必须使用大规模桥接技术,才能支持VM迁移和通信。这种方法可扩展性差,也不支持3层协议负载分发。为了解决这些VLAN问题,目前有两个得到多个供应商支持的协议可以使用:VXLAN(Virtual Extensible LAN)和NVGRE(Network Virtualization using Generic Routing Encapsulation)。VXLAN和NVGRE是IFTF草案协议,支持在IP层中封装MAC层流量。通过利用更高层协议,我们就能够在3层协议上分发负载,而VM仍然保留在2层网络上。这种技术非常不错,因为它打破了位置与身份之间的固有联系。这意味着,即使VM移动了另一个子网,它仍然能够保留原来的IP地址。这种方法可行,但是性能可能会受到一些影响。
VXLAN和NVGRE在私有云网络中应用的缺点
对于实现更为动态和更具可扩展性的私有云网络而言,VXLAN和NVGRE的出现是一个很大的进步,但是它们也不是完整的解决方案。它们是封装的协议,还不具备控制面板。相反,它们还依赖于其他的网络功能。例如,VXLAN依赖于与协议无关的多路广播(UDPPIM),而且建立VM之间的通信必须通过2层淹没和动态MAC地址学习实现。
而且,VXLAN和NVGRE还无法解决在核心网络扩展2层域所面对的基础问题:“网络长号”。即使两个VM位于同一个交换机上,流量仍然需要先转发到核心网络,然后到达目的地,感觉就像是乐器长号的管子一样。这就像是在使用学生火车优惠票一样,原先住在城市A,后来搬家到城市B,但是如果一定要享受优惠,您也只能先买到城市A的票,然后再去新家所在的城市B。这样的架构效率很低,而且无法扩展。最后,VXLAN是一个虚拟结构,无法连接到一些物理设备,如防火墙、负载均衡器等。
SDN能否解决私有云网络的VLAN问题?
除了VXLAN和NVGRE,我们还需要一个强大的控制面板,用于整合虚拟和物理交换机。在开放标准方面,最令人兴奋的是开放网络基金会(ONF)的OpenFlow项目。OpenFlow将控制应用程序(控制器)从底层数据程序(交换机)剥离。
OpenFlow将会采用一种全新方法,实现虚拟和物理交换机之间的数据包转发,从而不需要封装、标记和VLAN,但是仍然支持多租赁、VM移动和可扩展性。这将真正成为交付NaaS作为私有云一部分的SDN。
但是,关键词是“将来”,因为OpenFlow实现仍在变化中,而且进展不快。重点在于交换机供应商对SDN/NaaS和OpenFlow的支持。我们需要在私有云网络中抛弃VLAN。VXLAN和NVGRE是其中关键的部分,但是它们不是最终的解决方案。
OpenFlow能解决私有云网络VLAN问题么的更多相关文章
- openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】
网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...
- openstack私有云布署实践【12.1 网络Neutron-controller节点配置(科兴环境)】
网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...
- OpenStack(企业私有云)万里长征第六步——OpenStack网络及虚拟机存储位置
一.前言 昨天又装了一遍OpenStack.码农这项工作就如同人生,永远有你想不到的意外在等着你,时而是惊喜时而是悲伤.在装的过程中倒是很顺利,只是在安装完成之后碰到了两个之前没有碰到的问题,这里记录 ...
- OpenStack 企业私有云的若干需求(4):混合云支持 (Hybrid Cloud Support)
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(10):OpenStack 的前景和钱景
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(2):自动扩展(Auto-scaling) 支持
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(3):多租户和租户间隔离(multi-tenancy and isolation)
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(5):主流硬件支持、云快速交付 和 SLA 保证
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
随机推荐
- C#当中的多线程_任务并行库(下)
4.8 处理任务中的异常 下面这个例子讨论了任务当中抛出异常,以及任务异常的获取 class Program { static void Main(string[] a ...
- 查看alter错误,grep -A,-B,-C的妙用
alert 日志记录了数据库的很多重要信息,要养成时常检查alert日志的习惯,但如果日志很大vi打开翻来覆去找着麻烦,怎么做的可以查错呢? 看我的测试 [oracle@ahjcyl-db bdump ...
- C 语言 printf格式控制详解
闲来无事,整理了一下C语言printf() 的格式控制语句. PS:详细来源于网络. printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说 ...
- 将requirejs进行到底(2)
前一篇:JS模块化工具requirejs教程(一):初识requirejs 我们以非常简单的方式引入了requirejs,这一篇将讲述一下requirejs中的一些基本知识,包括API使用方式等. 基 ...
- List<Map<String, Object>>相关
2016年8月6日13:53:00 --------------------------- List<Map<String, Object>> List集合新增列 则需要: L ...
- Model Thinking1
Why Model Reason # 1: Intelligent Citizen of the World Reason # 2: Clearer Thinker Reason # 3: Under ...
- linux平台上面python调用c
不能免俗,先打印个helloworld出来,c代码的函数 hello.c #include <stdio.h> int helloworld() { printf("hello ...
- python第一次上机遇到的困难
正确 10 58 27412 2-1019 长度转换程序(10分) 完善下面的程序,能够: (1) 将用户输入的公制长度单位(米.千米)转换成英制长度单位(英寸.英里): (2) 将用户输入的英制 ...
- WPF ListView的使用及Linq to XML练习
环境:VS2010 控件:ListView 技术:Linq to XML:MVVM 源码:http://files.cnblogs.com/jumahe/Wpf_Customer.rar 布局描述: ...
- App Store内购
一.In App Purchase概览 Store Kit代表App和App Store之间进行通信.程序将从App Store接收那些你想要提供的产品的信息,并将它们显示出来供用户购买.当用户需要购 ...