二、VXLAN BGP EVPN基本原理

news2024/11/26 19:41:10

VXLAN BGP EVPN基本原理

  • 1、BGP EVPN
  • 2、BGP EVPN路由
    • 2.1、Type2路由——MAC/IP路由
    • 2.2、Type3路由——Inclusive Multicast路由
    • 2.3、Type5路由——Inclusive Multicast路由

——————————————————————————————————————————————————

1、BGP EVPN

EVPN是一种用于二层网络互联的VPN技术。EVPN技术采用类似于BGP/MPLS IP VPN的机制,在BGP协议的基础上定义了一种新的网络层可达信息NLRI即EVPN NLRI,EVPN NLRI定义了几种新的BGP EVPN路由类型,用于处在二层网络的不同站点之间的MAC地址学习和发布。

原有的VXLAN实现方案没有控制平面,是通过数据平面的流量泛洪进行VTEP发现和主机信息(包括IP地址、MAC地址、VNI、网关VTEP IP地址)学习的,这种方式导致VXLAN网络存在很多泛洪流量。为了解决这一问题,VXLAN引入了EVPN作为控制平面,通过在VTEP之间交换BGP EVPN路由实现VTEP的自动发现、主机信息相互通告等功能,从而避免了不必要的数据流量泛洪。

EVPN应用于VXLAN网络中,可以使VTEP发现和主机信息学习从数据平面转移到控制平面。

——————————————————————————————————————————————————

2、BGP EVPN路由

在EVPN NLRI中定义了如下几种应用于VXLAN控制平面的BGP EVPN路由类型:

——————————————————————————————————————————————————

2.1、Type2路由——MAC/IP路由

Type2路由-MAC/IP路由

在这里插入图片描述

Route Distinguisher:该字段为EVPN实例下设置的RD(Route Distinguisher)值。

Ethernet Segment Identifier:该字段为当前设备与对端连接定义的唯一标识。

Ethernet Tag ID:该字段为当前设备上实际配置的VLAN ID。

MAC Address Length:该字段为此路由携带的主机MAC地址的长度。

MAC Address:该字段为此路由携带的主机MAC地址。

IP Address Length:该字段为此路由携带的主机IP地址的掩码长度。

IP Address:该字段为此路由携带的主机IP地址。

MPLS Label1:该字段为此路由携带的二层VNI。

MPLS Label2:该字段为此路由携带的三层VNI。

该类型路由在VXLAN控制平面中的作用包括:

主机MAC地址通告

要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机MAC。

主机ARP通告

MAC/IP路由可以同时携带主机MAC地址+主机IP地址,因此该路由可以用来在VTEP之间传递主机ARP表项,实现主机ARP通告。其中,MAC Address和MAC Address Length字段为主机MAC地址,IP Address和IP Address Length字段为主机IP地址。此时的MAC/IP路由也称为ARP类型路由。

主机ARP通告主要用于以下两种场景:

ARP广播抑制

当三层网关学习到其子网下的主机ARP时,生成主机信息(包含主机IP地址、主机MAC地址、二层VNI、网关VTEP IP地址),然后通过传递ARP类型路由将主机信息同步到二层网关上。这样当二层网关再收到ARP请求时,先查找是否存在目的IP地址对应的主机信息,如果存在,则直接将ARP请求报文中的广播MAC地址替换为目的单播MAC地址,实现广播变单播,达到ARP广播抑制的目的。

分布式网关场景下的虚拟机迁移

当一台虚拟机从当前网关迁移到另一个网关下之后,新网关学习到该虚拟机的ARP(一般通过虚拟机发送免费ARP实现),并生成主机信息(包含主机IP地址、主机MAC地址、二层VNI、网关VTEP IP地址),然后通过传递ARP类型路由将主机信息发送给虚拟机的原网关。原网关收到后,感知到虚拟机的位置发生变化,触发ARP探测,当探测不到原位置的虚拟机时,撤销原位置虚拟机的ARP和主机路由。

主机IP路由通告

在分布式网关场景中,要实现跨子网主机的三层互访,两端VTEP(作为三层网关)需要互相学习主机IP路由。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机IP路由。其中,IP Address Length和IP Address字段为主机IP路由的目的地址,同时MPLS Label2字段必须携带三层VNI。此时的MAC/IP路由也称为IRB类型路由。

ARP类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI;IRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI。因此,IRB类型路由包含着ARP类型路由,不仅可以用于主机IP路由通告,也能用于主机ARP通告。

——————————————————————————————————————————————————

2.2、Type3路由——Inclusive Multicast路由

该类型路由是由前缀和PMSI属性组成,报文格式如下图所示:

在这里插入图片描述

Route Distinguisher:该字段为EVPN实例下设置的RD(Route Distinguisher)值。

Ethernet Tag ID:该字段为当前设备上的VLAN ID。在此路由中为全0。

IP Address Length:该字段为此路由携带的本端VTEP IP地址的掩码长度。

Originating Router’s IP Address:该字段为此路由携带的本端VTEP IP地址。

Flags:该字段为标志位,标识当前隧道是否需要叶子节点信息。在VXLAN场景中,该字段没有实际意义。

Tunnel Type:该字段为此路由携带的隧道类型。目前,在VXLAN场景中,支持的类型只有“6:Ingress Replication”,即头端复制,用于BUM报文转发。

MPLS Label:该字段为此路由携带的二层VNI。

Tunnel Identifier:该字段为此路由携带的隧道信息。目前,在VXLAN场景中,该字段也是本端VTEP IP地址。

该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNI和VTEP IP地址信息。其中,Originating Router’s IP Address字段为本端VTEP IP地址,MPLS Label字段为二层VNI。如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制表,用于后续BUM报文转发。

——————————————————————————————————————————————————

2.3、Type5路由——Inclusive Multicast路由

在这里插入图片描述

Route Distinguisher:该字段为EVPN实例下设置的RD(Route Distinguisher)值。

Ethernet Segment Identifier:该字段为当前设备与对端连接定义的唯一标识。

Ethernet Tag ID:该字段为当前设备上实际配置的VLAN ID。

IP Prefix Length:该字段为此路由携带的IP前缀掩码长度。

IP Prefix:该字段为此路由携带的IP前缀。

GW IP Address:该字段为默认网关地址。该字段在VXLAN场景中没有实际意义。

MPLS Label:该字段为此路由携带的三层VNI。

该类型路由的IP Prefix Length和IP Prefix字段既可以携带主机IP地址,也可以携带网段地址:

当携带主机IP地址时,该类型路由在VXLAN控制平面中的作用与IRB类型路由是一样的,主要用于分布式网关场景中的主机IP路由通告。

当携带网段地址时,通过传递该类型路由,可以实现VXLAN网络中的主机访问外部网络。

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

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

相关文章

static const char* 和const char*有报错,发生访问冲突

const char *srcfilere aByteArray.data(); 当重复某一操作时:有报错,发生访问冲突 const char *srcfilere aByteArray.data(); 即可解决访问冲突问题。 困扰了至少一天吧 应该是static的问题,吃了基础不好的亏。

CMD命令终端快捷键学习

很多环境需要安装并且指定环境变量才可用终端访问 比如一些数据库、一些环境、例如:nodejs Oracle、mysql 在一个文件夹按住shift鼠标右键可以快速在当前目录运行终端!免去cd 目录的烦恼 快捷键 当你学习和使用命令终端(如 Windows 的 CMD&…

如何让IPad Pro变成你的生产力工具?在IPad上用Vscode写代码搞开发

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. ipad pro通过软件远程vscode6.1 创建TCP隧道 7. ip…

如何用芯片ate测试设备测试芯片过压保护和过流保护?

过压保护和过流保护是指被保护的产品或电路在电压/电流超过正常运行的最大值时,使输入断开或内部电压/电流降低的一种保护方式。过压保护和过流保护是为了防止电路中电压/电流过大从而损坏产品,因此过压/过流保护电压值和电流值也是电子测试中不可或缺的…

树莓派(Linux系统通用)交叉编译(环境搭建、简单使用)

概念 交叉编译是指在一台计算机上编译运行在另一台计算机上的程序。(编译是指,在一个平台上生成在该平台上的可执行程序)通常情况下,编译器和目标平台的架构是不同的,例如,在一台x86平台上编译运行在ARM平…

Go 语言史诗级更新-循环Bug修复

背景 前两天 Golang 的官方博客更新了一篇文章:Fixing For Loops in Go 1.22 看这个标题的就是修复了 Go 循环的 bug,这真的是史诗级的更新;我身边接触到的大部分 Go 开发者都犯过这样的错误,包括我自己,所以前两年我也…

SOLIDWORKS 专业显卡要求

每次谈及SOLIDWORKS对于显卡的需求,都有讲不完的话题,往往纠结于到底选择游戏卡还是专业图形卡?首先需要明确,不仅仅是SOLIDWORKS软件, 几乎所有的图形类软件都推荐使用专业图形卡。 今天微辰三维特别整理一下SOLIDWORKS不同项目对…

实体行业数字化转型怎么做?线上线下相结合的新零售体系怎么做?

如今,实体行业想要取得收入增长,只做线下业务或者只做线上业务,在当前的市场环境中是难以长久生存的,因此一定要线上线下相结合,将流量运作与线下转化进行充分结合,才能更好地发挥实体优势,带来…

气球派对服务小程序商城的效果是什么

气球派对包含多种场景,除了线下服务如生日布置、浪漫小礼、婚礼布置、周岁礼等,还有相关产品销售属性;同时这些服务具备较高的同城场景和定制化需求,在实际生活中,这些服务的需求度较高,但同样需要商家不断…

防止员工拷贝公司终端电脑文件数据(如何防止企业数据文件被任意拷贝?)

在当前的信息时代,数据被誉为“新型石油”,而公司内部的文件往往是企业核心数据和竞争优势的重要载体。然而,近年来,员工私自拷贝公司内部文件的事件屡见不鲜,这不仅威胁到企业的信息安全,也可能导致公司的…

探索ClickHouse——使用Projection加速查询

在测试Projection之前,我们需要先创建一张表,并导入大量数据。 我们可以直接使用指令,从URL指向的文件中获取内容并导入表。但是担心网络不稳定,我们先将文件下载下来。 下载文件 wget wget http://prod.publicdata.landregistr…

OpenHarmony应用模型的构成要素与Stage优势

一、应用模型的构成要素 应用模型是OpenHarmony为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。 二、Stage主推模型优势…

多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出

多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出 目录 多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向…

layuiselect设置为不可下拉选取

$("#exam").siblings(".layui-form-select").find("dl").remove(); 或 layuiSelectDisable($("#exam")); // 设置selet元素不可下拉选择function layuiSelectDisable(selectElem) {try {var dlElem selectElem.siblings(".layu…

华为云云耀云服务器L实例评测|云耀云服务器L实例部署Gitblit服务器

华为云云耀云服务器L实例评测|云耀云服务器L实例部署Gitblit服务器 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、Gitblit介绍2.1 Gitblit简介2.2 Gitblit特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、检查服务…

HarmonyOS CPU与I/O密集型任务开发指导

一、CPU密集型任务开发指导 CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。 基于多线程并发机制处理CPU密集型任务…

【北亚企安数据恢复】Ceph存储介绍Ceph数据恢复流程

Ceph存储基本架构: Ceph存储可分为块存储,对象存储和文件存储。Ceph基于对象存储,对外提供三种存储接口,故称为统一存储。 Ceph的底层是RADOS(分布式对象存储系统),RADOS由两部分组成:OSD和MON。 MON负责监…

vue项目开发环境工具-node

最近在开始接触做vue框架的前端项目,以前用的前端比如html,js,css等都是比较原生的,写好后直接浏览器打开就行。但vue跟java一样是需要编译的,和微信小程序类似。今天就先记录一下vue的开发运行搭建。所需工具如下 nod…

从小白到大咖:软件测试工作半年心得分享!总结我掉的4个坑…

从事软件测试工作已经半年多了,刚入职的时候还是一个缺乏实际经验的小白,而现在拿到需求之后也能比较快速地熟悉业务并顺利开展测试,虽然不能说掌握了很多技能,但是相比之前也是有不少收获的,在这个过程中我总结了一点…

spring-cloud-alibaba-dubbo-issues1805修复

spring-cloud-alibaba-dubbo-issues1805修复 文章目录 [toc] 1.官方信息2.版本代码对比3.修改尝试4.验证5.总结 这个issue就是我这前写了那两篇文章的那个issue Dubbo重启服务提供者或先启动服务消费者后启动服务提供者,消费者有时候会出现找不到服务的问题及解决 …