报文在VXLAN网络中是怎么转发的?这么简单居然有人不知道

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

你们好,我的网工朋友

不知道大家有没有想过这个问题:VXLAN网络中的报文是如何转发的?

在基本的二三层转发中,二层转发依赖的是MAC表,三层转发依赖的是FIB表。

在VXLAN中,其实也是同样的道理。

今天就来讲讲报文在VXLAN网络中的转发流程,以VXLAN隧道的建立为例,分别介绍同子网内、跨子网间是如何进行通信的,看完再也没疑问了

今日文章阅读福利:《 华为官方出品-网络协议报文格式大全 》

说到报文,分享一个不错的资料给你,私信我,发送暗号“报文”,限量获取。

如果想从0到1系统学习,也欢迎私信我,告知学习意向,我会为你推荐最适合你的方式。

01 集中式VXLAN中同子网互通流程

如下图所示,VM_A、VM_B和VM_C属于同网段。此时,VM_A想与VM_C进行通信,首次进行通信,报文进行如下处理:

5cc0110bcb02c6c16ef5776265bf0a05.jpeg
同子网VM互通组网图

1、VM_A上没有VM_C的MAC地址,所以会发送ARP广播报文请求VM_C的MAC地址。

2、VTEP_1收到ARP请求后,先进行VXLAN封装,然后将VXLAN报文复制多份分别发送给所有的对端VTEP。

3、报文到达VTEP_2和VTEP_3后,VTEP对报文进行解封装,得到VM_A发送的原始报文。VTEP_2和VTEP_3在对应的二层域内广播。

4、当VM_C收到该请求报文后,发现目的IP与本机IP相同,因此VM_C将进行ARP应答。而其他VM收到该请求报文会丢弃。

经过上述过程,VM_A和VM_C均已学习到了对方的MAC地址。之后,VM_A和VM_C将采用单播方式进行通信。

02 集中式VXLAN中跨子网互通流程

跨子网报文转发需要通过三层网关实现。如下图所示,VM_A、VM_B属于不同网段。VM_A与VM_B进行通信的报文处理过程如下:

4c0841022b3811aed1d3b851426344cc.jpeg
不同子网VM互通流程示意

1、VM_A先将数据报文发送给VTEP_1。

2、VTEP_1收到后进行VXLAN封装,然后将VXLAN报文发送给对端VTEP_3。

3、VTEP_3收到VXLAN报文后进行解封装,发现目的MAC是三层网关接口BDIF的MAC地址MAC_10,而目的IP地址为IP_B(10.1.20.1),因此需要进行三层转发。

4、VTEP_3根据路由表查找到IP_B的下一跳,发现出接口为BDIF 20,VTEP_3将报文重新进行VXLAN封装,然后将VXLAN报文发送给对端VTEP_2。

5、报文到达VTEP_2后,VTEP_2对报文进行解封装,并将其发送给VM_B。

BDIF接口的功能与VLANIF接口类似,是基于BD创建的三层逻辑接口,用以实现不同子网之间的通信,或VXLAN网络与非VXLAN网络之间的通信。

整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148752.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

在ComfyUI中,Cross-Attention优化方案应该选哪个?

🐱‍🐉背景 在comfyui中,如果你使用了秋叶的启动器,会在高级选项中看到这样一行选项:Cross-Attention优化方案,右边有个下拉框,可以选择的选项有4个,如下图: 那么&#…

vscode缩进 和自动格式化

如下图,缩进太大了。 检查2个地方 prettierrc.cjs文件。此处决定缩进几个tab vscode 的设置。 保存的时候 格式化。

计算机毕业设计 基于Python内蒙古旅游景点数据分析系统 Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

采购系统价格沉淀:降低采购成本,提高采购效率

在当今竞争激烈的市场环境中,企业对于成本控制与效率提升的追求从未停歇。采购作为企业运营的重要一环,其成本直接关联到产品的定价与市场竞争力。因此,引入并优化采购系统价格沉淀机制,成为众多企业降低采购成本、提升采购效率的…

在Windows系统上安装的 zstd C++ 库

在Windows系统上安装的 zstd C 库 项目地址:安装步骤步骤一步骤二 效果 项目地址: https://github.com/facebook/zstd 经过观察发现,这个项目没有CMakeLists.txt,只有Makefile,但是Makefile在windows系统下没有什么用, 所以说,常规的方式安装不可取了 安装步骤 步骤一 往下…

JAVA零基础入门——高级教程之集合框架

目录 1. 关于集合框架 1.1 集合接口 1.2 集合实现类 1.3 集合算法及迭代器和比较器的使用 2. 数据结构 2.1 ArrayList 2.2 LinkedList 2.3 HashMap 2.4 HashSet 3. 迭代器 1. 关于集合框架 集合框架是使用数据结构(参见本文2. 数据结构)来满…

传奇外网架设全套教程带图文解说——Gom引擎

想要自己架设传奇服务器,但没有技术怎么办? 1. 架设前的准备工作 ①通过百度网盘下载版本、补丁、客户端和DBC2000。版本解压到D盘,客户端解压到D盘或是E盘,补丁先不解压 ②安装和配置DBC2000,DBC2000数据库下载及安…

【Linux】Linux项目自动化构建工具--make和makefile

简单解释一下: make:一条命令; makefile/Makefile:一个文件; make/Makefile用法 因为makefile/Makefile本质就是一个文件,所以编辑这个文件就是: vim Makefile 下面让我们根据一个例子来学习ma…

C++ Primer Plus(速记版)-高级主题

第十七章 用于大型程序的工具 C 解决问题规模多样,对复杂问题尤其需用异常处理、命名空间和多重继承增强代码管理、库整合和概念表达,以适应大规模编程对错误处理、模块组合及高级功能设计的高要求。 17.1. 异常处理 异常处理允许C程序中不同部分通过抛…

聚铭下一代智慧安全运营中心荣获CNNVD兼容性资质证书

近日,聚铭网络旗下安全产品——聚铭下一代智慧安全运营中心正式通过了国家信息安全漏洞库(CNNVD)兼容性认证测试,荣获国家信息安全漏洞库兼容性资质证书。 关于CNNVD兼容性 国家信息安全漏洞库(CNNVD)是…

初始MYSQL数据库(6)—— 事务

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: MYSQL 目录 事务的概念 事务的ACID特性 使用事务 查看支持事务的存储引擎 事务的语法 保存点 自动/手动提交事务 事务的隔离性和…

微信小程序开发第七课

一 人脸识别 1.1 使用步骤 # 1 注册百度人脸识别接口 https://cloud.baidu.com/product/face.html # 2 免费领取额度:https://console.bce.baidu.com/ai/#/ai/face/overview/index# 3 创建应用:https://console.bce.baidu.com/ai/#/ai/face/app/list# …

【自动驾驶】控制算法(八)横向控制Ⅳ | 调试与优化——让车辆行驶更平稳!

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

iPhone锁屏密码忘了怎么解锁?轻松解锁攻略来了

在日常生活中,智能手机已成为我们不可或缺的伙伴。其中,iPhone以其出色的性能和优雅的设计,赢得了全球用户的喜爱。然而,即便是最忠实的iPhone用户,也可能会遇到一些棘手的问题,比如忘记了锁屏密码。面对这…

【高效且应用广泛的排序 —— 快速排序算法】

高效且应用广泛的排序 —— 快速排序算法 快速排序是一种常用的排序算法,主要采用分治的思想。以下是对快速排序算法的详细介绍及代码示例: 快速排序的基本思路是,每次将一个位置上的数据归位,使得该数左边的所有数据都比该数小…

工业物联网关为工业生产数字化转型赋能-天拓四方

一、引言 在工业4.0的大背景下,工业物联网关成为了制造业转型升级的关键技术之一。它通过连接设备和系统,实现数据的实时采集、处理和传输,从而提升生产效率、降低成本、优化资源配置,并最终推动整个制造业的数字化进程。本文将详…

AJAX 入门 day3 XMLHttpRequest、Promise对象、自己封装简单版的axios

目录 1.XMLHttpRequest 1.1 XMLHttpRequest认识 1.2 用ajax发送请求 1.3 案例 1.4 XMLHttpRequest - 查询参数 1.5 XMLHttpRequest - 数据提交 2.Promise 2.1 Promise认识 2.2 Promise - 三种状态 2.3 案例 3.封装简易版 axios 3.1 封装_简易axios_获取省份列表 3…

Android OpenGLES2.0开发(二):环境搭建

世界没有悲剧和喜剧之分,如果你能从悲剧中走出来,那就是喜剧,如果你沉缅于喜剧之中,那它就是悲剧。——科马克麦卡锡《路》 ​​​ OpenGL ES环境搭建 Android 应用中使用 OpenGL ES 绘制图形,必须创建一个显示容器。…

Rust - 字符串:str 与 String

在其他语言中,字符串通常都会比较简单,例如 “hello, world” 就是字符串章节的几乎全部内容了。 但是Rust中的字符串与其他语言有所不同,若带着其他语言的习惯来学习Rust字符串,将会波折不断。 所以最好先忘记脑中已有的关于字…

【一起学NLP】Chapter2-学习神经网络

目录 学习神经网络损失函数Tip:One-hot向量导数与梯度Tip:严格地说链式法则计算图反向传播其他典型的运算结点乘法结点分支节点Repeat节点Sum节点MatMul节点 Tip:浅拷贝和深拷贝的差异梯度的推导和反向传播的实现Sigmoid层Affine层Softmax with Loss层 权重的更新——随机梯度下…