前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >局域网SDN技术硬核内幕 12 云网CP的日常恩爱——硬件VXLAN转发平面

局域网SDN技术硬核内幕 12 云网CP的日常恩爱——硬件VXLAN转发平面

作者头像
用户8289326
发布2022-07-27 10:30:00
6130
发布2022-07-27 10:30:00
举报
文章被收录于专栏:帅云霓的技术小屋

在大家的祝福之下,云和网络经历了红娘撮合(EVPN信令平面)、领证(层次化端口绑定),终于要过上幸福的小日子了——也就是业务转发。

我们知道,交换机作为VXLAN网关的硬件VXLAN,和前面我们提到的OVS作为VXLAN网关的软件VXLAN,转发平面的差异主要就是让交换机专用硬件(ASIC)接管了OVS进行VXLAN的处理,从而大大提升网络转发平面工作效率。

让我们看一看,交换机专用硬件具体是如何处理虚拟化网络数据转发的呢?

首先,让我们看最简单的情况——同一个OVS下的二层转发。

如图,由于VM100和VM200在同一个网段,都连接在OVS上,OVS可以直接转发两个VM之间的数据通信。在有了DPDK的条件下,这种二层转发效率还是比较高的,不需要在VM和宿主机之间进行数据拷贝。

那么,如果VM100和VM200属于不同的网段呢?

如图,VM 100和VM 200分别在VLAN 100和VLAN 200内,它们的默认网关分别是VLAN 100和VLAN 200的VLAN Interface IP地址。

OVS会将来自VM 100的数据包打上VLAN Tag,发送到硬件交换机,硬件交换机的VLAN Interface收到这个数据包,做三层跨VLAN转发,送回到OVS。OVS剥离VLAN Tag后,将数据包发送到VM 200。

大家发现,这和园区网中的跨VLAN三层转发工作原理完全相同,并不涉及VXLAN。

什么情况会涉及VXLAN呢?

让我们回忆一下,硬件VXLAN与软件VXLAN实现的最大区别是——

对了,是硬件交换机作为VXLAN网关(VTEP),也就是说,只有跨TOR交换机的数据转发,才会涉及VXLAN!

我们先看看跨TOR交换机的虚拟机二层互通——

哈哈,这个图是不是很复杂?那好吧,让我们细细分解——

首先,来自VM的数据包,在VLAN 100中,被OVS打上了VLAN 100的VLAN TAG。TOR交换机收到这个数据包以后,首先,会按照目的MAC地址查找转发表。

由于这个数据包是跨交换机转发的,显然,目的MAC在VXLAN隧道的另一端。交换机的MAC表项中,出方向接口是VXLAN的VSI接口,又叫Tunnel口。交换机会对所有从VXLAN Tunnel口发送的数据包进行VXLAN封装。

VXLAN封装用的外层源IP和目的IP是哪里来的呢?源IP很好理解,是VSI接口自身的IP地址,而目的IP用对端VTEP的IP地址就行了。

由于同一个网段的虚拟机,有可能位于多个VTEP下面,所以,理论上如果有n个VTEP,那么,每个VTEP上会有n-1个属于该网段(VXLAN ID)的VXLAN隧道。怎么样确定这个数据包应当被送到哪个VXLAN隧道呢?

我们回想一下EVPN一节中学到的内容。对端的VM上线的时候,VTEP可以获取到它的IP地址和MAC地址,并通过EVPN通告给网络中其他VTEP,其他VTEP收到相关信息以后,就会建立相关的MAC表项,将这个MAC地址的出接口,指向去往它所在的VTEP的隧道。

当目的VM所在的VTEP收到VXLAN数据包之后,它也会查找VXLAN隧道内部的MAC地址,发现它的出方向接口之后,会转换为对应的VLAN,并发送到宿主机,由OVS负责将数据包送到VM。我们管剥离VXLAN数据包头后的出方向接口,叫做VXLAN AC(Attach Circult)口。

是不是很神奇?

别急,我们还有更神奇的。

对于跨网段跨VTEP的转发,也就是VXLAN三层路由,实现方式是什么样的呢?

如图,我们回忆一下OVS实现的分布式任意播网关下,三层VXLAN路由的实现

看,VXLAN 8100还是那个VXLAN 8100,两个OVS下的VM也还是那两个属于VLAN 100和VLAN 200的VM。唯一不一样的,是OVS和TOR之间为VLAN。

在VXLAN三层路由场景,TOR收到来自VM100的数据包,发现它的MAC地址指向自身VXLAN VSI接口。TOR会根据目的IP查找关联的对端VTEP,并将数据包封装两端VTEP的IP地址作为源IP和目的IP——

等等,少了什么?

对了,VLAN 100是如何映射到VXLAN 8100的?

——TOR会根据目的IP查找关联的对端VTEP……

这条表项中,也记录了三层互通用的VXLAN 8100啊!

目的IP关联的VTEP,以及需要转换的VXLAN ID (8100),这些信息是哪来的呢?对,就是由对端VTEP通过EVPN昭告天下的。

好了,让我们小结一下今天的收获:

交换机作为VXLAN网关时,有两类接口:Attached Circult口和Tunnel口(或VSI口),从前者进后者出时,封装进入VXLAN隧道,反之,剥离VXLAN隧道;

交换机做二层VXLAN转发时,查找的是目的MAC地址,做三层VXLAN路由时,先查找目的MAC地址对应接口(指向本地VSI口),再通过IP地址查找VXLAN隧道的目的地址,进行VXLAN封装;

来自VXLAN隧道的数据包,在交换机上进行解封装,查找目的IP/MAC地址,从AC口发送到本地的OVS,最后送到VM;

所有隧道远端的VM的MAC/IP信息,均来自远端EVPN通告。

5. 再好的CP,过日子也要明算账。层次化端口绑定和EVPN让所有VTEP表项和云平台同步,才能让云与网络这对CP天长地久。

今天大家不但学到了SDN,还学到了人生哲学。明天我们将解决一个挖了很久的坑——怎么样让数据包走出数据中心网络呢?

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

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

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

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

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