在前文中我们介绍了云数据中心发展中,引入的SDN的两个重要技术,即叠加网络(overlay)、SDN控制器,其中,叠加网路主要解决了多个逻辑上彼此分离的网络分区以及多种异构的虚拟网络可以在同一个共享网络基础设施上共存的问题;而SDN控制器则是定义了SDN系统中个层次之间的接口,理想化的SDN控制器应该是一个提供各种集成功能的软件系统集合。在SDN中还有一项技术,起到了关键性的改善现有vlan技术无法满足大二层的需求。这就是VxLAN技术。今天就来介绍下什么是Vxlan技术?
VxLAN(virtual extensible local area network,虚拟可扩展局域网)是一种网络虚拟化技术,目标在于改善现有VLAN技术在部署大规模云数据中心时遇到的扩展性问题。
该技术是由VMware、Cisco、Arista、Broadcom、Citrix共同提出的IETF草案,它把基于MAC的二层以太网帧封装到三层UDP分组中。通过这种MAC-in-UDP封装技术,VxLAN为虚拟机提供了与位置无关的二层抽象,使得位于不同数据中心的虚拟机通过大二层网络实现通信,虚拟机跨站点热迁移也更加便捷。和VLAN类似,VxLAN也是通过逻辑网络实现对多租户的彼此隔离,同时由于VxLAN采用24位标示符,它所标示的虚拟化空间数量可以到达1600万个,远超VLAN所标示的4 096个数量限制.
通常VxLAN的运作依赖于VTEP(VxLAN tunneling end point,VxLAN隧道终端)组件,该组件可以为终端系统提供二层以太网服务所需的所有功能。其工作原理大致为:
VTEP检查帧中的目标MAC地址,查找目标VTEP的IP地址。当一个虚拟机要与其他虚拟机通信时,通常会先发送一个广播ARP分组,VTEP会将其发送到对应的VNI多播组。其他所有VTEP从该分组中学习到发送方虚拟机的内层MAC地址和其VTEP的外层IP地址,目标虚拟机会给发送方返回一个单播消息来响应ARP,原有VTEP也可以由此学习到目标地址映射。
目前,业界各厂商对VTEP的实现方式主要分为3种类型:
第一种是在虚拟化软件hypervisor层中实现该功能,如VMware的解决方案就是在其ESXi内核中创建了VTEP组件,由于该种方式最接近虚拟化层,其效率是最高的;
第二种是在虚拟交换机中集成了VTEP功能,H3C所提供的解决方案就是这一类,该种方式的优点在于支持多虚拟化环境(vSphere、KVM、Xen、Hyper-V);
第三种是在硬件网络设备中新增VTEP功能,该种方式更适用于非虚拟化环境,华为、阿朗等传统网络设备厂商多采用这一类方法。
在此,需要提醒运维人员注意的一点是,由于VTEP对普通IP报文进行了再次封装,这将带来约50多个字节的额外开销,当现网运行的设备MTU值设置为1500 byte,而数据分组大小超过该值需进行分片处理时,将导致基于VxLAN封装的IP报文无法到达目的端。此时有两种解决方法,
一是将IP报文发送端的操作系统MTU值改为1 450 byte以下,
二是在IP报文沿途所有网络设备上开启jumbo frames相关功能,推荐采用第二种方法解决该问题,因为在骨干网的核心网络设备中通常默认开启了jumbo frames相关功能,运维人员仅需确认本端及对端接入层网络设备是否开启该功能。
以上是对Vxlan技术的介绍,加上其他其他几项重要技术,共同形成的一种SDN网络体系架构。从而在满足虚拟化和多租户的按需灵活组网需求时,特别是IaaS服务的基础设施构建时,SDN技术都是首选方案。