VXLAN技术入门
1.1 产生背景
服务器虚拟化后,数据中心内部VM的数量比原有的物理机发生了数量级的变化,与之对应的虚拟机虚拟网卡的MAC地址数量也相应的增加,这对原有的TOR交换机的地址容量能力产生了很大冲击。其次,大规模数据中心以及公有云的场景下,原有的数据中心用来划分虚拟网络的VLAN技术不再能够满足需求,因为现有VLAN只有4094个虚拟网络标识可用,远不能满足数据中心中租户隔离的需求 。另一方面,云数据中心中虚拟机可以进行一定范围的迁移,虚拟机迁移一个基本要求是需要保持IP和MAC地址不变,因此虚拟机只能在二层网络下迁移,如果虚拟机迁移的物理服务器和虚拟机不在同一个网络,则需要同步修改迁移目的物理网络的IP地址,广播域等配置,增加了网络配置的复杂性。
VXLAN(Virtual eXtensible Local Area Network,全称虚拟扩展局域网)这一标准就是在这种背景下应运而生的,VXLAN是一种进行大二层虚拟网络扩展的隧道封装技术,很好地解决了上述问题。目前这个技术在IETF已经是标准草案,并已经成为业界主流的虚拟网络技术之一。
1.2 技术简介
VXLAN是一种二层网络叠加三层网络的NVO3技术,主要的技术原理就是引入一种mac in udp格式的封装报文,UDP报文作为隧道承载层,而原有的二层数据报文内容作为隧道净荷来传输。由于外层采用了UDP作为传输手段,就可以让净荷数据轻而易举的在三层网络中传送。达到在三层网络上延伸二层网络的目的。
1.2.1 VXLAN报文的格式
如上,包括VXLAN外层封装和内层的原始净荷, 其中:
Flags (8 bits) 其中I必须被设置为1,才是有效的。R需设为0。
VXLAN Segment ID/VXLAN Network Identifier (VNI) –为24bit,是虚拟网络的标识。
Reserved fields (24 bits and 8 bits) – 必须被设置为0.
VXLAN外层隧道的目的端口号为4789,为专为VXLAN分配的端口号。
说明:VXLAN引入了一个VXLAN ID( VNI - VXLAN Network Identifier)来作为虚拟网络的标识,为24bits,与原有的VLAN 12bits长度相比,VXLAN ID长度增加了一倍,可以支持16M个虚拟网络。
1.2.2 VTEP
在VXLAN标准中,引入了一个VTEP(VXLAN Tunnel End Point)的逻辑体,来完成VXLAN报文的封装和解封装。VTEP与物理网络相连,分配有物理网络的IP地址,该地址与虚拟网络无关,VTEP可以软件或硬件实现,即位于VM所在的的Server中,也可以由独立的硬件设备实现。
1.2.3 VXLAN已知单播流量转发
1、TOR1收到来自终端H1的报文,根据报文接入的端口和VLAN信息获取对应的二层广播域,并判断报文的目的MAC是否为已知单播MAC,如果是已知单播报文,则走已知单播流程,否则走BUM报文转发流程。。
2、TOR1判断是已知单播的情况下,TOR1上VTEP根据查找到的VNI和远端VTEP地址进行VXLAN封装和报文转发。封装后的VXLAN报文通过TOR1和TOR2之间的IP网络进行转发。
3、TOR2上VTEP收到VXLAN报文后,根据UDP目的端口号、源/目的IP地址、VNI判断VXLAN报文的合法有效性。依据VNI获取对应的二层广播域,然后进行VXLAN解封装,获取内层二层报文。
4、TOR2根据内层二层报文的目的MAC,查MAC表找到的出接口和封装信息,为报文添加VLAN Tag,转发给对应的终端H3。
- 点赞
- 收藏
- 关注作者
评论(0)