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

在大家的祝福之下,云和网络经历了红娘撮合(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昭告天下的。

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

  1. 交换机作为VXLAN网关时,有两类接口:Attached Circult口和Tunnel口(或VSI口),从前者进后者出时,封装进入VXLAN隧道,反之,剥离VXLAN隧道;
  2. 交换机做二层VXLAN转发时,查找的是目的MAC地址,做三层VXLAN路由时,先查找目的MAC地址对应接口(指向本地VSI口),再通过IP地址查找VXLAN隧道的目的地址,进行VXLAN封装;
  3. 来自VXLAN隧道的数据包,在交换机上进行解封装,查找目的IP/MAC地址,从AC口发送到本地的OVS,最后送到VM;
  4. 所有隧道远端的VM的MAC/IP信息,均来自远端EVPN通告。
    5. 再好的CP,过日子也要明算账。层次化端口绑定和EVPN让所有VTEP表项和云平台同步,才能让云与网络这对CP天长地久。

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

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

  1. 局域网SDN技术硬核内幕 二 从软件Overlay到硬件Overlay

    局域网SDN技术硬核内幕 二 从软件Overlay到硬件Overlay 在前一阶段的文章中,我们介绍了Neutron和NSX中的几个基本概念: IRB(Integrated Routing & ...

  2. 局域网SDN技术硬核内幕 - 前传 突破多核的瓶颈——虚拟化

    局域网SDN技术硬核内幕 - 前传 突破多核的瓶颈--虚拟化 在前一篇<局域网SDN技术硬核内幕 - 前传 多核技术为摩尔定律延寿>中提到了,通过多核可以突破主频物理限制的瓶颈,提升单台计 ...

  3. 局域网SDN技术硬核内幕 一 虚拟化网络的实现

    局域网SDN技术硬核内幕 一 虚拟化网络的实现 在前一篇文章 <从计算虚拟化到网络虚拟化>中提到,将虚拟私有云(VPC)中,各个网络节点互联的是通过虚拟网元实现的.那么,在现实中,谁扮演虚 ...

  4. 虚拟机实现二层交换机_局域网SDN技术硬核内幕 5 虚拟化网络的实现

    在前一篇文章 <从计算虚拟化到网络虚拟化>中提到,将虚拟私有云(VPC)中,各个网络节点互联的是通过虚拟网元实现的.那么,在现实中,谁扮演虚拟网元的角色呢? 让我们将时间轴拉回到21世纪的 ...

  5. She Knows访谈 | 三大公链创始人技术硬核交锋,2019年浪潮将由什么引爆?

    She Knows第三期对话嘉宾:本体(Ontology)创始人李俊网录科技创始人.万维链(Wanchain)发起人吕旭军Nervos基金会联合创始人吕国宁. 对话人:巴比特内容总监王晓萌,资深媒体人 ...

  6. 生于硬核 DTCC2020Hubble与技术硬核“同生共荣”

    2020年12月21-23日,第十一届中国数据库技术大会在北京国际会议中心举行.天云数据受邀参展并在数据库内核专场做国产数据库Hubble产品的技术演讲,同期天云数据荣获2020数据风云奖评选之年度创 ...

  7. 这些技术硬核文章值得一看

    多家技术公众号硬核文章推广 轻扫二维码即可阅读 总有一款适合你! <探索现代移动网络> 技术方向:移动客户端 简介:本文由 WWDC 2020 的<Session 10111- Bo ...

  8. 技术硬核还不够?互联网企业出海指南来了!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 李小雅 5G 时代来临,中国移动互联网发展速度 ...

  9. 硬核!长沙这所中职学校硬件设施媲美高校

    在全面建设社会主义现代化国家新征程中,职业教育前途广阔.大有可为.我国将加快构建现代职业教育体系,培养更多高素质技术技能人才.能工巧匠.大国工匠.随着中国越来越重视以学生能力培养为基础的职业教育,拥有 ...

最新文章

  1. 全面对比,深度解析 Ignite 与 Spark
  2. 批量探测工具fpingping常用命令集合大学霸IT达人
  3. HTML5/CSS3/JavaScript
  4. 数学知识复习:二阶导复合函数的链式法则
  5. php smart模板,vaphp整合smart模板有关问题
  6. AT2371-[AGC013E]Placing Squares【矩阵乘法】
  7. java logout session_会话跟踪技术--session的使用
  8. c语言结构-的优先级,c语言运算符号优先级
  9. 【OpenCV 例程200篇】21. 图像的叠加
  10. 初级java程序员怎样快速提升自己
  11. 正点原子STM32F103(精英版)------STM32时钟系统
  12. 用Tikz 画一幅神舟12号简图,致敬中国航天工作者,顺便学习Tikz作图的高级技巧!
  13. 心理学在计算机方面的应用,浅析计算机在心理学研究中的应用
  14. LinkedList源码解析
  15. 机顶盒安装APK方法
  16. boost之signal的使用
  17. 高一Python入门第三讲 石头剪刀布
  18. 云集上市,短短四年时间缔造了一个新的电商神话
  19. Caché SQL 高性能优化
  20. 解决win10 软件商店出现错误,和edge浏览器打开无法访问网络

热门文章

  1. 海思HI35xx平台软件开发快速入门之H264解码实例
  2. mc服务器常用指令_MC玩家必看常用指令大全
  3. Linux vmstat命令
  4. 读取文件并输出,输出时将小写字母转为大写
  5. 如何在一夜之间获得成功:我「从无到有」的 5 年 [英文版]
  6. Python 实现微信测试号情侣纪念消息推送(消息群发)
  7. Flutter 发布iOS版本app
  8. 手把手教你写CS231N作业一 KNN分类器 详细解析 作业源文件 数据集
  9. 远场(far-field)语音识别的主流技术有哪些
  10. 关于投资有哪些不得不读的书籍?