分享

overlay网络技术之VxLAN详解

 懒人葛优瘫 2019-04-24

 一、如何理解

overlay(又叫叠加网络、覆盖网络)简单理解就是把一个逻辑网络建立在一个实体网络之上。就好比C/S架构是overlay internet、最开始网络overlay 电话网络、现在语音通信overlay ip 网络。我们现在说的overlay是将二层数据包重新封装在UDP中。比如IPsec over GRE就是一种嵌入式封装。

Overlayvmware NSX主要运用的技术,已经被IETF收录。

二、overlay种类:

   网络overlay:主要针对物理服务器,物理交换机作为边缘设备。(物理交换机为VTEP节点)

   主机overlay:针对虚拟化,vSwitch作为网络边缘设备。(vSwitchVTEP节点)

   混合overlay:上面两种的结合。(软件VTEP和硬件VTEP之间需要标准协议互通)

三、现在主要的几个overlay技术:

VXLAN:由ciscovmware支持,L2 over UDP ,会增加50个字节的IP包头。

NVGRE:由微软支持,L2 over GRE ,会增加42字节的包头长度。(缺点是需要网络设备支持GRE

STT:由VMwareNicira)支持,L2 over TCP,会增加58+76字节。(需要修改TCP

四、VxLAN主要解决的问题:

1、服务器虚拟化技术,允许在物理机上运行多个MAC地址各不相同的虚拟机,随着数量的增加,交换机上的MAC地址表将剧烈膨胀,甚至需要MAC覆盖。
   2
、数据中心多以VLAN为虚拟机划分网络,但是VLAN数量受制于VLAN(802.1Q)协议4096,这远远满足不了现实的需求。
   3
、多租户环境的要求,其每个租户都有自己隔离的网络环境,导致物理网络中每个租户所分配的MAC地址和VLAN ID会存在重叠的可能。
   4
Spanning Tree Protocol (STP)算法会产生大量多路路径冗余。
   5
、支持远距离虚拟机迁移,避免处理复杂的L2 (VLAN)网络环境。
   6
ToR(Top of Rack) Switch链接着物理server,它记录着各个server/VM相连的MAC地址映射表。当地址映射表满时,ToR就会停止学习新的地址,这样就会导致网络泛洪,直到有记录过期被换出,腾出空闲表项。

五、VxLAN术语介绍:

VTEP:用于建立VxLAN隧道的端点设备成为VTEP,封装和解封装在VTEP节点上进行。

VTEPs:表示一个VXLAN网络内的所有VTEP

VNIVXLAN网络标识符,占用VXLAN报头的24

 

六、overlay转发机制介绍:

1、报文封装格式:

 

 

UDP端口使用目的4798

2、组播协议转播MAC地址:

VXLAN网络(表示一个VXLAN VNI,比如VLAN10VLAN20属于两个VLAN网络,这里一个VXLAN网络指比如VXALN10)和MAC地址表有绑定关系,VNIIP组播地址有映射。在一个VXLAN网络中,每个VTEP成员都需要知道自己下连所有终端的MAC地址,同时需要知道其他所有VTEP成员下所有终端的MAC地址表,其他终端MAC地址表是通过底层物理网络组播进行传播,一个VXLAN网络一个组播地址。由于VXLAN最多可以有16M个网络,这就意为着对传统网络的组播条目数不断增加有一定挑战。不过已经有一些网络厂商比如H3C,在SDN架构下有一个控制器,所有的VTEPMAC地址都转发给他,他再进行分发给需要的VTEP成员,所以在请求时只需要单播发送报文给控制器。

同样,VXLAN也有学习的功能,收到一个报文时,会检查自己有没有相关信息,如果没有就会记录源VNI、源外层VTEPIP、源内层MAC地址。

3VXLAN三层互通:

VXLAN网络下的终端和其他VXLAN进行通信或者和远端访问时,VXLAN网关会对VXLAN报文剥离,重新封装为传统的IP数据包送入网络。同样,当远端或者其他VXLAN成员访问本VXLAN成员时,VXLAN根据目的IP查找所属VXLAN和所属的VTEP。重新封装成VXLAN报文送入目的地。

4VXLAN二层互通:

在一些特定情况下,需要VXLAN网络和传统网络在同一个二层网络中时,VXLAN网络用二层网关和传统二层互通。当数据包到达VXLAN二层网关时,剥离VXLAN报文,重新打上目的网络对应的VLAN 802.1Q 标记后送入目的网络。反之,VXLAN通过VLAN编号获取VXLAN编号,再根据MAC地址确定目的VTEPIP。然后进行转发。

   注意:如果VTEP收到的来自VXLAN报文中带有VLAN ID的会给予丢弃,因为VLAN ID只是一个本地信息,转发了没有意义。所以连接VTEP的交换机端口需要设置成access模式,而不是TRUNK模式。

七、ARP请求流程:

     VM1——VTEP1——物理交换机——VTEP2——VM2

 

1VM1使用广播发送ARP请求查找VM2MAC地址。

2VTEP1收到VM1的广播后,查找自己的MAC地址表,如果下联终端没有将封装报文为VXLAN,内层VNI100,外层目的地址为VXLAN组播地址,外层源IPVTEP1地址。

3、通过多播组VTEP2接受到VTEP1的报文,解封装后。记录报文的内层VNI、外层源VTEP1IP、内层MAC地址。

4VTEP2通过广播将数据包广播到自己连接的终端下面。

5VM2接受到ARP请求后,做出回应。

6VTEP2接受到VM2的回应后,查找流表,发现需要发送给VTEP1,重新把数据包进行封装为VXLAN并以单播的形式发送给VTEP1.

7VTEP1收到回应后,记录内层VNI、外层源VTEP2IP、内层VM2MAC地址。

8VTEP1解封装后转发给VM1。至此VM1收到了VM2MAC地址。

八、数据传输流程:

    VM1——VTEP1——物理交换机——VTEP2——VM2

1VM1VM2发送了一个TCP报文。

2VTEP1收到报文后检查VM1VM2是否属于一个VNI,(如果不属于将转发给VXLAN网关)检查后属于一个VNI,需要转发给VTEP2

3VTEP1封装VXLAN报文以单播的形式发送给VTEP2

4VTEP2收到报文后解封装,查找流表。VM2是自己下联终端。

5VTEP2单播的形式发送给VM2,至此一个报文发送完毕。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多