九、BGP路由属性和选路

目录

一、属性分类

1.1、公认属性

1.2、可选属性

二、选路原则

0、丢弃不可达

取值越大越优

1、Preferred-Value

2、Local_Preference

取值越小越优

3、路由优先级

4、AS_Path

5、Origin

6、MED

7、路由来源

8、Next_Hop的IGP度量值

BGP路由等价负载分担:以上8条属性全部相同时可以形成路由负载分担

9、Cluster_List

10、Router ID(Orginator_ID)

11、IP地址


        BGP邻居之间传递的是路由信息,不是拓扑信息,所以无法防环等

一、属性分类

1.1、公认属性

        所有BGP路由器都必须能够识别的属性

        1、公认必遵
        Origin
        Local_Preference
        AS_Path   

        所有BGP设备都要认识这一类属性;

        而且这类属性必须存在于Update报文中;

        如果缺少这类属性,update报文不完整, 路由信息会出现错误;

        2、公认任意
        Atomic_aggregate
        Next_hop

        所有BGP设备认识此类属性

        这类属性不要求必须存在于Update报文中(可以在,也可以不在);

        如果缺少这类属性,路由信息不会出现错误;

1.2、可选属性

        可选属性不需要都被BGP路由器所识别

        1、可选过渡:BGP设备不识别此类属性依然会接受该类属性并通告给其他对等体
        MED
        Cluster-List
        Originator-ID

        所有BGP设备可以认识,也可以不认识此类属性;

        如果不认识,但仍然会接收此类属性,并且会通告给邻居;

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

        所有BGP设备都可以认识,也可以不认识此类属性(可以认识,也可以不认识);

        如果不认识,会忽略此类属性,而且不会通告邻居。

二、选路原则

        IGP选路在AS内选路,BGP选路是在宏观AS层面选出口。

        当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:

0、丢弃不可达

        丢弃下一跳不可达的路由。

取值越大越优

1、Preferred-Value

        优选Preferred-Value(权重)属性值最大的路由,默认为0。     

        本地设备,只影响自己,也就是说,如果想要来自某邻居的路由被优选,就在本地设备上把邻居的权重增大,是一个入向策略。

bgp 200
    ##修改对等体3.3.3.3发布的路由权重为12
    ##在接收路由设备上配置
    peer 3.3.3.3 preferred-Value 1
给某些路由设置属性值
第一步:抓路由
##将10.0.45.0 24抓出来
ip ip-pretix l permit 10.0.45.0 24

第二步:写策略
route-policy fromR3 permit node 10
    ##如果匹配ip-prefix 1,应用preferred-value 1并执行permit
    if-match ip-prefix 1
    apply preferred-value 1
##默认其他拒绝,则允许所有
route-policy fromR3 permit node 100

第三步:调用
bgp 200
    ##入方向上对对等体3.3.3.3运行策略fromR3
    peer 3.3.3.3 route-policy fromR3 import

2、Local_Preference

        优选Local_Preference属性值最大的路由,默认为100。

        仅限AS内,即IBGP内有效,只发给IBGP邻居。

        决定流量从哪个边界(ASBR)出本AS。

        为ASBR设计冗余减轻负担使用。

        如上图,R1会分别收到来自R2的BGP路由10.0.45.0/24+172.16.45.0/24和来自R3的BGP路由10.0.45.0/24+172.16.45.0/24

##R3
bgp 200
    ##修改R3的本地优先属性值为130
    default local-preference 130

       在R3设置完本地优先后,R2上来自R4的BGP路由10.0.45.0/24+72.16.45.0/24,因为EBGP没有Local_Preference,所以默认为100,而此时来自R3的10.0.45.0/24+172.16.45.0/24的本地优先属性为130,所以R2优选了来自R3的路由,也就是说此时在R2上10.0.45.0/24+172.16.45.0/24的下一跳为3.3.3.3,优选了R3的路由后就不会传递给R1了,因为II不传。那下一跳为24.1.1.4的EBGP路由会发送给R1么?不会!因为BGP只发最佳路径。所以R1上看不到来自R2的BGP路由。10.0.45.0/24+72.16.45.0/24。

        如果想让R2还给R1发布10.0.45.0/24+172.16.45.0/24的路由,可以将下一跳为24.1.1.4的EBGP路由Preferred-Value属性增大变为优选路由。

##R3
给某些路由设置属性值
第一步:抓路由
##将10.0.45.0 24抓出来
ip ip-pretix l permit 10.0.45.0 24

第二步:写策略
route-policy toR1 permit node 10
    ##如果匹配ip-prefix 1,应用local-preference 130并执行permit
    if-match ip-prefix 1
    apply local-preference 130
##默认其他拒绝,则允许所有
route-policy toRl permit node 100

第三步:调用
bgp 200
    ##出方向上对对等体1.1.1.1运行策略fromR3
    peer 1.1.1.1 route-policy toR1 export

取值越小越优

3、路由优先级

        本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。

        本地设备,只影响自己。


        手动聚合:R2中的BGP路由如上,对10.0.44.0/24和10.0.45.0/24进行聚合

##R2
bgp 200
    aggregate 10.0.0.0 16

        如上图,可以发现聚合后的路由下一跳为127.0.0.1为本地环回地址,代表聚合路由,并且明细路由仍然有效,并发送至邻居。如果觉得不需要发送,配置如下:

##R2
bgp 200
    ##加上detail-suppressed就不会给邻居发明细路由,只发聚合路由
    aggregate 10.0.0.0 16 detail-suppressed

        自动聚合:一般不用

        因为自动聚合只能按照A类/8、B类/16、C类/24聚合,范围太大

ip route-static 10.0.45.0 255.295.255.128 null0
ip route-static 10.0.45.128 255.255.255.128 null0
bgp 200
##自动聚合
    summary automatic
    import-route static

4、AS_Path

        优选AS_Path属性值最短的路由。

        记录前往目标网络的路由经过的AS号列表

        作用:防环

        注意:

  1. 只在发给EBGP邻居时添加新AS号信息,IBGP邻居之间传递不变。
  2. 修改AS_Path时只能在EBGP邻居之间改。

        使用Route-Policy修改BGP路由的AS_Path属性时,可以使用以下三种方式:

        增加AS:为避免增加AS导致路由不可达,建议增加本AS

        AS_Path:100—>apply as-path 100 additive—>AS_Path:100 100

        替换AS:有可能导致环路

        AS_Path:300 200 100—>apply as-path 400 overwrite—>AS_Path:400

        清空AS:有可能导致环路        

        AS_Path:300 200 100—>apply as-path none overwrite—>AS_Path:

第一步:抓路由
ip ip-prefix 172 index 10 permit 172.16.45.0 24
第二步:写策略
route-policy fromR4 permit node 10
    if-match ip-prefix 172
    apply as-path 100 additive
route-policy fromR4 permit node 100
第三步:调用
bgp 200
    peer 24.1.1.4 route-policy fromR4 import

5、Origin

        优选Origin起源属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。

起源名称        标记描述
IGPi如果路由是由始发的BGP路由器使用network命令注入到BGP的,那么该
BGP路由的Origin属性为IGP
EGPe如果路由是通过EGP学习到的,那么该BGP路由的Origin属性为EGP
Incomplete?如果路由是通过其他方式学习到的,则Origin属性为Incomplete(不完整
的)。例如通过import-route命令引入到BGP的路由

6、MED

        优选MED(开销)属性值最小的路由;

        设计MED的目的:建议邻居AS(跨AS无法影响)的选路,并不是决定AS的选路;

        对于始发者,MED可以传给所有邻居保持不变;

        对于接收者,MED只能传给IBGP邻居不变,传递给EBGP邻居时为空;

        在ASBR配置策略,作为MED始发起作用;

        来自相同AS的路由才会比较MED。

第一步:抓路由
ip ip-prefix 172 index 10 permit 172.16.45.0 24
第二步:写策略
route-policy fromR4 permit node 10
    if-match ip-prefix 172
    apply cost 4
route-policy fromR4 permit node 100
第三步:调用
bgp 200
    peer 24.1.1.2 route-policy fromR4 export

7、路由来源

        优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。

8、Next_Hop的IGP度量值

        优选到Next_Hop的IGP度量值最小的路由。

        到达比较第8条时,前7条都一样,按照第7条,那么两条路由要么都是IBGP,要么都是EBGP,IBGP比内部开销,EBGP因为都是直连开销一般为0,无法对比出结果。

BGP路由等价负载分担:以上8条属性全部相同时可以形成路由负载分担

BGP路由等价负载分担(ECMP)
        在大型网络中,到达同一目的地通常会存在多条有效BGP路由,设备只会优选一条最优的BGP路由,将该路由加载到路由表中使用,这一特点往往会造成很多流量负载不均衡的情况。
        通过配置BGP负载分担,可以使得设备同时将多条等代价的BGP路由加载到路由表,实现流量负载均衡,减少网络拥塞。
        值得注意的是,尽管配置了BGP负载分担,设备依然只会在多条到达同一目的地的BGP路由中优选一条路由,并只将这条路由通告给其他对等体。
        在设备上使能BGP负载分担功能后,只有满足条件的多条BGP路由才会成为等价路由,进行负载分担。

        形成BGP路由等价负载分担的条件

  1. Preferred-Value属性值相同。
  2. Local_Preference属性值相同。
  3. 都是聚合路由或者非聚合路由。
  4. AS_Path属性长度相同。
  5. Origin类型(IGP、EGP、Incomplete)相同。
  6. MED属性值相同。
  7. 都是EBGP路由或都是IBGP路由。
  8. AS内部IGP的Metric相同。
  9. AS_Path属性完全相同。
bgp 200
    maximum load-balancing ibgp 2
    ##忽略AS号不一致
    load-balancing as-path-ignore

9、Cluster_List

        优选Cluster_List最短的路由;

        簇ID列表,类似水印。

        R2发送给R1的路由,经过R1反射给R3时除了添加Originator_ID之外还会添加Cluster_List:10.0.1.1。R3再次反射给R4时,Cluster_List值为:10.0.3.3 10.0.1.1,R4再次反射给R1时Cluster_List值:10.0.4.4 10.0.3.3 10.0.1.1。
        当R4将路由反射给R1时,R1发现Cluster_List包含了自身Cluster_ID,判断存在环路,从而忽略该路由更新。

10、Router ID(Orginator_ID)

        优选Router ID(Orginator_ID)最小的设备通告的路由。

        9、10条跟反射器有关。

        Originator_ID:发起者ID;

        将R1的router-id写在R2发给R1的路由条目中,反射器R2收到后将router-id改写为OID属性:2.2.2.2,且反射给R3时OID仍为2.2.2.2,R3收到后与自己router-id比较,一致丢弃,不一致传递。当同一AS内有多个RR,OID由第一个RR为路由条目写上OID。        

11、IP地址

        优选具有最小IP地址的对等体通告的路由。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

流媒体传输协议HTTP-FLV、WebSocket-FLV、HTTP-TS 和 WebSocket-TS的详细介绍、应用场景及对比

一、前言 HTTP-FLV、WS-FLV、HTTP-TS 和 WS-TS 是针对 FLV 和 TS 格式视频流的不同传输方式。它们通过不同的协议实现视频流的传输,以满足不同的应用场景和需求。接下来我们对这些流媒体传输协议进行剖析。 二、传输协议 1、HTTP-FLV 介绍:基于 HTTP…

雷击保险丝选取

雷击保险丝的估算方法: 1、雷击浪涌实验规定的差模内阻是 2欧姆:(一般差模都是2欧姆) 2、差模雷击浪涌实验等级的确定。 3、差模雷击L-N防雷电路的确定(估算防雷电路的钳位电压)。 4、估算防雷电路中保险丝的 I^2t 的值来确定…

如何从索尼存储卡恢复数据?

Sony 存储卡广泛用于在数码相机、数码摄像机等中存储照片和视频。如果您从 Sony 存储卡中删除重要数据而未备份,您仍然可以找回丢失的数据。实际上,已删除的视频/照片或文档不会永远丢失,它们仍存储在 Sony 存储卡上,可以通过数据…

计算机组成原理之定点乘法运算

文章目录 原码并行乘法与补码并行乘法原码算法运算规则存在的问题带符号的阵列乘法器习题原码阵列乘法器间接补码阵列乘法器直接补码阵列乘法器 补码与真值的转换 原码并行乘法与补码并行乘法 原码算法运算规则 存在的问题 理解流水式阵列乘法器(并行乘法器&#x…

会声会影色彩校正在哪里 会声会影色彩素材栏在哪 会声会影中文免费版下载

会声会影是一款功能强大的视频编辑软件,它可以帮助用户轻松地编辑和制作视频。在进行视频编辑时,色彩校正是一个重要的步骤,它可以调整视频的色调、亮度和对比度等参数,使视频更加生动和鲜明。在会声会影中,色彩校正功…

C#(C Sharp)学习笔记_封装【十八】

什么是封装? 封装是面向对象思维的三大特性之一。封装是将数据和对数据进行操作的函数绑定到一起的机制。它隐藏了对象的内部状态和实现细节,只对外提供必要的接口,从而确保对象内部状态的完整性和安全性。封装的主要目的是增强安全性和简化…

【教学类-64-02】20240610色块眼力挑战(二)-2-25宫格色差10-100(10倍)(星火讯飞)

背景需求 以下的色块眼里挑战需要人工筛选图片,非常繁琐。 【教学类-64-01】20240607色块眼力挑战(一)-0-255随机底色-CSDN博客文章浏览阅读446次,点赞12次,收藏5次。【教学类-64-01】20240607色块眼力挑战&#xff…

C语言——自定义类型:结构体

前言 本篇博客位大家介绍C语言中一块儿重要的内容,那就是结构体,关于结构体的内容,大家需要深入掌握,在后面的学习中依然会用到,如果你对本文感兴趣,麻烦点进来的老铁一键三连。多多支持,下面我…

食家巷助力“甘肃乡村振兴,百强主播·打call 甘味”活动

2024年,甘肃省“商务乡村振兴”促消费暨“百强主播打call 甘味”活动在天水市龙城广场盛大启动。 活动现场,来自甘肃省 14 个市州的农特产品展台琳琅满目,让人目不暇接。此次活动中,各企业带来了多款深受消费者喜爱的产品&a…

【C++提高编程-06】----C++之STL-函数对象、谓词、仿函数

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

这 10 种架构师,不合格!

大家好,我是君哥。 架构师这个岗位是好多程序员努力的方向,尤其是刚毕业的时候,对架构师有一种崇拜感。毕竟从初级到架构要经历好几次级别飞跃。 工作时间久了,发现架构师这个岗位,其实定义非常广泛,根据工…

linux 部署瑞数6实战(维普,药监局)sign第二部分

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx …

如何通过在线封装APP快速上线?小猪APP分发帮你解决难题

你是否曾经为了上线一款APP而头疼不已?开发完成后,封装、测试、分发,这些繁琐的步骤让人望而却步。别担心,小猪APP分发来了!这篇文章将带你了解如何通过在线封装APP快速上线,并且告诉你为什么选择小猪APP分…

[Linux] TCP协议介绍(3): TCP协议的“四次挥手“过程、状态分析...

TCP协议是面向连接的 上一篇文章简单分析了TCP通信非常重要的建立连接的"三次握手"的过程 本篇文章来分析TCP通信中同样非常重要的断开连接的"四次挥手"的过程 TCP的"四次挥手" TCP协议建立连接 需要"三次握手". "三次挥手&q…

Postman下发流表至Opendaylight

目录 任务目的 任务内容 实验原理 实验环境 实验过程 1、打开ODL控制器 2、网页端打开ODL控制页面 3、创建拓扑 4、Postman中查看交换机的信息 5、L2层流表下发 6、L3层流表下发 7、L4层流表下发 任务目的 1、掌握OpenFlow流表相关知识,理解SDN网络中L…

飞书API 2-1:如何通过 API 创建文件夹?

本文探讨如何通过飞书的 API 来创建文件夹。通过 API 创建的文件夹,一般是放在共享空间,如果要放在个人空间,建议手动创建。 查看 API 文档 API 路径,可在飞书开放平台的服务端 API,依次查找云文档>云空间>文件…

javaWeb项目-springboot+vue人事管理系统功能介绍

本项目源码:java-springbootvue人事管理系统源码说明文档资料资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot…

高级人工智能复习 题目整理 中科大

题目整理 填空 1.准确性,复杂性,验证集 2. 3 2 n 3^{2^n} 32n 3 C 2 n m 3^{C^m_{2n}} 3C2nm​ 3 m 3^m 3m n 1 n1 n1 3. 状态 从状态s采取行动a后继续采用策略 π \pi π的收益 环境 4. 语法 语义 推理规则 5. 参与者,策略集&#xff…

算法排序之冒泡排序及优化

public class Bubbling {public static void main(String[] args) {// 定义需要排序的数组int[] arr {0,1,21,2,31,12,5,8};// 冒泡排序方法bubbleSort(arr);bubbleOptSort(arr);}/*** 冒泡排序* param arr 数组*/public static void bubbleSort(int[] arr){// i0,…

【C语言】解决C语言报错:Format String Vulnerability

文章目录 简介什么是Format String VulnerabilityFormat String Vulnerability的常见原因如何检测和调试Format String Vulnerability解决Format String Vulnerability的最佳实践详细实例解析示例1:直接使用不受信任的输入作为格式化字符串示例2:未验证格…