接上篇,前面都谈及太多行情和空洞的标准,下面基本上完全参考微软资料,给出个人已经学习,工作已经使用了微软的网络虚拟化技术介绍。
四、微软的软件定义网络
在过去传统的IT中,网络由其物理拓扑结构,即服务器、交换机和路由器的连接方式定义。也就是说,一旦您完成网络建设建,之后进行任何变更都将过程复杂,麻烦臃肿。显然这类网络与无人值守数据中心或需要灵活支持不同工作负荷需求的云环境的理念背道而驰的。
微软软件定义网络的起源
众所周知,微软有有多年为 Bing、Hotmail 和 Windows Azure 等产品和服务运营大量数据中心的经验。这一经验让微软了解了数据中心网络设计中的几项重要原则:
1、自动化至关重要:微软发现绝大多数网络中断都是由于人为错误而导致的。因此,应以自动化的方式来配置并管理网络。
2、多租户环境要求确保网络的灵活性:在诸如 Windows Azure 等环境中,客户希望能够轻松处理其工作负荷。他们不希望为了迁移到云而变更 IP 地址或其他网络设置。即使多个租户在共享一个网络,云环境也需要能够为每个租户提供专有网络的体验。
3、集中控制可有效降低复杂度和提高可靠性:根据微软的经验,虚拟机的安置需由了解工作负荷需求、硬件容量和虚拟网络的中央管理实体推动。由于此中央管理实体负责终端主机策略的分发,因此,它也是负责协调支持虚拟机放置所需网络变更的最佳人选。这种控制方式可降低网络中策略不一致的可能性,减少SDN 策略广播的延迟,并简化配置和管理工作。
微软的软件定义网络的功能:
微软认为需要软件定义的网络 (SDN),网络环境可经由软件动态配置,适应不断变化的需求。能实现以下功能:
1、创建在物理网络之上运行的虚拟网络。
2、在数据中心控制内部流量。例如有些类型的流量可能需要被转发到一些特定的设备(或虚拟机)进行安全分析或监测,创建相应的策略来保证其所需的带宽或流量不超过一定上限。
3、创建可涵盖物理网络和虚拟网络的集成式策略。例如部署通用的安全配置文件,或者在物理交换机和虚拟交换机之间共享监测和计量基础结构。
五、微软的软件定义网络组成部分
微软的 SDN 方案由几个不同的功能组成。
1、Hyper-V 具有在共享物理网络上创建多租户虚拟网络的功能,因而可提供相当的网络灵活性。每个租户可获得一个完整的虚拟网络,其中包括多个虚拟子网和虚拟路由。
2、VMM 在Hyper-V 网络虚拟化自动化配置 SDN 策略的过程中的枢纽。在 VMM 中,您可以按需定义并即时创建租户虚拟网络。VMM 将负责分配虚拟机的工作负荷,并将必要的 SDN 策略应用至主机,以创建这些虚拟网络。通过一同应用虚拟机放置决策和 SDN 策略更新,VMM 可提供较高程度的自动化和集中控制,充分满足我们对数据中心体验的要求。
VMM可让客户将数据中心内每个 Hyper-V 主机上的各个虚拟交换机统一成一个分布式的逻辑交换机,由 SDN 流量控制策略动态编程控制。例如,您可为一组虚拟机定义一个配置文件来包括所需的安全和带宽控制策略,VMM会在虚拟机启动时自动为其所在虚拟网络的虚拟交换机应用相应的配置文件。当虚拟机在虚拟网络间迁移时,相应的配置文件将随之自动迁移。本质上来说,管理员仅需为数据中心定义单一的逻辑交换机,使用 VMM 来自动完成对所有主机/虚拟机策略的部署,以确保 SDN 策略的一致性,并实现上文中描述的集中式控制。
3、可扩展式交换机。在 Windows Server 2012中的Hyper-V 可扩展交换机可为微软的合作伙伴提供一个扩展 SDN 策略的平台。这一扩展性最常见的使用案例在于将虚拟交换机与其余物理网络基础结构的集成。例如 NEC 将 Hyper-V 交换机与 OpenFlow 控制器集成。NEC OpenFlow 控制器精准定义了从源虚拟机到目标虚拟机的流量路由方式应经由网络完成;NEC 解决方案与 Hyper-V 网络虚拟化充分兼容,Hyper-V 网络虚拟化定义了虚拟网络内的源虚拟机和目标虚拟机。NEC 解决方案可让用户轻松配置虚拟设备,例如负荷均衡器、侵入检测系统和网络监测解决方案。如下图一所示。
(图一:Hyper-V的网络可扩展)
六、微软的具体实现细节
在 Hyper-V 网络虚拟化中的每个虚拟网络适配器都与两个 IP 地址相关:
客户地址 (CA) 由客户基于其内部网络基础结构所指定的 IP 地址。通过这一地址,客户可与虚拟机交流网络流量,如同未移到一个公有或私有云中一般。CA 对虚拟机是可见的,并且可由客户访问。
供应商地址 (PA) 由主机或数据中心管理员基于其物理网络基础结构所指定的 IP 地址。PA 出现在网络上的数据包中,这些数据包可与托管虚拟机的 Hyper-V 服务器进行交换。PA 在物理网络上是可见的,但在虚拟机上不可见。
CA 维护着客户的网络拓扑,该网络拓扑经过虚拟化,可采用 PA 的实施方式,从实际的基础物理网络拓扑中脱离出来。下图二展示了因网络虚拟化而在虚拟机 CA 与网络基础设施 PA 之间所建立的概念关系。
(图二、通过物理基础结构实现网络虚拟化 )
在该图中,客户虚拟机在 CA 空间中发送数据包,并通过自身的虚拟网络或“隧道”遍布物理网络基础结构。在以上示例中,通道被想象成带有绿色发货标签(PA 地址)的蓝色和红色数据包的“封套”,从左边的源主机发送到右边的目标主机。关键在于主机如何确定与蓝色和红色 CA 相对应的“发货地址”(PA 地址)、“封套”如何套在数据包上、目标主机如何打开数据包并将数据包正确发送到蓝色和红色目标虚拟机上。
这一简单的类比突显出网络虚拟化的重要方面:
1、将每台虚拟机的 CA 映射到物理主机的 PA。
2、根据映射,将虚拟机在 CA 空间中发送的数据包放置在一个含有 PA 源和目标对的“封套”中。
3、CA-PA 映射必须允许主机为不同的客户虚拟机区分数据包。
因此,网络虚拟化机制旨在将虚拟机使用的网络地址虚拟化。下一部分将描述地址虚拟化的实际机制。
通过地址虚拟化实现网络虚拟化。Hyper-V 网络虚拟化支持以下两种机制来实现 IP 地址虚拟化:
1、Generic Routing Encapsulation
第一种网络虚拟化机制将 Generic Routing Encapsulation (NVGRE) 用作通道报头的一部分。这种地址虚拟化机制的模式是专为大多数部署 Hyper-V 网络虚拟化的数据中心而设计的。在 NVGRE 中,虚拟机的数据包被封装在另一个数据包中。如图 3 所示,新的数据包报头含有合适的源和目标 PA IP 地址,另外还有存储在 GRE 报头密钥字段中的虚拟子网 ID。
(图 3:网络虚拟化 �C IP 地址重写)
包含在 GRE 报头中的虚拟子网 ID 可让主机为任何指定的数据包确定客户虚拟机,尽管数据包上的 PA 和 CA 出现重叠。这可让同一台主机上的所有虚拟机分享一个 PA(如图 3 所示)。
共享 PA 对网络可扩展性产生很大的影响。网络基础设施必须知悉的 IP 和 MAC 地址数量得以大幅减少。例如,如果每台终端主机平均有 30 台虚拟机,网络基础设施需要知悉的 IP 和 MAC 地址数量将减少到三十分之一,数据包中嵌入式虚拟子网 ID 还能轻易地将数据包与实际客户联系起来。
使用 Windows Server 2012,Hyper-V 网络虚拟化完全支持即开即用的 NVGRE;不需要升级或购买新的网络硬件,如 NIC(网络适配器)、交换机或路由器。因为在线 NVGRE 包是 PA 空间中的常规 IP 包,可与当前的网络基础结构相兼容。
2、IP 重写
第二种由 Hyper-V 网络虚拟化支持的虚拟化机制是 IP 地址重写。在此模式下,当数据包离开终端主机时,将用对应的 PA 地址,对源和目标 CA IP 地址进行重写。同样,当虚拟子网数据包进入终端主机时,先使用适当的 CA 地址对 PA IP地址进行重写,再将 CA 地址传送到虚拟主机。图 4 展示了使用 IP 地址重写的虚拟机数据包。除数据包格式外,IP 重写与 NVGRE 之间的主要区别在于 IP 重写模式需要每台虚拟机拥有独特的 PA,以便将虚拟机与使用重叠 IP 地址的不同客户区分开来。因此,IP 重写需要每台虚拟机 CA IP 地址有一个 PA,而 NVGRE 仅要求每台主机有一个 PA。
(图 4:网络虚拟化 �C NVGRE 封装)
IP 重写主要用于特定的情况,即虚拟机在当前现有的硬件上的工作负荷会需要或消耗极高的宽带吞吐量(约为 10Gbps)。现有网络硬件减荷技术,比如大量传送减荷 (LSO) 以及虚拟机列队 (VMQ) 能如期在现有网络适配器上运作。这些减荷方法能为网络负荷高的情况提供极大的好处,尤其是在 10GbE 的环境下。同时,交换机上的多路径路由(如等价多路径 ECMP)可继续如期运作。
NVGRE 还是 IP 重写?
对于大多数 Hyper-V 网络虚拟化部署,推荐使用 NVGRE 虚拟化机制。NVGRE 与当前的数据中心网络硬盘设施兼容,并且随着人们意识到 NVGRE 可用于商业中,它将带来更多的益处。IP 重写主要用于特定的情况,即当前虚拟机需要 10Gbps 宽带,无法等到 NVGRE 感知硬件的出现。
好了,今天就到这,我们都好好学习实践去!