软件定义网络 (SDN) 是一种网络方法,允许管理员通过抽象更低级功能来管理网络服务。SDN 将控制层面(用于确定流量发送到何处)与 数据层面(将流量转发到所选的目的地)分离。
本文将介绍如何组合 SDN 与云基础架构服务,以便优化 IaaS;我将重点介绍以下区域:
- 确保 IaaS 互操作性
- 充分利用 IaaS 云服务模型
- 通过 OpenStack Foundation 和 OpenDayLight 项目来满足用户、开发人员、提供商和维护人员的期望
- 提供富有成本效益的减轻风险的方式,以便优化 IaaS
IaaS 互操作性
网络管理员可以使用带网络功能虚拟化 (Network Functions Virtualization, NFV) 的 SDN 架构来实现 IaaS 互操作性的目标。NFV 架构概念要求使用虚拟化技术,将一整类网络节点功能虚拟化为构建块,然后,后者可以相互连接来创建通信服务。一种虚拟化的网络功能可能包含一个或多个虚拟机,它们可在云基础架构上运行不同的软件和流程。
SDN 架构在一个中央控制台中为管理员提供了从 IaaS 中的某个网络设备传输到另一个设备的流量的全局视图;在必要的时候,它还详细描述了在转移到兼容的 IaaS 之前应如何优化流量。
SDN 架构的核心是控制器,控制器是一个开源应用程序,用于将控制功能与专用网络设备的数据功能相分离。如果某个网络设备遇到大量的流量,那么管理员可以使用控制器告诉网络设备将这些流量包重定向或重新发送到何处。管理员可以根据需要添加 IaaS VM:例如将大量数据从性能低下的网络设备转移到更健康的网络设备。
NFV 将网络功能(比如网络地址转换 (NAT)、防火墙、入侵检测、域名服务 (DNS) 和缓存)与专用硬件设备相分离,以便这些功能可以运行软件中的控件。NFV 整合了必要的网络组件,以便为全面虚拟化的网络基础架构提供支持。
必须正确配置 SDN 和 NFV 控制器,才能优化网络流量,或者让管理员对其执行其他更改。不当的配置可能导致 IaaS 宕机或受到攻击。正确的配置可以通过 OpenStack 和 OpenDayLight 等开源工具来完成。
为了了解有多少网络专家喜欢商业提供商提供的适用于其 SDN 解决方案的开放源码,OpenDayLight 进行了一项调查……该报告调查了北美企业大中型组织中的 600 多位 IT 决策者和技术人员,其中 300 位来自企业,300 位来自服务提供商。该调查显示,95% 的网络专家希望其 SDN 解决方案是开放源码的,但其中 76% 的更喜欢来自商业提供商的开源解决方案。(“SDN、NFV 开源报告:运营商的视角。”)
通过选择来自商业提供商的开源解决方案,可以使用 SDN 和 NFV 控制器来优化 IaaS。
IaaS 云服务模型
为了更好地了解如何使用 SDN 执行 IaaS 优化,您需要了解 IaaS 云服务模型的主要角色在控制 IaaS 云上的对比情况。重要参与者包括:
- IaaS 云服务用户
- PaaS/IaaS 云服务开发人员
- IaaS 云服务提供商
- SDN 管理员
IaaS 云服务用户
我们看看 IaaS 云服务用户拥有的控制范围。这个分组包括 IaaS 用户和 SaaS 用户。
IaaS 用户(通常是网络或基础架构专家):
- 在虚拟机级别控制操作系统、网络设备和部署的应用程序。
- 基础架构专家可扩展或精减虚拟服务或存储区域块。
- 他或她也可以是使用控制器来优化设备间的流量的 SDN 管理员。
相较而言,SaaS 用户(无论他或她是个人、企业还是政府机构)拥有的控制权仅包括访问 SaaS 应用程序;SDN 管理员对流量的控制是对他或她透明的。SaaS 用户也可以是 SaaS 提供商,负责满足用户对访问控制、系统、响应时间(吞吐量)和查询响应的期望。
PaaS/IaaS 云服务开发人员
PaaS 和 IaaS 云服务开发人员拥有多少控制权?
PaaS 开发人员控制和保护一个完整业务生命周期中的所有应用程序。开发人员可以构建、部署和运行自定义仓库管理应用程序。作为业务生命周期的一部分,开发人员会使用电子表格、文字处理器、账单、薪资处理功能和发票。PaaS 开发人员需要确保应用程序在 SDN 管理员能够控制的网络中正常运行。
IaaS 开发人员控制一个 IaaS 公共或私有云的生命周期开发,这个云可以与不同服务提供商所托管的另一个 IaaS 云进行互操作。IaaS 开发人员需要确保 IaaS 基于 OpenStack。IaaS 开发人员与 PaaS 开发人员合作在测试环境中的 IaaS 或 PaaS 上运行 SaaS 应用程序。
IaaS 云服务提供商
最低限度上,IaaS 提供商控制虚拟机底层的传统计算资源的基础架构。提供商设置用户、资源和数据请求阈值水平,允许就阈值水平的更改与 PaaS 开发人员进行协商。提供商也可以是控制网络设备之间的流量的 SDN 管理员。
SDN 管理员
在 IaaS 云中,管理员能够控制与数据层面分离的 SDN 功能,以及与专用硬件设备分离的 NFV 功能。管理员需要与 IaaS 云服务模型的角色协作来优化开源 IaaS。
满足期望:OpenStack Foundation
潜在的和当前的云服务客户想要一种开放云服务标准,以便允许 IaaS 与另一个提供商托管的另一个 IaaS 进行互操作。OpenStack 会主动采取措施来满足他们的期望:OpenStack Foundation Project 允许开发人员和云计算技术人员协作,为 IaaS 公共和私有云生成开源云计算平台。
我们更详细地看看 OpenStack Foundation 有什么用,对 OpenStack 执行了哪些基础工作来标准化 IaaS。然后我将讨论模块架构组件、共享服务以及 Neuron 和 SDN。
Foundation 的工作
OpenStack 是一个 IaaS 云操作系统,可以控制整个数据中心中庞大的计算、存储和网络资源池,以及共享服务。所有这些都通过一个仪表板来管理,这使得管理员能够进行有效控制,同时使得用户和开发人员能够通过 Web 界面来配备资源。
OpenStack Foundation 负责监督 OpenStack 项目,该项目集成了来自 NASA 的 Nebula 平台的代码与 Rackspace 的平台。针对此项目的代码更改是由 2011 年从 Rackspace 分离出的 OpenStack Foundation 的成员贡献的。全球的开发人员和云计算技术人员协作为公共云和私有云生成了开源的云计算平台。
2012 年 4 月,IBM 和 Red Hat 同意作为高级成员加入 Foundation,这意味着它们在接下来的 3 年内每年都会捐赠 500,000 美元。其他计划作为高级成员加入的公司包括 AT&T、Canonical、HP、Nebula、Rackspace 和 SU SE。
模块化架构组件
作为标准化 IaaS 的工作的一部分,OpenStack 拥有一种包含 3 个组件的模块化架构。每个组件都有一个代号。
- 计算 (Nova):为自动配备的虚拟计算实例的大规模部署提供开源软件和标准。
- 对象存储 (Swift):为静态对象的大规模、冗余的存储提供开源软件和标准。
- 网络 (Neuron):在其他 OpenStack 服务(比如 Nova)管理的网络接口设备 (vNIC) 之间提供 “网络即服务”。
共享服务
OpenStack 拥有多个共享服务,涵盖计算、存储和网络 3 个分支。这些服务包括:
- Identity 跨所有 OpenStack 项目提供统一的身份验证
- Image 提供虚拟磁盘镜像的交付服务
- Telemetry 提供跨某个 OpenStack 云中部署的服务的聚合的使用和性能数据
- Orchestration 提供了一个模板驱动的引擎,允许应用程序开发人员描述并自动化基础架构的部署
- Dashboard 为 OpenStack 服务(包括 Nova 和 Swift)提供一个基于 Web 的用户界面。
它们都将 OpenStack 组件彼此集成。
Neuron 和 SDN
Neuron(网络服务的代号)可用于使用 SDN 优化 IaaS。通过利用 OpenFlow 等 SDN 技术,网络管理员可以实现较高的多租户水平,以及一个网络设备到另一个设备的大规模数据移动。(OpenFlow 是一个开源标准、通信协议,提供了对网络交换机或路由器的转发平面的网络访问,使得远程控制器可以通过交换机网络确定网络包的路径。)
用户可以创建自己的网络,控制流量,通过 SDN 技术将服务器和设备连接到一个或多个网络。
Neuron 有一个扩展框架,支持部署和管理其他网络服务,比如入侵检测系统 (IDS)、负载平衡、防火墙和虚拟专用网 (VPN)。
满足期望:OpenDayLight
使用 OpenFlow 标准的带 SDN 的 Neuron 还不够。更适合用来优化 IaaS 的是 OpenDayLight,一个 Linux Foundation 项目。OpenDayLight 是一个开源框架,它利用了 SDN 和 NFV 控制器,管理员可以将它与 OpenStack Neuron 结合使用,帮助用户采取主动措施来优化 IaaS。
我们会更详细地查看 OpenDayLight 有什么用,以及它是如何标准化 IaaS 的。
SDN 和 NFV 控制器包含在其自己的 Java™ 虚拟机 (JVM) 中。这意味着 OpenDayLight 不是仅适用于 Linux®;它是一个开放平台,为了在支持 Java 代码的任何硬件和操作系统上使用而设计。
OpenDayLight 由 18 个公司共同创立,这些公司包括 Cisco、Dell、Juniper、IBM 和 Intel;该项目现在已有 36 个成员。150 多位开发人员为 Hydrogen(OpenDayLight 的第一版)做出了积极贡献。
Hydrogen
Hydrogen 可供企业、服务提供商、设备提供商和学术机构使用。它在一个包中包含 3 个版本:
- 基础版 在笔记本电脑上运行,以便连接到某个提供了综合网络的测试工具。
- 虚拟化版 添加了数据中心虚拟化技术。它构建于基础版之上。
- 服务提供商版 可帮助服务提供商和运营商开发一个迁移到 SDN 和 NFV 及支持流量工程的计划。它拥有 SNMP 协议支持和 API 来管理遗留网络设备。
网络功能虚拟化
前面已经解释过,NFV 将网络功能与专用的硬件设备分离,所以这些功能都可以在软件中运行。NFV 旨在整合需要的网络组件,以便支持一个完全虚拟化的基础架构,包括虚拟服务器、存储,甚至其他网络。它利用在大容量服务和存储硬件上运行的标准 IT 虚拟化技术来虚拟化网络功能。
我们将查看如何将 NFV 用于 SDN。在 OpenDayLight 的总体视图上,SDN 分 3 层来描述。
- 网络应用程序和编制:最顶层包含控制和监视网络行为的业务和网络逻辑应用程序。它们包括对网络流量进行全局控制所需的编制应用程序。
- 控制器平台:中间层位于 SDN 的向北的接口与向南的接口之间。向北的接口为应用程序层提供了一组常见 API。它连接到向南的接口,实现了一个或多个协议(比如 OpenFlow)来控制网络内的物理硬件。
- 物理和虚拟网络设备:底层包括物理和虚拟设备、交换机、路由器等,它们组成了网络中所有端点之间的连接。
控制器风险减轻
SDN 存在一些漏洞(比如 SDN 控制器劫持),这些漏洞可能被攻击者利用。为了减轻控制器风险,您需要执行以下 4 步。
- 识别资产。
- 识别漏洞和威胁。
- 评估风险。
- 加固安全措施。
识别资产
在风险减轻流程中,首先要识别与控制器有关联的资产。确定这些资产应属于的类别;以下是一些示例:
- 硬件:网络设备和交换机,以及 SDN 管理员的控制台
- 安全形:加密机制、安全测试工具和防火墙
- 管理:OpenStack 和 OpenDayLight 指南
- 文档:SDN 管理员的联系点、培训手册、网络标准、灾难恢复计划和服务水平协议
识别漏洞和威胁
攻击者并不只是可以利用控制器漏洞的威胁方。另一种可能的威胁方包括 SDN 管理员,他们可能以不正确的方式配置了控制器(和防火墙)。
控制器和防火墙的不当配置可能导致 IaaS 宕机和受到攻击。如果没有从一个区域到另一个区域的 IaaS 故障转移机制,那么用户有可能会投靠其他 IaaS 托管服务提供商。
评估风险
用户希望确保具有连续的 IaaS 互操作性和可用性,而且更多流量的需求可通过 IaaS 优化来满足。评估 IaaS 不可用性风险的一种方式是定量评估。一些示例包括:
- IaaS 将变得无用的估计频率
- 由于不当的控制器配置而导致网络攻击的估计频率
- 未满足服务水平协议中规定的性能保证的估计频率
- 未成功故障转移到网络路由器和交换机的估计频率
加固安全措施
富有成本效益的安全措施是降低控制器风险的一种途径。SDN 管理员应确保:
- 控制器已正确配置并受到保护,至少要审核谁访问了它,加密流量并激活日志选项。
- 已部署了网络服务来阻止网络攻击。它们包含入侵检测系统 (IDS)、负载平衡器和防火墙。
- 已部署了故障转移机制来快速从不健康的网络路由器和交换机故障转移到健康的设备。
- SDN/NFV 管理员拥有适当的技能和指令来管理该系统。
结束语
在计划使用 SDN 优化 IaaS 的过程中,需要考虑解决 IaaS 互操作性问题和设置 IaaS 云服务模型的最佳实践。采取主动措施,将基于 OpenStack 的 IaaS 与 OpenDayLight 结合使用来优化 IaaS,这应该是计划的一部分。确保制定了控制器风险减轻计划。您需要构建一个 IaaS 云服务角色、经理、业务分析师和系统工程师团队,使得他们能够更轻松地执行使用 SDN 优化 IaaS 的作业。