随着网络技术的发展,云计算凭借其系统利用率高、人力/管理成本低以及灵活性/扩展性方面展现的优势,已经成为目前各大行业IT建设的新趋势。而服务器的虚拟化作为云计算的核心技术之一,也得到了越来越多的应用,从而极大的增加了数据中心的计算密度;同时,为了实现业务的灵活变更部署,虚拟机在二层网络中的无限制迁移需求越来越迫切。而传统的经典二、三层网络已无法完全满足这些需求。为解决云计算带来的挑战,VxLAN(Virtual extensible Local Area Network,虚拟扩展局域网)技术应运而生,下面就让我们来一探究竟,VxLAN的技术优势和技术原理。
服务器虚拟化技术越来越多的在数据中心当中普及应用,使我们数据中心的服务器利用率越来越高,业务、应用部署的灵活性和可扩展性越来越强。随之而来的,是大量经典网络疲于应对的挑战:容量、灵活性及扩展性等等。对于此类问题,VxLAN网络都具备合理可行的解决方案:
1. 容量问题:
a) VLAN容量:在经典网络中,二层网络隔离通常通过VLAN(虚拟局域网)完成,由于二层网络环境中的广播、组播及未知单播都会在VLAN内泛洪,故一个VLAN内不适宜放置大量主机,而二层网络中可用VLAN的数量为4096,无法满足虚拟化环境中的大量终端主机接入。而VxLAN网络以overlay的概念,提供了多达16M个VXLAN段,同时每个VXLAN段中又可包含4096个VLAN段,解决了VLAN容量问题;
b) MAC地址容量问题:在经典网络中,二层汇聚交换机及二层核心交换机的MAC地址容量极为有限,无法支撑大量虚拟机的接入需求。而在VxLAN网络中,由于其核心承载网为三层Overlay网络,大二层环境不再受限于CAM表的容量,解决了大量主机接入消耗二层核心网络资源的问题;
2. 灵活性问题:
a) 虚拟机迁移:出于业务连续性的要求,业务所在虚拟机的迁移需保证平滑,即要求在虚拟机迁移前后的IP地址及MAC地址等信息不发生变化。对于跨物理地域的大规模数据中心来说,因为二层生成树协议的收敛半径问题,完全无法实现经典网络的二层打通,三层隔离导致特定应用与特定数据中心、特定应用与特定接入场景的紧耦合。此类问题可以通过VxLAN技术来实现overlay的大二层打通,从而进一步完成服务器与接入交换机、汇聚交换机及接入数据中心的解耦合,增强服务器、虚拟机及业务的可迁移性;
3. 扩展性问题:
a) 二层网络扩展性:传统二层网络为了完成在引入冗余的情况下避免二层环路而引进了生成树技术,其特有的拥塞避免机制要求生成树半径不宜过大,同时二层设备物理距离不宜过远,极大限制了二层网络规模的扩展性。而VxLAN技术通过三层Overlay隧道技术,引入隧道水平分割防环机制,在Underlay路由网络基础上进行大二层扩展,可完成网络与网络设备物理位置的解耦合,满足大二层网络多地、多中心的建设需求;
4. 二层兼容性问题:
a) 在经典网络中,金融行业数据中心常常需要配置多个独立的二层网络环境。这些独立的二层网络环境各自拥有自己独立的冲突域、广播域,在这些二层环境中为了增加网络冗余性同时又能够避免环路,引入了生成树协议。而生成树协议对不同厂商间的网络设备提出了较高的兼容性挑战。而引入VxLAN技术作为数据中心互联网络,可以有效的在VxLAN三层underlay网络的基础上隔绝单数据中心内的生成树BPDU报文,将生成树限制在单数据中心范围。有效的限制了数据中心二层生成树规模,提高了生成树的收敛效率,同时解决了跨品牌网络交换机二层对接组网问题;
至此,我们了解到,VxLAN技术作为一项Overlay多层标签封装隧道技术,其主要的功能是以三层路由网络为underlay基础,建立大二层Overlay网络。实现同VxLAN扩展局域网内跨网段跨VLAN通信、降低核心二层网络CAM表资源占用、虚机灵活迁移及网络规模自由扩展等未来技术发展的网络核心问题。下面我们再来进一步了解VxLAN的基本原理和工作机制。
VxLAN:Virtualextensible Local Area Network,虚拟扩展局域网。IETF定义NVO3标准技术之一,采用MAC-in-UDP报文封装模式,通过将二层报文使用三层协议封装实现二层网络在三层范围内扩展,满足数据中心大二层虚拟机迁移和多租户需求;
VxLAN术语介绍:
a. NVE:NetworkVirtualization Edge,网络虚拟边缘,用于建立VxLAN隧道的网络设备;
b. VTEP:VxLANtunnel End Point,VxLAN隧道端点,指建立VxLAN隧道的NVE设备端点IP,可用于静态VxLAN配置及动态VxLAN配置;
c. VNI:VirtualNetwork Identifier,虚拟网络ID,一个VNI即一个VxLAN广播域,实现VxLAN广播域隔离,相当于VLAN中的VLAN ID;
d. BD:BridgeDomain,定义一个VxLAN广播域,可配合配置BDIF,实现跨VxLAN路由,一个BD唯一映射一个VNI;
Ø VxLAN报文格式:
VTEP对VM发送的原始以太帧(Original L2 Frame)进行以下“包装”:
1. VxLAN Header:8字节VxLAN头部,包含24bit VNI字段,定义VxLAN网络内不同的广播域。
2. UDP Header:VxLAN头部与原始数据帧作为UDP数据。UDP目的端口号为UDP-4789,源端口为原始以太网通过哈希计算后得到;
3. Outer IP Header:外层IP头部。其中源IP为源VTEP隧道端点IP。目标IP为目标VTEP隧道端点IP;
4. Outer MAC Header:外层二层帧头,源MAC及目标MAC与传统网络相似,每一跳路由后都会更换为当前广播域的两端路由节点MAC地址。
VxLAN网络中数据包的转发一般来说分为两大类,其中第一类为BUM报文转发,所谓BUM报文转发即为Broadcast/UnknowUnicast/Multicast等泛洪类报文;第二类为单播已知流量转发。下面分别就两类报文的转发流程做一介绍。
1. BUM报文转发:BUM报文转发目前在VxLAN中有两种方式可以实现:组播和头端复制。使用组播的情况下,需要VxLAN中underlay网络启用组播,运维较为繁琐,不推荐使用。故这里只介绍头端复制,其转发流程如图:
a. 主机A向主机B发出ARP请求,源MAC为主机A-MAC,目标MAC为全F广播MAC;
b. 该请求到达VTEP-1后,VTEP-1根据收到报文的二层子接口关联BD判断此报文传输对应的VxLAN隧道及VNI编号,此后VTEP-1会根据头端复制列表对报文进行复制及VxLAN封装并在相应的VxLAN隧道中进行传输;
c. ARP请求在VxLAN网络中依据底层underlay路由网络传输,源IP为VTEP-1端点IP,目标IP为VTEP-2端点IP;
d. 数据包经VxLAN网络传输后到达VTEP-2,VTEP-2对数据包进行解封装,得到原始ARP报文,VTEP-2记录主机A的MAC地址、VNI及对应远端VTEP的IP地址信息,并将ARP原始报文继续向后转发至主机B;
e. 主机B收到ARP request后响应此请求,并将ARP response回复至VTEP-2,VTEP-2根据d步骤中记录的主机A信息以单播形式进行恢复;
2. 已知单播流量转发:
a. 主机A向主机B发送数据,以主机B的MACB和IPB作为数据包的目标mac和ip. 主机A的MACA和IPA作为数据包的源mac和ip,封装完成后将报文发送到VTEP-1;
b. VTEP-1从自己维护的CAM表中寻址得到MACB下一跳转发目的,执行VxLAN封装。新增VxLAN头、UDP头、外层IP 及MAC包头。外层IP头部内源IP为VTEP-1端点IP ,外层IP头部内目标IP为VTEP-2的端点IP。外层源mac为VTEP-1的VNI隧道端点MAC, 由于在此拓扑中Router-1为下一跳,所以外层MAC的目标MAC为Router-1的underlay网络下一跳MAC;.
c. 数据包从VTEP-1发送出去后,外部网络的路由器会依据外层ip头进行路由转发,最后到达目的设备VTEP-2.
d. VTEP-2负责解封装数据包,依次去掉外层MAC头,外层IP头,UDP头和VxLAN头并将数据包最终发送至主机B。
以上是本次对于VxLAN技术的技术优势、基本技术及基本转发流程的初步介绍,Vxlan技术是目前最主流的网络Overlay技术,是物理网络向云和虚拟化深度延伸,实现云网融合的关键。将其真正的应用到我们的生产场景中还需要很多的技术积累,我们也将不断的以新技术来武装自己,不断的完善强壮我们的网络架构。