服务器虚拟化 - 从感性上认识VXLAN(二)
任何技术的产生,都有其特定的时代背景与实际需求。自从云计算这个概念提出来以后,云计算凭借其系统利用率高,人力、管理成本低,灵活性和可扩展性强的方面已经表现出了优势。所以,越来越多的企业开始部署云桌面,云服务器了。而要部署云服务,就必须大量地部署虚拟机。简单来理解,云计算的基本技术模式就是虚拟化。
而服务器虚拟化的广泛部署,又极大增加了数据中心的计算密度。由于虚拟机是要基于物理设备上运行的,有时候虚拟机需要从一台物理设备迁移到另一台物理设备。虚拟机的迁移必须要满足这迁移前和迁移后的物理服务器在同一个网段,也就是同一个二层网络中。所以,为了让虚拟机能够在网络中不受限迁移,二层网络也必须做得足够大。但是有网络基础的人都知道,二层网络大了,不仅MAC地址的数量空前增加,而且二层环路带来的风险也会变大。于是,这又为数据中心网络带来了新的挑战:一个二层网络,必须支持上千台服务器和网络交换机稳定高效的运行。
Trill技术,只是一个基本的二层网络的基本技术,但是要解决MAC地址空间巨大、传统VLAN隔离能力有限的问题,VXLAN技术才应运而生。那么,VXLAN到底是什么东西?VXLAN和传统VLAN有什么联系和区别?VXLAN和SDN之间又有什么关系?我们在剩下的章节里面慢慢地说。
二、VXLAN报文的转发机制
在了解了VXLAN的基本概念以后,下面我们来进一步了解VXLAN的转发控制面板,并逐一解答这个VXLAN里面的一些较为实际的问题。
如果连接在不同VTEP上的虚拟机VM之间有大二层的互通需求,则这两个VTEP之间就需要建立VXLAN隧道:
2.1BD与VNI之间的关系
在传统网络中,“同一个二层域”就是同一个VLAN;而在大二层网络中,在同一个VXLAN中或者同一个VNI中,叫做在同一个BD(Bridge-Domain)内。
BD与VNI是一对一的映射关系,这种映射关系是通过在VTEP上配置命令指定,在华为CE系列交换机上的配置和查看方式如下:
要回答“如何确定报文属于哪个BD(或报文属于哪个VNI)”,就要先回答“哪些报文要进入VXLAN隧道”。因为VTEP只是交换机的一个角色,并不是所有报文都要进入VXLAN的。
还是和传统网络来对比吧。在传统的网络中,二层接口类型有Access、Trunk、Hybrid,虽然应用场景不同,但是它们是根据配置来检查哪些VLAN的数据能通过该接口,还能决定这个VLAN的数据帧是不是要带上VLAN TAG。
在VXLAN网络中, VTEP上的接口也承担着类似的任务,只不过在CE系列交换机中,这里的接口不是物理接口,而是一个叫做“二层子接口”的逻辑接口。类似的,二层子接口主要做两件事:一是根据配置来检查哪些报文需要进入VXLAN隧道;二是判断对检查通过的报文做怎样的处理。下面我们就来看下,二层子接口是如何完成这两件事的。除二层子接口外,还可以将VLAN作为业务接入点。将VLAN绑定到广播域BD后,加入该VLAN的接口即为VXLAN业务接入点,进入接口的报文由VXLAN隧道处理。
可以根据需要定义不同的流封装类型(类似于传统网络中不同的接口类型)。CE系列交换机目前支持三种不同的流封装类型,分别是dot1q、 untag、qinq和default。
配置二层子接口加入BD
实际上,VTEP上的10GE 1/0/1和10GE 1/0/2上配置成什么样的流封装类型,要看Access-SW1/2上与VTEP的互联接口配置的是什么接口类型。如果Access-SW1的10GE 1/0/1的配置是这样:
2.2手工方式建立VXLAN隧道
手工建立VXLAN隧道需要指定VXLAN隧道的源和目的IP地址分别为本端和对端VTEP的IP地址,配置命令如下:
2.3大二层域内同网段和不同网段通信
如图所示,VM-1和VM-2属于10.112.48.0/24网段,且都属于VNI 5000:
在这种场景下,可以参考传统网络环境。即源IP和目标IP都保持不变,而源MAC和目的MAC过一次网关就变一次。而在VXLAN网络中,虚拟VM的源IP和目标IP也是保持不变,但是要变的是VXLAN封装的外层IP和MAC在不同的VXLAN隧道是不同的。先看VNI 5000这一侧: