Windows Server 2012 R2 中的 Hyper-V 可扩展交换机增强功能
本博文是“Windows Server 和 System Center 2012 R2 新增功能”系列博文(共 9 篇)之一,该系列是 Brad Anderson 的云端瞭望博客中的精选内容。今天的博文将介绍 Hyper-V 可扩展交换机增强功能以及它如何应用于“转型数据中心”这一更大的主题。若要阅读该博文并查看讨论的其他技术,请阅读今天的博文:“2012 R2 新增功能:IaaS 创新功能。”
Windows Server 2012 为虚拟化用户引入了两项重要功能;Hyper-V 网络虚拟化和 Hyper-V 可扩展交换机。这些功能是转型数据中心 – 网络中概述的 Microsoft 软件定义网络 (SDN) 策略的一部分。
Hyper-V 网络虚拟化 (HNV) 是一种封装技术,使数据中心能够使用可配置为在同一物理网络上具有多个隔离租户虚拟网络的平面网络结构。这允许服务提供商重新配置其网络基础结构,无需重新配置物理设备或线缆。
Hyper-V 虚拟交换机拥有大量已经添加的本机功能。这包括第三方扩展虚拟交换机的功能;即 Hyper-V 可扩展交换机。Hyper-V 可扩展交换机使软件合作伙伴能够提供增加的交换机功能,称为“插入虚拟交换机的扩展”。合作伙伴可以添加监控或过滤网络流量的扩展,以及取代交换机转发逻辑。通过密切合作,Cisco 交付了面向 Hyper-V 的 Nexus 1000V,它是一种使 Hyper-V 虚拟交换机适合 Cisco 虚拟交换机的转发扩展。
可用于 Windows Server 2012 的其他第三方扩展包括 NEC 的 OpenFlow 扩展、5Nine 的防火墙扩展以及 InMon 的流量监控扩展。随着合作伙伴为 Hyper-V 平台提供重要的增强功能,Microsoft 又能为他们多做些什么呢?有一件事是向扩展公开 HNV 结构和租户特定 IP 地址空间。如果扩展可以查看这两个地址空间,扩展便可更有效地监控 HNV 网络流量并对其做出更加明智的决策。
Windows Server 2012
Hyper-V 网络虚拟化通过虚拟化租户 IP 地址(我们称为“客户地址 (CA)”)提供多租户隔离。这些客户地址使用 NVGRE 封装在数据中心的平面网络结构提供程序地址 (PA) 中。HNV 的优势意味着多个租户可以在同一数据中心网络上安全存在,您可以将自己的 IP 引入云中,而且“任何服务、任何服务器、任何云”均可(例如,像跨子网实时迁移)。如果您要了解更多背景,请阅读 HNV 简介博文。
Windows Server 2012 中的 HNV 是在虚拟交换机下的网络筛选器中实现的。请参见图文块 1。对 HNV 流量起作用的所有扩展将只能看到客户地址空间,因为任何封装/解封装都是在流量到达虚拟交换机之前发生的。因此,扩展不了解流量是否针对物理/提供程序或客户地址空间。所有流量地址看起来都一样。
图文块 1 HNV 处理位于 Windows Server 2012 中的虚拟交换机下
Windows Server 2012 R2
Windows Server 2012 R2 中的目标是使第三方扩展能够了解 Hyper-V 网络虚拟化地址空间。通过进行两个关键更改可实现此目标。首先,将 HNV 模块移至虚拟交换机内部,以便扩展可以看到提供程序 (PA) 和虚拟 (CA) IP 地址空间。请参见图文块 2。这允许转发和其他类型的扩展利用这两个地址空间信息做出决策。
通过虚拟交换机的所有流量遍历入口路径(通过每个扩展入站)和出口路径(以相反顺序通过每个扩展出站)上的扩展。在入口和出口路径之间调用 HNV 模块,因此所有扩展均可在 NVGRE 封装/解封装前后看到流量。根据流量类型和方向,通过虚拟交换机的工作流不同。
非 HNV 流量从物理 NIC 或虚拟机向下流至入口并流出出口。没有 NVGRE 封装/解封装。
来自外部的 HNV 流量到达时处于封装状态,并通过数据包上的 PA 空间地址向下流至入口。HNV 模块会解封装 NVGRE 流量,其作为针对 CA 空间的流量向上流至出口。
来自主机或虚拟机的 HNV 流量通过 CA 空间地址向下流至入口路径。HNV 模块执行 NVGRE 封装,流量通过 PA 空间地址向上流至出口。
图文块 2 Windows Server 2012 R2 中的虚拟交换机中的 HNV 处理、混合转发和 Cisco Nexus 1000V 扩展
对 Hyper-V 可扩展交换机执行的第二项更改是实现混合转发。混合转发根据数据包类型将数据包指向不同的转发代理。在 Windows Server 2012 R2 实现中,HNV 模块转发 NVGRE 数据包。非 NVGRE 数据包通常由转发扩展转发。无论哪个代理执行转发计算,转发扩展都仍有机会将其他策略应用到数据包。如果没有转发扩展,Microsoft 转发逻辑会接管非 NVGRE 数据包。
Cisco Nexus 1000V 和混合转发
许多 Microsoft 客户使用 Cisco 网络设备并对 Cisco 的面向 Hyper-V 的 Nexus 1000V 感到十分兴奋和激动。同样,许多客户看到了在其环境中实现 HNV 的显著好处。因此,这只是假设 Microsoft 和 Cisco 继续就 Windows Server 2012 R2 密切合作,并确保 HNV 和 Nexus 1000V 可在同一交换机中同时使用。
让我们简单探讨一下 HNV 和 Nexus 1000V 转发扩展都处于虚拟交换机中时如何处理数据包。当数据包到达虚拟交换机时,其通过入口路径上的所有非转发扩展进行传递。然后,虚拟交换机检测该数据包是否为 HNV 数据包。如果数据包标识为 HNV,则将由 HNV 模块进行处理。HNV 模块将根据数据包目标位置是主机外部还是本地虚拟机来执行 NVGRE 封装或解封装。HNV 模块将计算数据包的目标表。然后,沿出口路径传递数据包,第一个扩展为 Nexus 1000V。由于这是 HNV 数据包,Nexus 1000V 不会尝试计算目标表。但是,Nexus 1000V 可以自由地将所有其他策略和安全筛选应用到该数据包。然后,数据包继续通过所有其他扩展沿出口路径向上。
如果数据包并非 HNV,该数据包会绕过 HNV 模块,被传递到入口路径上的 Nexus 1000V。Nexus 1000V 控制所有此类非 HNV 数据包的目标表计算。在出口上,数据包再次通过 Nexus 1000V 传递,以便它可以应用策略和安全筛选。然后,数据包继续通过所有其他扩展沿出口路径向上。
这里要注意的关键事项是转发取决于流量为 HNV 还是非 HNV。而且,无论哪个模块计算目标表,转发扩展都会在通过虚拟交换机的所有数据包上强制执行其策略和安全性。
如希望阅读本系列中的所有博文,请查看 Windows Server 和 System Center 2012 R2 新增功能存档。
Bob Combs,Windows 核心网络团队项目经理