当前位置: 首页 > article >正文

MPLS-EVPN笔记详述

目录

EVPN简介:

EVPN路由:

基本四种EVPN路由

扩展:

EVPN工作流程:

1.启动阶段:

2.流量转发:

路由次序整理:

总结:

EVPN基本术语:

EVPN表项:

EVPN支持的多种服务模式:

简介:

1.Port Based:

简介:

配置实现:

2.VLAN Based:

简介:

配置实现:

3.VLAN Bundle:

简介:

配置实现:

VLAN-Aware Bundle:

简介:

MPLS-EVPN配置实施:

1.三层EVPN:

topo:

配置:

测试:

二层双活EVPN:

topo:

配置:

测试:

拓展:

EVPN在数据中心(DC)的应用:

EVPN在SD-WAN的应用:


EVPN简介:

·EVPN颠覆了传统L2VPN转发层面/数据层面学习MAC的方式,引入控制层面学习MAC和IP指导数据转发,实现了转控分离

·EVPN解决了L2VPN的典型问题,实现双活、快速收敛、简化运维等特性

·EVPN的控制平面采用MP-BGP(多协议BGP),数据平面支持多种类型的隧道,例如MPLS、GRE Tunnel、SRv6。

-数据平面:由IP隧道或MPLS标签转发路径组成数据转发路径。只负责数据转发,无需广播泛洪学习MAC地址

EVPN优势:

        ·支持CE双活接轨PE

        ·支持PE成员自动发现

        ·环路避免

        ·广播流量优化

        ·支持ECMP

EVPN路由:

随着RFC7432定义了EVPN的Type1 ~ Type4共4类路由,随着EVPN协议的发展,越来越多的路由被新定义,这里首先介绍EVPN四种类型的路由:

基本四种EVPN路由

(Type3)Inclusive Muticast Route集成组播路由:组播隧道端点自动发现&组播类型自动发现——支持BUM流量转发

(Type4)Ethernet Segment Route以太段路由:ES成员自动发现、DF(Designated Forwarder)选举——多活支持、单活支持

(Type1)Ethernet A-D(Autonomous-Discovery) Route 以太自动发现路由:别名、MAC地址批量撤销、多活指示、通告ESI标签——环路避免、快速收敛、负载分担

(Type2)MAC/IP Advertisement Route MAC/IP通告路由:MAC/IP地址学习通告、MAC/IP绑定、MAC地址移动性——ARP抑制、主机迁移

扩展:

Type5处于草案阶段

Type6 ~ Type11用于组播流量优化,标准还不成熟

EVPN工作流程:

EVPN的工作流程分为两个阶段:

1.启动阶段:

概述:

·EVPN对等体交互EVPN Type3路由(Inclusive Multicast Route,集成组播路由)建立BUM流量转发表

·EVPN对等体交互Type 4路由(Ethernet Segment Route,以太段路由)完成ES发现和DF选举(在ES多归属场景下才会进行DF选举,以防止PE收到两份重复的流量)

·EVPN交互Type 1路由(Ethernet A-D Route,以太自动发现路由),以交互ESI标签,进而实现水平分割、别名等功能

详述:

topo如图

1)BUM流量转发表:


    1.配置PE之间对等体(Peer)关系。以PE1为例,它将发送Type3路由(Inclusive Multicast Route)发现邻居并分配标签
    2.PE2、PE3生成BUM流量转发表
    3.这个过程中所有PE均发送Type 3路由(Inclusive Multicast Route),最终形成稳定的BUM流量转发表

在PE连接CE的接口配置ESI。PE会交换Type4路由(Ethernet Segment Route),传播ESI并进行DF选举

2)DF选举:

    1.当CE多归到多个PE时,只能有1个PE向CE转发BUM流量,选出这个PE的过程被称为DF选举
    2.PE通过特定算法选举出DF。本topo中假设PE1和PE3被选举为DF,则只允许PE1和PE3转发BUM流量给CE

3)分发ESI标签:

    1.水平分割:
        ·PE通过Type1路由(Ethernet A-D  Route)分发ESI标签。ESI label用于水平分割防止同一ES来的流量又绕回该ES
        ·此过程中所有PE均发送type1路由(Ethernet A-D Route),生成完整的ES成员信息表

启动阶段总结:

EVPN的启动阶段生成MAC-VRF、BUM流量转发表和ES成员信息表。此时MAC-VRF表项为空

2.流量转发:

概述:

·CE侧流量触发PE通过Type2路由(MAC/IP Advertisement Route)通告MAC/IP地址,该路由携带分配的标签信息,后续根据该标签执行单播流量转发

详述:

    ·EVPN流量转发阶段由CE侧用户流量发起开始
    ·用户CE1和CE2不感知PE设备的EVPN协议交互

topo:

    1)本地MAC地址学习:

        ·CE1访问CE2,首先发送ARP请求。PE1接收报文,生成本地MAC表条目

    2)MAC地址通告:

        1.PE1 EVPN将本地MAC地址条目生成Type2路由(MAC/IP Advertisement Route),携带PE1分配的标签301
        2.远端的PE设备通过MP-BGP学习到的EVPN路由,生成MAC表条目
        3.EVPN支持CE多活接入PE。PE2感知直连CE1,刷新最优的MAC表条目,并生成和通告Type2路由(MAC/IP Advertisement Route)    

    3)远端MAC地址学习:

         1.因PE1和PE2分配不同的MPLS标签,PE3有两条路径到达CE1

    4)ARP广播转发:

    ·CE1发送的ARP请求达到PE1。PE1通过转发面学习到CE1的MAC地址,然后通过Type2路由(MAC/IP Advertisement Route,MAC/IP 通告路由)发送给所有邻居

     ·控制平面行为完成后,PE1将执行转发平面行为,即转发ARP广播请求。最后因PE3为DF,PE3转发ARP广播报文到CE2
        1.PE1 to PE3:
            PE1到PE3的ARP报文查询BUM流量转发表转发,携带103标签。PE3为DF,转发报文到e1/0/1
        2.PE1 to PE2:
            ·由于PE1和PE2属于相同的ES,PE1到PE2的流量携带ESI标签202和BUM标签102。PE2接收到报文发现有标签202,则丢弃该报文
        3.PE3 to PE2

            ·PE3到PE2的流量携带BUM标签302,PE2根据标签确认是BUM流量,因PE2为非DF,丢弃报文

    5)ARP单播应答:

     

相关文章:

MPLS-EVPN笔记详述

目录 EVPN简介: EVPN路由: 基本四种EVPN路由 扩展: EVPN工作流程: 1.启动阶段: 2.流量转发: 路由次序整理: 总结: EVPN基本术语: EVPN表项: EVPN支持的多种服务模式: 简介: 1.Port Based: 简介: 配置实现: 2.VLAN Based: 简介: 配置实现: 3.VLAN Bundle: 简…...

嵌入式Linux系统中的启动分区架构

在嵌入式Linux系统架构中,Linux内核、设备树(Device Tree)与引导配置文件构成了系统启动的基础核心。如何安全、高效地管理这些关键文件,直接影响到系统的稳定性与可维护性。近年来,越来越多的嵌入式Linux开发者选择将启动相关文件从传统的“混合存放”方式,转向采用独立…...

无人机甲烷检测技术革新:开启环境与能源安全监测新时代

市场需求激增,技术革新势在必行 随着全球气候变化加剧,甲烷作为第二大温室气体,其减排与监测成为国际社会关注焦点。据欧盟甲烷法规要求,2024 年起欧洲能源基础设施运营商需定期测量甲烷排放并消除泄漏。与此同时,极端…...

mysql数据库实现分库分表,读写分离中间件sharding-sphere

一 概述 1.1 sharding-sphere 作用: 定位关系型数据库的中间件,合理在分布式环境下使用关系型数据库操作,目前有三个产品 1.sharding-jdbc,sharding-proxy 1.2 sharding-proxy实现读写分离的api版本 4.x版本 5.x版本 1.3 说明…...

[Python] struct.unpack() 用法详解

struct.unpack()用法详解 文章目录 struct.unpack()用法详解一、函数语法二、格式字符串详解三、使用示例示例 1:解析整数和浮点数示例 2:解析字符串示例 3:解析混合类型示例 4:跳过填充字节示例 5:解析数组 四、关键注…...

普通二叉树 —— 最近公共祖先问题解析(Leetcode 236)

🏠个人主页:尘觉主页 文章目录 普通二叉树 —— 最近公共祖先问题解析(Leetcode 236)🧠 问题理解普通二叉树与 BST 的区别: 💡 解题思路关键思想:📌 举个例子&#xff1a…...

Spring AOP:面向切面编程 详解代理模式

文章目录 AOP介绍什么是Spring AOP?快速入门SpringAop引入依赖Aop的优点 Spring Aop 的核心概念切点(Pointcut)连接点、通知切面通知类型PointCut注解切面优先级Order切点表达式executionwithinthistargetargsannotation自定义注解 Spring AOP原理代理模式&#xff…...

零知开源——STM32F407VET6驱动ILI9486 TFT显示屏 实现Flappy Bird游戏教程

简介 本教程使用STM32F407VET6零知增强板驱动3.5寸 ILI9486的TFT触摸屏扩展板实现经典Flappy Bird游戏。通过触摸屏控制小鸟跳跃,躲避障碍物柱体,挑战最高分。项目涉及STM32底层驱动、图形库移植、触摸控制和游戏逻辑设计。 目录 简介 一、硬件准备 二…...

数据安全中心是什么?如何做好数据安全管理?

目录 一、数据安全中心是什么 (一)数据安全中心的定义 (二)数据安全中心的功能 1. 数据分类分级 2. 访问控制 3. 数据加密 4. 安全审计 5. 威胁检测与响应 二、数据安全管理的重要性 三、如何借助数据安全中心做好数据安…...

Monorepo 详解:现代前端工程的架构革命

以下是一篇关于 Monorepo 技术的详细技术博客,采用 Markdown 格式,适合发布在技术社区或团队知识库中。 🧩 深入理解 Monorepo:现代项目管理的利器 在现代软件开发中,项目规模日益庞大,模块之间的依赖关系…...

16-前端Web实战(Tlias案例-部门管理)

在前面的课程中,我们学习了Vue工程化的基础内容、TS、ElementPlus,那接下来呢,我们要通过一个案例,加强大家对于Vue项目的理解,并掌握Vue项目的开发。 这个案例呢,就是我们之前所做的Tlias智能学习辅助系统…...

电路学习(二)之电容

电容的基本功能是通交流隔直流、存储电量,在电路中可以进行滤波、充放电。 1.什么是电容? (1)电容定义:电容器代表了器件存储电荷的能力,通俗来理解是两块不连通的导体与绝缘的中间体组成。当给电容充电时…...

从“remote rejected”看git角色区别,Maintainer和Devoloper

从“remote rejected”看git角色区别,Maintainer和Devoloper 接上篇,git管理 问题 使用Devoloper权限创建项目,进行push 时显示remote rejected remote: Resolving deltas: 100% (304/304), done. remote: GitLab: remote: A default bra…...

CTA-861-G-2017中文pdf版

CTA-861-G标准(2016年11月发布)规范未压缩高速数字接口的DTV配置,涵盖视频格式、色彩编码、辅助信息传输等,适用于DVI、HDMI等接口,还涉及EDID数据结构及HDR元数据等内容。...

JavaScript中的常量值与引用值:从基础到实践

JavaScript中的常量值与引用值:从基础到实践 在JavaScript中,常量值(原始值)和引用值(对象值)是两种核心的数据类型。它们的存储方式、行为特性以及使用场景存在显著差异,理解这些差异对于编写…...

港大NVMIT开源Fast-dLLM:无需重新训练模型,直接提升扩散语言模型的推理效率

作者:吴成岳,香港大学博士生 原文:https://mp.weixin.qq.com/s/o0a-swHZOplknnNxpqlsaA 最近的Gemini Diffusion语言模型展现了惊人的throughput和效果,但是开源的扩散语言模型由于缺少kv cache以及在并行解码的时候性能严重下降等…...

ESP32-C3 Vscode+ESP-IDF开发环境搭建 保姆级教程

1.背景 最近esp32的芯片很火,因为芯片自带了WIFI和BLE功能,是物联网项目开发的首选芯片,所以,我也想搞个简单的esp32芯片试试看。于是,我设计了一个简单的板子。如下 这块板子很简单,主要的电路来自于乐鑫…...

SCSS 全面深度解析

一、SCSS 入门指南:为你的 CSS 工作流注入超能力 在现代 Web 开发中,样式表的复杂性和维护成本日益增加。为了应对这一挑战,CSS 预处理器应运而生,而 SCSS (Sassy CSS) 正是其中最流行、最强大的工具之一。本指南将带你深入了解 …...

解决vscode打开一个单片机工程文件(IAR/keil MDK)因无法找到头文件导致的结构体成员不自动补全问题。

最近一直在用vscode安装c/c插件后编辑STM32标准库(keil MDK)项目源文件,因为我感觉vscode在代码编辑方面比keil MDK本身优秀太多。发现打开工程后,结构体变量的成员在输入“.”后不自己弹出的问题,后来查找各方资料&am…...

Python 在金融中的应用- Part 1

早在2018年,我开始对资本市场产生兴趣。理解资本市场的基本理论对财富积累至关重要。我开始阅读所有经典著作,如《聪明的投资者》和《证券分析》。在这一系列文章中,我想与读者分享在Python编程语言背景下理解金融理论的旅程。在文章的第一大部分,我们将专注于金融模型的线…...

【Node.js 深度解析】npm install 遭遇:npm ERR! code CERT_HAS_EXPIRED 错误的终极解决方案

目录 📚 目录:洞悉症结,精准施治 🔍 一、精准剖析:CERT_HAS_EXPIRED 的本质 🕵️ 二、深度溯源:证书失效的 N 重诱因 💡 三、高效解决策略:六脉神剑,招招…...

Vue内置组件Teleport和Suspense

一. Vue内置组件Teleport 认识Teleport( teleport:允许我们把组件的模板渲染到特定的元素上) 1.1. 在组件化开发中,我们封装一个组件A,在另外一个组件B中使用 组件A中template的元素,会被挂载到组件B中template的某个位置&#xf…...

Java网络编程实战:TCP/UDP Socket通信详解与高并发服务器设计

🔍 开发者资源导航 🔍🏷️ 博客主页: 个人主页📚 专栏订阅: JavaEE全栈专栏 内容: socket(套接字)TCP和UDP差别UDP编程方法使用简单服务器实现 TCP编程方法Socket和ServerSocket之间的关系使用简…...

vue+threeJs 绘制3D圆形

嗨,我是小路。今天主要和大家分享的主题是“vuethreeJs 绘制圆形”。 今天找到一个用three.js绘制图形的项目,主要是用来绘制各种形状。 项目案例示意图 1.THREE.ShapeGeometry 定义:是 Three.js 中用于从 2D 路径形状&#xff08…...

Silky-CTF: 0x02靶场

Silky-CTF: 0x02 来自 <Silky-CTF: 0x02 ~ VulnHub> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.128&#xff0c;靶场IP192.168.23.131 3&#xff0c;对靶机进…...

Kafka 的优势是什么?

Kafka 作为分布式流处理平台的核心组件&#xff0c;其设计哲学围绕高吞吐、低延迟、高可扩展性展开&#xff0c;在实时数据管道和大数据生态中具有不可替代的地位。 一、超高吞吐量与低延迟 1. 磁盘顺序 I/O 优化 突破磁盘瓶颈&#xff1a;Kafka 将消息持久化到磁盘&#xff…...

基于FPGA + JESD204B协议+高速ADC数据采集系统设计

摘 要&#xff1a; 针对激光扫描共聚焦显微镜的大视场、高分辨率需求&#xff0c;为在振镜扫描的时间内获取更多数据量&#xff0c;设计一种基 于 FPGA 的高速数据采集系统。该系统采用 Xilinx 的 A7 系列 FPGA 作为主控芯片&#xff0c;同时选用 TI 公司提供的 LM…...

微服务中引入公共拦截器

本文使用的微服务版本为springcloudAlbaba :2021.0.4.0 微服务工程&#xff0c;一般公共的东西都放入一个工程&#xff0c;别的微服务都会引入这个工程&#xff0c;比如common-service,那么就可以在这个工程编写一个拦截器&#xff1a;&#xff0c;比如&#xff1a; public cla…...

Ubuntu20.04 LTS 升级Ubuntu22.04LTS 依赖错误 系统崩溃重装 Ubuntu22.04 LTS

服务器系统为PowerEdge R740 BIOS Version 2.10.2 DELL EMC 1、关机 开机时连续按键盘F2 2、System Setup选择第一个 System BIOS 3、System BIOS Setting 选择 Boot Setting 4、System BIOS Setting-Boot Setting 选择 BIOS Boot Settings 5、重启 开启时连续按键盘F11 …...

C++11:unique_ptr的基本用法、使用场景和最佳使用指南

文章目录 1. 简介2. 基本语法和用法2.1. 创建unique_ptr2.2. 访问指向的对象2.3. 所有权管理 3. 自定义删除器4. 数组支持5. 常见使用场景5.1. RAII资源管理5.2. 工厂模式5.3. 容器中存储多态对象5.4. Pimpl&#xff08;指针到实现&#xff09;习惯用法 6. 与其他智能指针的比较…...