《新一代SDN——VMware NSX 网络原理与实践》——2.2 当前主流的Overlay隧道技术

2.2 当前主流的Overlay隧道技术

目前,市面上除了VMware外,Cisco和Microsoft等公司都能提供网络虚拟化解决方案。在介绍其网络虚拟化解决方案并进行对比之前,需要先讨论一下现在的网络虚拟化使用的Overlay技术分为哪几种。经各大厂商努力,已经有三种Overlay技术成形,即VXLAN、NVGRE、STT。

2.2.1 VXLAN技术
首先讨论VXLAN。VXLAN是Virtal Extensible LAN(虚拟可扩展局域网)的缩写。它是为了解决前文提到的数据中心的三个问题,由Cisco、VMware、Broadcom这几家行业内的巨头,外加快速窜红的新兴网络设备公司Arista Networks联合向IETF提出的。它能将通过OTV、TRILL、FabricPath等技术实现的二层网络扩展得更大。

VXLAN的核心技术理念是对现有标签技术进行彻底的改变,以优化VLAN的缺陷。其实Cisco之前提出的OTV协议已经使用了类似的技术——通过隧道机制,在使用了IS-IS协议的三层网络之上,叠加一个二层的虚拟网络,从而绕过VLAN标签的限制。而VXLAN则更进一步,它是将以太网报文封装在UDP传输层上的一种隧道转发模式。

VXLAN定义了一个名为VTEP(VXLAN Tunnel End Point,VXLAN隧道终结点)的实体。VTEP对数据包的封装可以在虚拟交换机上完成,也可以在物理交换机上完成。它会将数据在出服务器(主要是虚拟机,其实也可以是物理服务器)时封装到UDP中再发送到网络,在传输过程中这台服务器的MAC地址、IP地址、VLAN信息等,都不会再作为转发依据。如果VTEP功能直接集成到虚拟机的Hypervisor内,那么所有虚拟机流量在进入物理交换机之前,就可以在虚拟交换机所在的Hypervisor之上打上VXLAN标签和UDP包头,相当于在任意两点间建立了隧道。因此,VXLAN技术更适合虚拟化环境,且更应该把VTEP功能集成到服务器的虚拟交换系统内——如果VTEP在物理交换机上实现,那么物理交换机与虚拟交换机通信时,需要执行一次VXLAN-VLAN的转换,这样效率并不高。

由于虚拟机本身的VLAN信息对外已不可见,VXLAN添加了一个新的标签VNI(VXLAN Network Identifier,VXLAN标识符)。VNI取代VLAN用来标识VXLAN的网段,只有拥有相同的VNI,即在同一个VXLAN里的虚拟机才能实现二层通信,它类似于VLAN ID的作用。VNI是一个24比特的二进制标识符,把VLAN的4096(2的12次方)做了一个级数级别的扩展,达到了16777216(2的24次方)个网段,就目前超大规模数据中心而言,暂时是绰绰有余了。

新的UDP包头意味着VNI有新的帧结构。VTEP收到数据包时,会在这个数据包上增加4个部分,以形成新的帧头。如图2.7所示,这个新的帧头从内而外分别是VXLAN头部、UDP头部、外部三层IP头部、外部二层MAC头部。

VXLAN头部的作用是携带VTEP分配的VNI标识符。UDP头部是一个标准的UDP头部,包含了源目端口号,其中源端口号是VXLAN通过将原始以太网数据头部(MAC、IP、四层端口号等)进行哈希后得出的值,这样就能提供更好的负载均衡、更好的等价多路径;而目的端口尚未从IANA申请固定端口号。外部三层IP头部已不再是虚拟机的通信地址,而是隧道两端VTEP的通信地址——如果虚拟机的Hypervisor直接承担VTEP的工作,那么这个地址就是两台服务器的物理网卡IP地址。外部二层MAC头部与虚拟机原本自带的MAC地址已经没有任何关系了。

有了新的帧头,VTEP就可以依照VNI来决定流量走向,在整网的物理交换环境内完成数据转发。转发过程中,新的包头只有到达了目的地才会被对端的VTEP终结掉,这就意味着,VXLAN数据包在转发过程中保持了内部数据的完整性。这种数据转发机制叫做隧道机制——即链路两端有一对用于隧道封装的设备,类似IPSec VPN,其好处是可以减少对现网拓扑的改动,且方便网络在改动时实现快速收敛。

2.2.2 NVGRE技术
介绍完了VXLAN,再来讨论NVGRE。NVGRE是Network Virtualization using Generic Routing Encapsulation的缩写,是将以太网报文封装在GRE内的一种隧道转发模式,最初由Microsoft提出,并联合了Intel、HP、DELL等公司,向IETF提出。其实与VXLAN相比,它除了将MAC封装在GRE内(与VXLAN将MAC封装在UDP内不同)外,其他功能几乎完全相同。比如,NVGRE定义了一个类似VNI的TNI(Tenant Network Identifier),长度同样是24比特,同样可以扩展到16777216(2的24次方)个网段(NVGRE里面叫做租户)。

硬说两者有什么区别的话,就是VXLAN新的UDP头部中包含了对原始二层帧头的哈希结果,容易实现基于等价多路径的负载均衡,而GRE的头部实现负载均衡要困难些——很多网络设备不支持用GRE的Key来做负载均衡的哈希计算。

VXLAN和NVGRE技术有惊人的相似之处,或许两者都无法最终成为行业标准,只能在围绕着Cisco、VMware、Microsoft的战略联盟(Ecosystem)内部进行标准化。

2.2.3 STT技术
再来讨论另一种隧道技术STT(Stateless Transport Tunneling,无状态传输隧道),它是Nicira的私有协议。STT利用MAC over IP的机制,与VXLAN、NVGRE类似,把二层的帧封装在一个IP报文之上。STT协议很聪明地在STT头部前面增加了一个TCP头部,把自己伪装成一个TCP包。但和TCP协议不同的是,这只是一个伪装的TCP包,利用了TCP的数据封装形式,但改造了TCP的传输机制——数据传输不遵循TCP状态机,而是全新定义的无状态机制,将TCP各字段的意义重新定义,无需三次握手建立TCP连接,也没有用到TCP那些拥塞控制、丢包重传机制,因此STT被Nicira称为无状态TCP。STT技术除了用于隧道封装,还可以用于欺骗网卡——数据中心内部的TCP报文往往非常大,在发出去之前经常需要分片,但分片以前往往需要CPU处理,从而影响CPU性能,因此现在绝大多数服务器网卡支持报文分片,不由CPU来处理,也就减轻了CPU的负担。然而通过网卡进行分片只能针对TCP报文,通过VXLAN或者NVGRE协议封装的原始TCP报文到达网卡后,网卡认为它们不是TCP报文,就无法分片了,这就还是需要CPU来进行分片工作,也就增加了CPU负担,降低了服务器性能(最新推出的一些网卡声称可以对VXLAN进行分片,但其技术上不成熟)。而STT的头部是TCP格式,这样网卡就会认为它是TCP,从而对大包进行分片。但实际上它不是TCP,也无需三次握手,因此提高了CPU的效率。STT技术在Nicira被VMware收购前只能用于Nicira NVP平台之上,被收购后主要用在部署了多Hypervisor的NSX网络虚拟化环境,即NSX-MH架构中。

2.2.4 三种Overlay技术的对比和应用场景
介绍完三种Overlay隧道技术,我们将其做一个对比,如表2.2所示。

VMware的NSX-V网络虚拟化解决方案在Overlay层使用VXLAN技术,为虚拟网络提供服务——利用VMware的NSX环境中支持VXLAN的分布式逻辑交换机对数据包进行封装和解封装,从而实现网络虚拟化,而其中间的物理网络变得就不重要了。VXLAN甚至可以在多数据中心之间进行扩展,因为无论数据中心之间的运营商链路、路由协议多么复杂,只要打通了隧道,就可以看作一个简单的二层链路。VMware NSX利用这个技术,在三层网络之实现了大二层扩展和多租户环境。

其他物理硬件厂商近几年新推出的交换机,大多都支持VXLAN,可以由连接服务器的ToR交换机对VXLAN流量进行封装和解封装。当然这种解决方案不是基于主机的Overlay,也没有实现控制平面和转发平面的分离。

而STT作为先前的Nicira私有协议,在其被VMware收购后,主要运用在NSX-MH网络虚拟化架构中,是NSX-MH中的默认隧道协议。这是因为STT有其绝佳的优势——可以减轻服务器CPU的负担。当然NSX-MH同样也支持GRE和VXLAN。

而NVGRE目前已广泛用于以Microsoft Hyper-V搭建的虚拟化环境中,但主要应用在Azure公有云,而没有在企业级的虚拟化环境中广泛部署。它与VMware的Overlay方案非常类似——在Hyper-V的Hypervisor之上给数据包打上Tag(标签),封装进GRE隧道,到达目的Hypervisor时解封装。

未来Overlay技术究竟走向何方,这就要看几大IT巨头如何斗法了。这些巨头们身边都有战略合作伙伴,都打造了一个属于自己的生态圈。

2.2.5 下一代Overlay技术——Geneve
最后来介绍另一种未来会出现的Overlay技术。诚然,Overlay解决了一些问题,但其封装头格式固定,不利于修改和扩展——毕竟一些特殊应用的数据包需要在封装过程中添加一些额外的信息。比如在端口镜像的报文附加逻辑交换机目的端口信息,用于目的端口不能在隧道终点被可视化的情况;比如在报文附加逻辑交换机源端口信息或应用及服务的上下文,以指导隧道终端的转发决策或服务策略实施;比如标识Traceflow报文,用于抓包或整网健康状况的可视化。因此,VMware、Microsoft、Red Hat、Intel几家公司正在联合研发Geneve(Generic Network Virtualization Encapsulation)协议来解决这些问题。它的报文格式其实也使用了UDP进行封装,也有24比特的网段级别,但是它在报文中增加了一个可选字段(Option),允许虚拟化应用实现扩展。Geneve设想的报文如图2.8所示。

在将来,Geneve协议会非常适用于服务链的场景。例如,NSX可以创建一个服务的逻辑连接(如图2.9所示,它可以为VPN服务、防火墙服务、第三方服务之间的关系创建成一个逻辑关系),而这些逻辑链的节点之间需要传递元数据。有了Geneve协议,头部可以进行变更和扩展后,就可以指示报文的下一个链节点,并将报文分类(Classification)的结果传递到一个服务。

Geneve协议不仅支持将IPv4封装在UDP里,还支持IPv6。该研发项目已提交IETF。或许在不久的将来,我们就可以看到这种技术被标准化,并广泛用于数据中心内部。

时间: 2024-10-31 01:22:59

《新一代SDN——VMware NSX 网络原理与实践》——2.2 当前主流的Overlay隧道技术的相关文章

《新一代SDN——VMware NSX 网络原理与实践》——导读

**前言**当企业需要搭建一个"云"的时候,无论它是公有云还是私有云,其基础架构一定涉及网络.计算和存储这三大块.NIST对云计算的定义中,明确提出了云中资源需要实现"按需自助服务".对于计算和存储,我们通过最早由VMware主导的服务器虚拟化技术,已经很好地实现了这样的要求,而之前对于网络的"按需自助服务",则一直实现得不理想,这是因为传统物理网络很难在虚拟化环境中进行资源的调配.因此,传统网络阻碍了数据中心的自动化实现,我们需要通过创新,用一

《新一代SDN——VMware NSX 网络原理与实践》——1.2 认识SDN

1.2 认识SDN 介绍完为什么需要SDN和SDN的起源后,是时候介绍SDN到底是什么了.理解SDN架构,对于理解VMware NSX网络虚拟化解决方案的三个平面架构以及其逻辑网络.物理网络解耦的设计,是非常重要的--SDN的核心思想是控制平面与转发平面的分离,这与NSX中管理平面.控制平面和数据平面的设计如出一辙. SDN其实直到现在也没有清晰的定义,但是其核心理念已逐渐被人们接受.本章将下来会讨论SDN的理念.架构,以及它如何面对当前的IT难题. 1.2.1 SDN是什么 SDN是Softw

《新一代SDN——VMware NSX 网络原理与实践》——第1章 SDN与网络虚拟化的起源与现状 1.1SDN的起源和发展历程

第1章 SDN与网络虚拟化的起源与现状 SDN是一个内容丰富却又定义模糊的名词.说它内容丰富,是因为在当今云计算大行其道的情况下,SDN已成为实现云计算的一种重要方法,其技术已席卷了企业私有云和公有云服务提供商的数据中心方方面面.说它定义模糊,是因为SDN还不像其他计算机或网络技术被一些组织或企业进行了标准化定义,当人们谈到SDN时,可能还在讨论"SDN究竟是什么"这个问题. 网络虚拟化则是云计算和SDN发展到一定阶段的产物.服务器虚拟化技术的飞速发展间接催生了云计算的兴起.而在云计算

《新一代SDN——VMware NSX 网络原理与实践》——1.3 网络虚拟化的兴起

1.3 网络虚拟化的兴起 前文已经提到,网络虚拟化是云计算和SDN发展到一定阶段的产物,因此可以认为网络虚拟化是新一代的SDN.而云计算又是随着服务器虚拟化技术飞速发展而诞生的.因此,我们从介绍服务器虚拟化技术开始,引入网络虚拟化技术. 早期的网络虚拟化与现在的网络虚拟化在架构上有很多的不同,这会在本节中进行介绍,以使得读者在后续章节更好地理解VMware NSX网络虚拟化技术. 1.3.1 服务器虚拟化的日趋成熟近年来,服务器虚拟化技术被炒得火热,也日趋成熟.它是伴随着x86计算机性能飞速发展

《新一代SDN——VMware NSX 网络原理与实践》——第2章 NSX网络虚拟化概览 2.1VMware NSX网络虚拟化解决方案简介

第2章 NSX网络虚拟化概览 网络虚拟化技术诞生后,有不少厂商都推出了所谓的网络虚拟化解决方案.这些厂商实现"网络虚拟化"的方式各异,有些是自己研发的项目,有些是通过收购,有些是利用开源项目进行再开发.而VMware NSX网络虚拟化平台的基本架构到底是怎样的,它与别的厂家有哪些不同?这些问题会在本章进行探讨. 2.1 VMware NSX网络虚拟化解决方案简介 尽管VMware NSX网络虚拟化平台是通过收购Nicira而获得的,但是在收购一年多时间之后,NSX才正式发布.在这一年多

《新一代SDN——VMware NSX 网络原理与实践》——2.3 各厂商的网络虚拟化解决方案

2.3 各厂商的网络虚拟化解决方案 介绍完几种Overlay技术之后,我们就需要对比一下几大厂商基于Overlay技术的网络虚拟化解决方案了.各家厂商的解决方案各有千秋,各有利弊.在这里介绍它们的网络虚拟化解决方案,目的是让读者对整个行业的趋势有一个了解,也让读者了解VMware NSX网络虚拟化解决方案在行业中所处的地位. 2.3.1 Cisco ACI解决方案 Cisco ACI是Cisco公司提出的SDN和网络虚拟化解决方案,它的主要组件有应用策略基础设施控制器(APIC)和ACI交换矩阵

《新一代SDN——VMware NSX 网络原理与实践》——1.4 总结

1.4 总结 SDN是为了改变当前IT架构部署和运维的复杂性而提出的. SDN诞生于斯坦福大学实验室,课题组的核心人员后来成立了Nicira公司,该公司于2012年被VMware收购. SDN的核心思想是控制平面与转发(数据)平面的分离.SDN目前主流的南向接口控制协议是OpenFlow. 网络虚拟化是为了改变当前IT架构的复杂性和横向扩展能力而提出的,当前主要基于Overlay技术实现. 现今的网络虚拟化技术是SDN发展到一定阶段的产物,基于SDN架构的网络虚拟化解决方案,即新一代SDN可以在

《新一代SDN——VMware NSX 网络原理与实践》——2.5 总结

2.5 总结 NSX的核心设计思想与服务器虚拟化的设计思路如出一辙,都是在底层硬件中抽象出所需的服务 NSX分为管理.控制.数据三个平面,每个平面各有自己的组件. 目前,NSX-V中使用的Overlay技术是VXLAN,NSX-MH则使用STT作为默认的隧道技术.VMware正针对其现存问题与其他厂商共同研发新的Geneve协议. NSX.Cisco ACI.Microsoft的网络虚拟化解决方案各有千秋. NSX有4门相关的认证考试--VCA6-NV.VCP6-NV.VCIX6-NV.VCDX

VMware vSphere 网络设置最佳实践

正确的 网络配置是VMware vSphere架构的基础.为实现VMware网络,IT管理员需要了解vSphere宿主机的物理接口和虚拟交换机.学习如何规划vSphere的虚拟网络.VMware vSphere网络从正确安装vSphere网络的ESXi宿主机开始,包括对分布式.标准.虚拟或物理交换机的选择.最后还有后配置和部署.对虚拟网络的流量监控.配置虚拟网络的第一步是把vSphere的部署集成到现有架构.您需要确实了解现有架构的状态. 例如,如果网络采用了 iSCSI(Internet sm