BGP路径属性与路由反射器

BGP路径属性

路径属性:

任何一条BGP路由都拥有多个路径属性

当路由器将BGP路由通告给它的对等体时,一并被通告的还有路由所携带的各各路径属性

BGP的路径属性将影响路由优选

路径四个属性分类:

公认必遵:必须包括在每个update消息里

公认任意:可能包括在某些Update消息里

可选过渡:BGP设备不识别此类属性依然会接收该类属性并通告给其他对等体

可选非过渡:BGP设备不识别此类属性会忽略该属性,且不会通告给其他对等体

AS_Path:

该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表

作用:确保路由在EBGP对等体之间传递无环,也是路由优选的衡量标准之一

路由被通告给EBGP对等体,会在AS_Path上追加上本地AS号,通告给IBGP则不需要

AS_Path防止环路和影响路由优选:

不接受所携带AS_Path数值与本身相同的BGP Update

这个区别OSPF的开销,而是用路由的AS_Path属性值判断,从而判断AS号的个数,个数少的优先

AS_Path的常用类型:

AS_seqence :默认情况下的一个有序列表,比如 200 100

AS_set : 由于路由聚合会使AS_Path属性丢失,有产生环路风险,就需要配置as-set参数,聚合路由会用集合表示as path, 300 {100,200}

使用路由策略修改as_path属性:

addtive : apply as-path 300 additive--------------------原AS_Path上追加

overwrite :apply as-path 400 overwrite--------------原AS_Path替换成新的值

none overwrite : apply as-path none overwrite------清空

Origin :

该属性为公认必遵属性,它标识了BGP路由的起源

network命令注入BGP, 路由的Origin属性为IGP

通过EGP学习到的,路由的Origin属性为EGP

其他方式学习,Origin属性为Incomplete

其他条件都相同的情况下,优选路由的顺序:IGP > EGP > Incomplete

display bgp routing-table

Next_Hop

公认必遵属性,用于指定到达目标网络的下一跳地址

缺省Next_Hop属性值的设置规则:

路由器在向E/IBGP对等体发布路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址

路由器在收到EBGP对等体所通告的BGP路由后,在将路由传递给自己的IBGP对等体时,会保持路由的Next_Hop属性值不变

路由器在收到EBGP对等体所通告的BGP路由后 , Next_Hop与eBGP同属一个网段,Next_Hop地址将保持不变并传递给它的BGP对等体

Local_Preference:

即本地优先级,属于公认任意属性,用于告诉AS中的路由器离开本AS的首选路径

属性值越大则BGP路由越优。缺省的Local_Preference值为100

该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体

Local_Preference注意事项:

如果不做策略,之内在IBGP对等体间传递

可以在AS边界路由器上使用Import方向的策略来修改Local_Preference属性值

路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但是对方接收路由之后,会在本地为这条路由赋一个缺 省Local_Preference值(100),然后再将路由传递给自己的IBGP对等体

Community:

目的:是提高网络的效率

可选过渡属性,是一种路由标记,简化路由策略的执行

公认Community属性:

no-export--收到这个标记的路由不会将它传给下一个EBGP邻居(联邦假性质EBGP邻居不包含在内)

No-advertise——收到这个标记的路由不传给任何BGP邻居包含EBGP和IBGP

Internet——可以发给任何BGP邻居

Local-AS——同NO-export,但是他比no-export厉害之处是联邦内的EBGP邻居都不会传过去

MED:

多出口鉴别器,是可选非过渡属性,指出外部对等体进入本AS的优选路径,主要用于在AS之间影响BGP的选路

MED属性值越小则BGP路由越优

注意事项:

如果去往同一个目的的两条路由来自不同的相邻AS,不进行MED比较(不同AS),MED不会跨AS传递

如果该BGP路由是由network命令注入的,缺省携带MED属性发送给EBGP对等体

如果该BGP路由为从BGP对等体学习到,那么该路由传递给EBGP对等体时缺省不会携带MED属性

如果路由器将本地直连、静态路由通过networkimport-route的方式引入BGP,那么这条BGP路由的MED为0,因为直连、静态路 由cost为0

如果不部署策略,在IBGP对等体之间传递路由不会改变MED的值

Atomic_Aggregate和Aggregator

如果上游的路由丢失路径属性,Aggregate作为一种预警标识,告诉下游对等体,保留该路由的Aggregate属性

Aggregator属性用于标记路由聚合行为发生在哪个AS及哪台BGP路由器上

BGP路由反射器

中转AS中的BGP问题:因水平分割问题,要使AS内的路由互联,IBGP需要全互联

路由器需要维护大量的TCP和BGP连接

AS内BGP网路的可扩展性差

路由反射技术:解决AS中的IBGP问题

路由反射技术也可以解决因为水平分割而导致路由不可达的问题

引入路由反射器RR和客户端Client两种角色,指定RR时需要为其指定Client

RR接收BGP路由时:

首先区分:传送只是传,不存在其他操作,反射会将路由插入自己特殊的路径属性

从非客户对等体学习IBGP路由,将该路由反射给所有客户

从客户A学习到IBGP路由,将该路由反射给所有非客户和其他客户A,B,C....

学习到EBGP路由,发送给所有客户、非客户的IBGP对等体

RR场景下的路由防环:

RR的设定会让水平分割原则失效,可能导致环路

使用Originator_ID、Cluster_List两种可选过渡类型来避免出现环路,在反射时执行

Originator_ID:

RR将在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器Router ID

若AS内存在多个RR,则Originator_ID属性由第一个RR创建,并且不被后续的RR所更改

被发射路由的发送者收到反射路由后,会比对后,然后自行丢弃(用于控制发送者防环)

Cluster_List:路由反射簇-列表

当一条路由被反射器反射后,该RR(该簇)的Cluster_ID就会被添加至路由的Cluster_list属性中(用于控制反射者防环)

以上笔记于华为有限技术公司学习资源和网络平台资源总结

如有问题,谢谢指正

笔者个人总结:

前期的网路技术并不是最好和最完善的,而是经过了不断探索和改进,但又显得比较杂乱

水平分割本身是防环的,却又导致了EBGP路由不可达的问题,这就要让IBGP全互联,但这又会导致资源浪费问题,于是又出现了路由 反射技术,这项技术本身又会带来环路问题,所有又需要用Originator_ID、Cluster_List来避免环路

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

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

相关文章

C语言期末考试——重点考点

目录 1.C语言的结构 2.三种循环结构 3.逻辑真假判断 4. printf函数 5. 强制类型转化 6. 多分支选择结构 7. 标识符的定义 8. 三目运算符 1.C语言的结构 选择结构、顺序结构、循环结构 2.三种循环结构 for、while、do-while 3.逻辑真假判断 C语言用0表示false,用非0(不…

ci/cd配置任务超时时间

有两个地方决定了任务超时时间: 1. 2.gitlab-runner

JUC:Synchronized和锁升级

1. 面试题 谈谈你对Synchronized的理解Sychronized的锁升级你聊聊Synchronized实现原理,monitor对象什么时候生成的?知道monitor的monitorenter和monitorexit这两个是怎么保证同步的嘛?或者说这两个操作计算机底层是如何执行的偏向锁和轻量级…

梯度下降法以及 Python 实现

文章目录 1. 引言2. 梯度法3. 例子4. 代码实现5. 讨论 — 学习率 η \eta η5.1 当 η \eta η 设置过大5.2 当 η \eta η 设置过小 参考 1. 引言 梯度下降法,可以根据微分求出的斜率计算函数的最小值。 在人工智能中,经常被应用于学习算法。 2. 梯…

OpenCV-图像阈值

简单阈值法 此方法是直截了当的。如果像素值大于阈值,则会被赋为一个值(可能为白色),否则会赋为另一个值(可能为黑色)。使用的函数是 cv.threshold。第一个参数是源图像,它应该是灰度图像。第二…

详细了解IO分类

按照数据流方向如何划分? 输入流(Input Stream):从源(如文件、网络等)读取数据到程序。 输出流(Output Stream):将数据从程序写出到目的地(如文件、网络、控…

Appium 安装问题汇总

好生气好生气,装了几天了, opencv4nodejs 和 mjpeg-consumer 就是装不了,气死我了不管了,等后面会装的时候再来完善,气死了气死了。 目录 前言 1、apkanalyzer.bat 2、opencv4nodejs 3、ffmpeg 4、mjpeg-consume…

目标检测知识点总结

1、数据增强 2、指标 3、vit 、swint ViT算法,创新性地将图像划分成一个个patch,并将每个patch展平为一个向量,使得图像数据转化为序列化数据,之后输入到Transformer模型中,实现了Transformer在图像分类任务中的应用。…

Lecture 11 - List,Set,Map

List, Set and Map are all interfaces: they define how these respective types work, but they don’t provide implementation code overview 1. List(列表): (1) 创建、访问和操作列表:ArrayList …

ElfBoard开源项目|基于百度智能云平台的车牌识别项目

本项目基于百度智能云平台,旨在利用其强大的OCR服务实现车牌号码的自动识别。选择百度智能云的原因是其高效的API接口和稳定的服务质量,能够帮助开发者快速实现车牌识别应用。 本项目使用摄像头捕捉图像后,通过集成百度OCR服务的API&#xf…

应对超声波测试挑战,如何选择合适的数字化仪?

一、数字化仪的超声波应用 超声波是频率大于人类听觉范围上限的声学声压(声学)波。超声波设备的工作频率为20 kHz至几千MHz。表1总结了一些更常见的超声波应用的特征。 每个应用中使用的频率范围都反映了实际情况下的平衡。提高工作频率可以通过提高分…

product/admin/list?page=0size=10field=jancodevalue=4562249292272

文章目录 1、ProductController2、AdminCommonService3、ProductApiService4、ProductCommonService5、ProductSqlService https://api.crossbiog.com/product/admin/list?page0&size10&fieldjancode&value45622492922721、ProductController GetMapping("ad…

博物馆导览系统方案(一)背景需求分析与核心技术实现

维小帮提供多个场所的室内外导航导览方案,如需获取博物馆导览系统解决方案可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~撒花! 一、博物馆导览系统的背景与市场需求 在数字化转型的浪潮中,博物馆作为文化传承和知…

Flink学习连载文章11--双流Join

双流 Join 和两个流合并是不一样的 两个流合并:两个流变为 1 个流 union connect 双流 join: 两个流 join,其实这两个流还是原来的,只是满足条件的数据会变为一个新的流。 可以结合 sql 语句中的 union 和 join 的区别。 在离线 Hive 中&…

vue3+wangeditor富文本编辑器详细教程

一、前言 在这篇教程中,我将指导如何使用 Vue 3 和 WangEditor 创建一个功能丰富的富文本编辑器。WangEditor 是一个轻量级的富文本编辑器,它非常适合集成到 Vue 项目中。这个例子展示了如何配置富文本编辑器,包括工具栏、编辑器配置以及如何…

Python学习39天

my_tools.py文件提供工具函数 """ 此文件编写工具函数,供程序员使用 my_tools """def read_confirm_select():"""让用户输入:Y/N,不区分大小写,将用户输入值转为小写返回&#xff…

LCA - Lowest Common Ancestor

LCA - Lowest Common Ancestor https://www.luogu.com.cn/problem/SP14932 题目描述 A tree is an undirected graph in which any two vertices are connected by exactly one simple path. In other words, any connected graph without cycles is a tree. - Wikipedia T…

unity打包web,发送post请求,获取地址栏参数,解决TypeError:s.replaceAll is not a function

发送post请求 public string url "http://XXXXXXXXX";// 请求数据public string postData "{\"user_id\": 1}";// Start is called before the first frame updatevoid Start(){// Post();StartCoroutine(PostRequestCoroutine(url, postData…

恒创科技:如何区分网站的域名主机名

如何区分网站的域名主机名?它们都是网址机制的一部分,当你在地址栏输入它们,就能访问互联网上想去的地方。你可曾思考过主机名和域名的区别呢? 简单来说,域名就像网址,而主机名用于标识网络中的设备。不过,这只是表面…

【技巧学习】ArcGIS如何计算水库库容量?

ArcGIS如何计算水库库容量? 一、数据获取 DEM数据来源于地理空间数据云,该网站是由中科院计算机网络信息中心于2008年创立的地学大数据平台。 二、填洼 将DEM数据中凹陷的区域填充至与倾斜点同样高度,这里的【Z限制】说的是设定一个特定的值&#x…