微信号:dellemc_tech

介绍:为戴尔易安信客户提供技术支持服务,为广大IT行业用户分享技术文章与行业信息。

网络虚拟化(四):VXLAN虚拟可扩展局域网(下)

2017-01-13 14:48 EMC中文技术社区

上篇文章《VXLAN虚拟可扩展局域网(上)》中介绍了VXLAN的优势、VMware环境中VXLAN的组件和应用案例,本文将分析VXLAN传输数据包、工作原理和案例解析。


VXLAN传输数据包

 

VXLAN虚拟可扩展局域网是一种overlay的网络技术,使用MAC in UDP的方法进行封装,在封装包中间添加了一层共50字节的VXLAN Header,然后以IP数据包的形式通过3层网络进行传输。位于VXLAN安全加密链路任何一端的虚拟机不知道这个封装包。同时,物理网络中的设备也不知道虚拟机的源或目的MAC或IP地址。VXLAN的封装结构如下图所示:



1. VXLAN Header:

共计8个字节,目前被使用的是Flags中的一个标识位和24bit的VXLAN Network Identifier,其余的部分没有定义,但是在使用的时候必须设置为0×0000。

 

2. 外层的UDP报头:

目的端口使用4789,但是可以根据需要进行修改。同时UDP的校验和必须设置成全0。

 

3. IP报文头:

目的IP地址可以是单播地址,也可以是多播地址。

单播情况下,目的IP地址是VXLAN Tunnel End Point(VTEP)的IP地址。

在多播情况下引入VXLAN管理层,利用VNI和IP多播组的映射来确定VTEPs。

 

从封装的结构上来看,VXLAN提供了将二层网络overlay在三层网络上的能力,VXLAN Header中的VNI有24个bit,数量远远大于4096,并且UDP的封装可以穿越三层网络,因此比的VLAN更好的可扩展性。

 

 

VXLAN协议网络工作原理

 

(1)、网络初始化

 

在VXLAN协议工作前需要进行网络初始化配置。网络初始化就是让虚拟网络中的主机加入到该VXLAN网络所关联的多播组。例如:VM1和VM2连接到VXLAN网络,那么二台VXLAN主机(ESXi1和ESXi2)就需要先加入IP多播组239.119.1.1。VXLAN的网络标识符(VNI)就是网络ID。

 


 

(2)、ARP查询

 

下图描述了VXLAN协议中二个连接到逻辑2层网络的虚拟机(VM1和VM2)ARP查询流程。

 

1.     VM1以广播形式发送ARP请求;

2.     VTEP1封装报文。本例中,VXLAN 100关联在IP多播组239.119.1.1中,VNI为100;

3.     VTEP1通过多播组将数据包发送给VTEP2;

4.     VTEP2接收到多播包。VTEP2将验证VXLAN网段ID,拆封数据包,然后将通过2层广播包的形式其转发到虚拟机VM2;

5.     VM2收到广播包后发送ARP响应。


注意:VTEP1只会在VTEP转发表中没有虚拟机MAC与该MAC地址的VTEP IP之间的映射时,才会生成多播包。在广播数据包时,如果MAC转发表中没有与帧目的MAC地址相匹配的条目,2层交换机会执行ARP查询操作。在发现虚拟机MAC地址与VTEP IP地址的映射条目并将其更新到转发表中后,任何与该特定虚拟机通信的请求都将通过点到点安全加密链路传输。

 

(3)、ARP应答

 

ARP应答处理流程类似于ARP请求,不同之处在于VM2将通过单播包进行ARP响应。因为VTEP2已经获得了VM1的MAC地址、IP地址以及VTEP1的信息。VTEP2将建立一个转发条目,以后交换数据包操作会使用该转发条目。

 



(4)、VXLAN网关

如果需要VXLAN网络和非VXLAN网络连接,必须使用VXLAN网关才能把VXLAN网络和外部网络进行连接。下图描述了VXLAN网关的工作原理:

 

1.     VM2通过网关MAC地址向网关发送数据包;

2.     VTEP2封装数据包,通过多播(第一次)发送给VTEP1;

3.     VTEP1拆封数据包,并发送到网关;

4.     网关将IP数据包路由到Internet。

 


 

案例(一)

 

当二台虚拟机在同一逻辑2层网络中时,如果二个虚拟机都在同一台vSphere主机上,那么数据包无需封装。如果二个虚拟机在不同vSphere主机上,一台vSphere主机上的源VTEP将虚拟机数据包封装到一个新UDP标头中,并通过外部IP网络将其发送到另一台vSphere主机上的目标VTEP。

 


案例(二)

 

图中显示了二个虚拟网络VXLAN-A和VXLAN-B。二个网络分别属于192.168.1.0/24网段和192.168.2.0/24网段,二个网络通过VXLAN网关进行连接。以下是可能情况:

 

(1)、当所有虚拟机和VXLAN网关位于同一vSphere主机上时。虚拟机将流量导向各自逻辑网络子网的网关IP地址,VXLAN会根据防火墙规则在二个不同接口之间进行路由。

(2)、当所有虚拟机不在同一台vSphere主机上,而VXLAN网关部署在其中一台vSphere主机时。虚拟机的流量将被封装到数据包,然后进过物理网络传送到VXLAN网关,之后将由网关将数据包路由到正确的目标。

(3)、当所有虚拟机和VXLAN网关不在同一台vSphere时。数据包传输将类似于情况2。




其它参考文章:

【存储入门必读】存储基础知识



更多精彩内容,请点击阅读原文”进行查看!

如何每天都能收到如此精彩的文章?

①点击右上角点击查看官方账号”→点击关注

②长按并识别下图中的二维码,直接访问EMC中文支持论坛


 
戴尔易安信技术支持 更多文章 这部看哭无数人的电影让小编想到一个词——Unity 老板让我干完这个月就辞职 特大号这篇文章让万千售前沸腾啦 VxRail打好基础,未来6000个VDI也毫不惧怕 三位20多年的IT老兵在聊存储,干货多,速来!
猜您喜欢 一篇文章了解什么是增长黑客 ENode框架Conference案例分析系列之 - 事件溯源如何处理重构问题 留守儿童不要孤独:ThoughtWorks1001创想行动 向父亲解释自己的工作,为什么这么难 9月9日腾讯云开放战略发布会即将开启