华为数通HCIP-BGP EVPN基础

news2024/11/16 15:42:45

MP-BGP

MP-BGPMultiprotocol Extensions for BGP-4)在RFC4760中被定义,用于实现BGP-4的扩展以允许BGP携带多种网络层协议(例如IPv6L3VPNEVPN等)。这种扩展有很好的后向兼容性,即一个支持MP-BGP的路由器可以和一个仅支持BGP-4的路由器交互。

 BGP-4扩展

BGP-4中IPv4特有的三个信息是NEXT_HOP属性、AGGREGATOR和IPv4 NLRI。因此为了支持多种网络层协议,BGP-4需要增加两种能力:
        关联其他网络层协议下一跳信息的能力。
        关联其他网络层协议NLRI的能力。
这种两种能力被互联网数字分配机构(IANA)统称为地址族(Address Family,AF)。
为了实现后向兼容性,协议规定MP-BGP增加两种新的属性,MP_REACH_NLRI和MP_UNREACH_NLRI,分别用于表示可达的目的信息和不可达的目的信息。这两种属性都属于可选非过渡(optional and non-transitive)。

 BGP-4规定IPv4的NEXT_HOP和AGGREGATOR属于Path attributes字段,IPv4的NLRI中携带IPv4的路由条目。
MP-BGP新增Path attributes的字段,将对应的网络层协议的NEXT_HOP字段和NLRI归属于MP_REACH_NLRI。MP_REACH_NLRI为Path attributes的新增字段。

MP_REACH_NLRI

MP_REACH_NLRI被携带于BGP Update报文中,有以下作用:
        通告可达的路由给BGP邻居
        通告可达路的路由的下一跳给BGP邻居
其详细字段如下:

 SAFI字段中1表示单播,2表示组播。值由IANA分配,其分配原则被定义于RFC2434(Guidelines for Writing an IANA Considerations Section in RFCs)。
本章节后续学习EVPN的AFI为25 (L2VPN) ,SAFI为70 (EVPN)。 

MP_UNREACH_NLRI

MP_UNREACH_NLRI被携带于BGP Update报文中,用于撤销不可达的路由。
其详细字段如下:
 

 例如EVPN的AFI为25 (L2VPN) ,SAFI为70 (EVPN)。 

MPLS简介

MPLSMultiprotocol Label Switching,多协议标记交换)

位于TCP/IP协议栈中的数据链路层和网络层之间,在两层之间增加了额外的MPLS头部。报文转发直接基于MPLS头部。MPLS头部又被称为MPLS标签(Label)。
MPLS以标签交换替代IP转发,实现了基于标签的快速转发。

 MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的“Multiprotocol”指的就是支持多种网络协议。
MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的连接标识符,与ATM的VPI/VCI以及Frame Relay的DLCI类似。
MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成了一个MPLS域。

VPLS简介

VPLSVirtual Private LAN Service)是一种基于以太网的二层VPN技术,它在MPLS网络上提供了类似LAN的业务,允许用户可以从多个地址位置接入网络、相互访问。

 传统L2VPN

传统的L2VPN业务例如VPLS(Virtual Private LAN Service),提供用户远程站点之间二层连接服务。它组建二层交换网,像二层交换机一样透传以太报文。本例中PE1和PE2组建的VPLS网络透传CE1和CE2之间的VLAN流量。
因此在传统L2VPN中对于远端MAC地址的学习依靠ARP广播泛洪,PE设备将需要承载广播流量。广播占用较多的接口带宽,这是传统L2VPN的一个典型问题。

 VPLS有更多的问题,例如不支持多活接入、故障收敛慢、不支持负载均衡等不在本课程介绍,请学习HCIE-HCIE-Datacom《Etherent VPN》和RFC 7209 - Requirements for Ethernet VPN (EVPN)。

EVPN

EVPN最初在RFC 7432中被定义,EVPN引入控制平面,用于更好的控制MAC地址学习过程。
EVPN的控制平面采用MP-BGP,数据平面支持MPLS LSPs或者IP/GRE tunneling。

EVPN的优势

EVPN颠覆了传统L2 VPN数据面学习的方式,引入控制面学习MAC和IP指导数据转发,实现了转控分离。
EVPN解决传统L2 VPN的典型问题,带来双活,快速收敛,简化运维等更多的价值。

 EVPN NLRI

EVPN定义了一种新的BGP NLRI(Network Layer Reachable Information)来承载所有的EVPN路由,被称为EVPN NLRI。
EVPN NLRI是MP-BGP的新型扩展,被包含于MP_REACH_NLRI中,定义了新的NLRI。它规定了EVPN的AFI(Address Family Identifier)是25,SAFI(Subsequent Address Family Identifier)是70。

 EVPN路由

EVPN NLRI格式采用TLV(Type-Length-Value)三元组结构,使得报文具有很强的灵活性和扩展性:
        Route Type定义了不同的EVPN路由。RFC 7432中首先定义了四类路由。
        Length定义了字段的长度。
        Route Type Specifc则表示不同的路由类型有不同的字段填充。

 EVPN更多类型路由及作用

EVPN不仅限于二层VPN的应用,随着其EVPN路由类型的增加,支持更多的应用例如L3 VPN功能。

Type5类路由IP Prefix Route在标准化进程中目前处于草案阶段,draft-ietf-bess-evpn-prefix-advertisement

EVPN协议标准

 EVPN在广域IP承载网的应用

 E-LINE、E-TREE、E-LAN是EVC定义的三种类型
 MEF中提到了三种EVC的服务种类,点到点EVC(Point-to-Point EVC)、多点到多点EVC(Mutlipoint-to-Multipoint EVC)和根到多点EVC(Rooted-Multipoint EVC)。
        E-LINE:一条点到点的EVC将两个UNI严格地关联。
        E-LAN:一个多点到多点EVC可以将两个或者两个以上的UNI关联起来,而且用户/运营商可以在不影响其他UNI的前提下根据需要向这个EVC中添加任意个UNI,或者将这个EVC中的某些UNI剔除。
        E-TREE:这种EVC类似于三层VPN中的Hub-Spoke模式,它包含一个或多个根UNI(Root)和若干叶子UNI(Leaf),其中根UNI可以和EVC中的所有UNI直接通信,而叶子UNI只能和EVC中的根UNI直接通信,两个叶子UNI之间不能直接通信。 

EVPN在数据中心网络的应用

在云数据中心采用EVPN的NVO(Network Virtualization Overlay)解决方案(RFC 8365)。
推荐数据平面使用VXLAN封装与控制平面EVPN结合,构建灵活的数据中心Overlay网络。

 EVPN在园区网的应用

园区网虚拟化园区解决方案同在云数据中心相同,采用EVPN的NVO解决方案(RFC 8365)。
在不同的底层组网上使用VXLAN封装与控制平面EVPN结合,构建灵活的数据中心Overlay网络。

 EVPNSD-WAN的应用

SD-WAN是新一代的企业分支互联解决方案,支持智能动态选路、ZTP和可视化等特性。
SD-WAN解决方案中,在RR与CPE之间部署EVPN用于在控制平面传播SD-WAN的Overlay VPN路由,数据平面采用IPSec VPN构建安全的转发通道。

 Overlay VPN路由包括站点VPN路由前缀、下一跳TNP路由信息以及用于CPE之间数据通道的数据加密所需要的IPSec相关密钥等信息。

CPECustomer Premise Equipment,客户终端设备

1.(简答题)请简述EVPN的原理和常见的路由类型。

EVPNMP-BGP的扩展,常见有五种路由类型,被用于作为L2或者L3隧道的控制平面。

2.(简答题)请简述EVPN的应用场景。

EVPN 可以被广泛用于企业全场景,例如 SD-WAN 、园区网、数据中心和广域网。在数据中心和园区中, EVPN VXLAN 结合构建业务 Overlay 。在 SD-WAN 场景中 EVPN IPSec 结合构建企业分支互联网络。在广域网中 EVPN 可以与各种底层隧道 / 标签技术结合,例如 MPLS/SR/VPLS/VPWS 等。

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

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

相关文章

企业数据,大语言模型和矢量数据库

随着ChatGPT的推出,通用人工智能的时代缓缓拉开序幕。我们第一次看到市场在追求人工智能开发者,而不是以往的开发者寻找市场。每一个企业都有大量的数据,私有的用户数据,自己积累的行业数据,产品数据,生产线…

MySQL数据库分库分表备份(shell脚本)

创建目录 mkdir /server/scripts 一、使用脚本实现分库备份 1、创建脚本并编写 [rootlocalhost scripts]# vim bak_db_v1.sh #!/bin/bash ######################################### # File Name:bak_db_v1.sh # Version: V1.0 # Author:Shen QL # Email:17702390000163.co…

Vue2基础十、Vuex

零、文章目录 Vue2基础十、Vuex 1、vuex概述 (1)vuex是什么 vuex 是一个 vue 的 状态管理工具,状态就是数据。大白话:vuex 是一个插件,可以帮我们管理 vue 通用的数据 (多组件共享的数据) 例如:购物车数…

驱动_阻塞io内核实现

相关API 1.定义等待队列头 wait_queue_head_t wq_head; 2.void init_waitqueue_head(struct wait_queue_head *wq_head) 功能:用于初始化一个等待队列 参数: wq_head:等待队列头节点指针 返回值:无3.wait_event(wq_head, condition) 功能&am…

Antd DatePicker 日期选择框设置中文不生效

Antd 版本:4.21.6 moment 版本: 2.29.4 这里是 Antd 官网对于日期选择框国际化配置的说明 我是对 DatePicker 单独进行配置,而没有使用全局配置,但是发现代码未生效。 后来发现问题在于引入的路径有误,如下&#xf…

Python中字符串拼接有哪些方法

目录 什么是字符串拼接 为什么要进行字符串拼接 Python中字符串拼接有哪些方法? 什么是字符串拼接 字符串拼接是将多个字符串连接在一起形成一个新的字符串的操作。在编程中,字符串拼接经常用于将不同的字符串组合在一起,以创建更长或更有…

GO语言日志切割 + 记录调用源

准备工作 日志记录对程序排查问题比较关键,记录下GO中日志选择,从以下出发点考虑: 日志文件能自动切割,以免过大能记录从哪个文件哪行代码调用的,方便排查问题配置简单明了库文件使用人数较多,稳定 经过一段…

一大波涨姿势的小众网站,带你解锁新大陆!

夏日炎炎,给大家分享20个涨姿势的小众网站,打开你的新世界大门! 1、电台公园 http://radio.garden/ 可以收听到世界各地的电台,在世界地图上选一个绿点,就可以收听当地的电台了。 2、下载 4K 画质 Bing 壁纸 https…

[OnWork.Tools]系列 03-软件设置

主题设置 点击右上角的设置按钮 可以切换为深色模式 系统设置 点击设置 开机自动运行: 开机自动启动 关闭最小化: 点击右上角关闭按钮时最小化到托盘 快捷键设置: 快速唤醒/隐藏界面 默认为AltO 关于 可以快速打开文件夹,方便调试使用

0-超级计算机

超级计算机 概述主要特点处理能力并行处理大规模存储应用领域能耗云超算 中国超算流行体系结构片内异构节点内异构 概述 当谈到超级计算机时,我们指的是性能超高、处理能力强大的计算机系统。 它们通常由数以千计的处理器核心组成,并具备大规模的内存和…

初识mysql数据库之事务的概念及操作

目录 一、数据库多客户端访问问题 1. 数据库的CURD无限制带来的问题 2. 如何解决CURD导致的问题 二、事务的概念 1. 什么是事务 2. 事务的四个属性 3. mysql对事务的管理 4. 为什么会有事务 5. 事务的版本支持 三、事务的操作 1. 事务提交方式 2. 事务操作的准备工…

力扣简单1道_两数之和

两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序…

【面试题】芯片中的IR drop现象是什么?

这里是尼德兰的喵芯片面试相关文章,欢迎您的访问! 如果文章对您有所帮助,期待您的点赞收藏,也欢迎您对文中存在的问题和疑惑进行评论 此外,gitee仓库尼德兰的喵 (gjm9999) - Gitee.com与微信公众平台也期待您的访问 让我们一起为芯片前端全栈工程师而努力!!!! 今天突然…

matlab Tabel操作

https://zhuanlan.zhihu.com/p/104266351 Table数据类型的引用要三点要注意: 1){}–花括号(curly braces),()–小括号(parentheses), .–圆点(dot)对Table类型数据的作用…

架空线接地故障测试仪

一、凯迪正大架空线路接地故障定位仪产品概述 KDJK-10A只能在线路发生故障停运后进行故障定位,由发射机向故障线路施加高压将故障复现,超低频电流由发射机流向故障点,经过渡电阻进入大地并流回发射机;在线路沿线,将传…

Python的包安装工具——pip命令大全

对于大多数使用Python的人来说&#xff0c;一定知道pip这个包安装工具&#xff0c;但是对pip可能还不是很了解&#xff0c;今天作者给大家介绍一下pip的命令&#xff0c;以方便灵活使用pip。 一、pip工具使用方法 pip的语法如下&#xff1a; pip <command> [options] 式中…

elementPlus dialog组件设置可拖动,当内容高度大于视口高度拖动显示异常的解决办法

elementPlus UI的dialog弹框组件在设置了draggable属性后就可拖动弹框&#xff0c;但是当弹框的内容高度大于视口高度时去拖动弹框就会出现显示问题。 解决办法&#xff08;修改源码&#xff09; 去node_modules下面找到element-plus文件夹&#xff0c;按照以下路径修改onMou…

使用 monaco-editor-nls 汉化 右键菜单汉化部分失败原因

首先使用npm或者其他包管理工具安装依赖插件&#xff1a; npm install monaco-editor --save npm install monaco-editor-nls --save npm install monaco-editor-webpack-plugin --save npm install monaco-editor-esm-webpack-plugin --save-dev如果右键菜单汉化一部分失败&a…

宋浩高等数学笔记(八)向量代数与空间解析几何

本章知识点并不难理解&#xff0c;但是公式与名词属于非常多&#xff0c;记忆时需重点对待。

基于pytest的主流POM模式——测试框架的设计与实现

1、POM设计模式 ——页面对象模型&#xff08;Page object Modules&#xff09;&#xff0c;又名&#xff1a;PO/POM&#xff0c;是UI自动化最佳设计模式之一。把一个页面的测试用例&#xff0c;测试逻辑&#xff0c;封装为一个测试方法或者一个测试类&#xff08;说白了&…