前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VXLAN篇之初识

VXLAN篇之初识

作者头像
SDNLAB
发布2019-08-29 16:14:21
8430
发布2019-08-29 16:14:21
举报
文章被收录于专栏:SDNLABSDNLAB

作者简介:张磊,思科原厂8年多technical consulting engineer,精通思科数据中心/园区网产品及技术;精通SAN网络架构及产品;熟悉广域网产品及技术。

本文转载自公众号 “网技杂谈”

在如今的网络世界,如果你还不知道VXLAN那么你就真的是out了。。。不管是各个厂商,还是各个论坛,都会或多或少的有一些VXLAN的文章,谈主也赶个时髦整理一些以前学习过的VXLAN知识。Ok,第一篇开始~

一、什么是VXLAN

传统的802.1Q VLAN 标识符只有12 Bits,12 Bits表示最大可以有4096个唯一的二层网络分段。VXLAN扩展至了24 Bits,24 Bits表示最大可以有1600万个唯一的二层网络分段。

在虚拟化大量应用的今天,如果仍然使用802.1Q VLAN,那么VM 移动会被限制在本VLAN。使用VXLAN 封装,原始数据帧会被封装成MAC in UDP,这样,就允许二层网络连接跨越三层路由网络。

同时,保证VM迁移前后的IP地址、MAC地址不变。PS:本篇还讲不到,敬请期待后续~

二、VXLAN 帧格式

从上图可知,

1、除原始数据帧外,外层头部需要消耗额外Bytes(上图几个header相加即可)。PS:如果有需要,我们就需要修改交换机接口MTU以适应VXLAN数据包,看具体业务包大小。

2、UDP 源端口:VTEP设备动态分配的。通过内层头部的L2/L3/L4信息做Hash计算得出。

3、UDP目的端口:固定的使用4789。

4、Outer IP:IP首部的源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。

5、Outer MAC:以太帧首部的源MAC地址为源端VTEP的MAC地址,目的MAC地址为到达目的端VTEP的下一跳设备的MAC地址。

来,看一个真实的VXLAN封装的Ping包:

三、Underlay 和 Overlay

1、Underlay如下图:

Underlay:可路由的IP网络;灵活的拓扑;推荐使用具备冗余路径的网络,利用ECMP实现负载均衡;支持任何路由协议—-OSFP, EIGRP, IS-IS, BGP等;

2、Overlay如下图:

Overlay,简言之就是一个VTEP to VTEP的隧道。

四、什么是VTEP

顾名思义,VTEP (Vlan Tunnel EndPoint),即Vlan隧道终结点。VTEP用于VXLAN的封装、解封装。同时,每一个VTEP都用两个接口,一个是用于本地Lan网络桥接转发;另一个是一个IP接口,用于连接transit网络。

举个例子,当VLAN100数据包通过本地Lan接口发送至VTEP,首先会映射VXLAN ID 1001。在这之后,VTEP根据原始数据包的目的MAC地址和刚刚转换获得的VXLAN ID,在VTEP L2 Table中查找对应的Remote VTEP,如果能找到,就原始的Ethernet Frame封装成VXLAN数据包,再通过IP接口发送出去。对端VTEP的IP接口收到了VXLAN数据包,解封装获得原始的Ethernet Frame,再将VXLAN ID于VLAN ID做映射,加入VLAN 100的信息,最后数据包再通过本地Lan发送出去。这样,两个VTEP下的VLAN 100网络相当于是连通的。(注:虽然这里都是VLAN 100,但是实际上两个VTEP下对同一个VXLAN ID对应的VLAN ID可以不一样)原始的Ethernet Frame被封装成了一个MAC in UDP包,数据的传输变成了VTEP之间的传输,VTEP之间可以是二层网络,三层网络,甚至更复杂,但是这对VLAN 100是透明的。

五、Flood and Learn机制

1、终端A要请求终端B的ARP

2、该ARP包到达VTEP-1,VTEP-1对其进行封装:依次为VXLAN头,UDP头,外层IP头(源IP为VTEP-1,目的IP为Underlay组播组IP),外层MAC头(源MAC为VTEP-1,目的MAC为组播组MAC)。

3、该包被送至所有其他VTEP节点,这些VTEP节点收到后进行解封装,从而得到最原始的ARP request包。

4、紧接着,这些VTEP将ARP request发送至本地Lan网络。如果被请求的终端B不在本地Lan网络,则该包被本地终端设备丢弃(如VTEP-3所连接的终端设备);如果被请求的终端B在本地Lan网络,则终端B收到该ARP request并回应ARP reply至本地VTEP-2节点。

5、连接终端B的VTEP-2节点收到该ARP reply后,进行封装:依次为VXLAN头,UDP头,外层IP头(源IP为VTEP-2,目的IP为VTEP-1),外层MAC头(源MAC为VTEP-2,目的MAC为VTEP-1)。

6、VTEP-1收到该包后,进行解封装后,得到原始的ARP reply,将该ARP reply发送给终端A;同时,通过外层头信息,VTEP-1也学习到了VTEP-2的IP以及终端B的MAC,从而构建了VXLAN ID+Remote VTEP IP+Remote MAC的映射表。

7、基于VTEP-1和VTEP-2上的映射信息,以及利用VXLAN隧道,实现终端A和B的后续单播转发。

8、VTEP-1可以选择性地为IP-B的后续ARP请求执行代理ARP,以减少传输网络上的泛洪。

上边啰嗦的说了这么多Flood and Learn的过程,燃鹅,这种方式已经甚少被使用了,因为该机制有其自身的不可避免的缺点。当然,我们还是要感谢Flood and Learn,该机制为最早的VXLAN转发提供了可能。

那么,现在都是用的什么呢?—- BGP EV**

关于BGP EV**我们下篇再谈~先剧透一下EV** Types:

EV** Type 2:MAC/IP路由。通过Type-2路由将主机MAC/IP信息传递至远端VTEP。

EV** Type 3:Inclusive Multicast路由。该类路由在VXLAN控制平面中用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EV**的对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNI和VTEP IP地址信息。其中,【Originating Router IP Address】字段为本端VTEP IP。如果对端VTEP IP是三层路由可达,则建立一条VXLAN隧道。

EV** Type 5:IP prefix。有一种场景会用到Type-5,即Underlay与Overlay互通的场景。通过Type-5来传递IP前缀路由。当外部路由进入Border后,Border会通过Type-5类路由同步到VXLAN网络里面,从而实现VXLAN网络中的主机可以访问外部网络。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档