BGP 属性分类及路由优先级选择

news/2024/4/28 18:40:42/文章来源:https://blog.csdn.net/qq_30054403/article/details/128955070

BGP 属性分类及路由优先级选择

  • 一、常见BGP属性类型
    • 1、公认必遵属性(所有BGP路由器必须遵守的原则)
    • 2、公认可遵属性(所有路由器都能识别但不一定遵守)
    • 3、可选传递属性(不是所有BGP路由器都能识别,但是所有BGP都能传递)
    • 4、可选非传递属性(不是所有路由器都能识别,不能识别的BGP路由器就丢弃它)
  • 二、详细介绍
    • 1.Origin属性(公认必遵)
    • 2.AS_Path属性(公认必遵)
    • 3.Next_Hop属性(公认必遵)
    • 4.Local_Pref属性(公认可遵)
    • 5.团体属性(可选传递)
    • 6.MED属性(可选非传递)
    • 7.Originator_ID属性和Cluster_List属性(可选非传递)
  • 三、BGP选择路由优先级规则
    • 1.优选协议首选值(PrefVal)最高的路由。
    • 2.优选本地优先级(Local_Pref)最高的路由。
    • 3.依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。
    • 4.优选AS路径(AS_Path)最短的路由。
    • 5.依次优选Origin类型为IGP、EGP、Incomplete的路由。
    • 6.对于来自同一AS的路由,优选MED值最低的路由。
    • 7.依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。
    • 8.优选到BGP下一跳IGP度量值(metric)最小的路由。
    • 9.优选Cluster_List最短的路由。
    • 10.优选Router ID最小的设备发布的路由。
    • 11.优选从具有最小IP Address的对等体学来的路由。


一、常见BGP属性类型

路由属性是对路由的特定描述,所有的BGP路由属性都可以分为以下4类

1、公认必遵属性(所有BGP路由器必须遵守的原则)

Origin、AS-Path 、Next hop

2、公认可遵属性(所有路由器都能识别但不一定遵守)

Local-Preference、Atomic_Aggregate

3、可选传递属性(不是所有BGP路由器都能识别,但是所有BGP都能传递)

Community、 Aggregator

4、可选非传递属性(不是所有路由器都能识别,不能识别的BGP路由器就丢弃它)

MED、Originator_ID、Cluster_list、Weight

二、详细介绍

1.Origin属性(公认必遵)

说明:Origin属性用来定义路径信息的来源,标记一条路由是怎么成为BGP路由的
它有以下3种类型
IGP:具有最高的优先级。通过network命令注入到BGP路由表的路由,其Origin属性为IGP。
EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
Incomplete:优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。

2.AS_Path属性(公认必遵)

AS_Path属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号;在接收路由时,设备如果发现AS_Path列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路。
①当BGP Speaker传播自身引入的路由时:
当BGP Speaker将这条路由通告到EBGP对等体时,便会在Update报文中创建一个携带本地AS号的AS_Path列表。
当BGP Speaker将这条路由通告给IBGP对等体时,便会在Update报文中创建一个空的AS_Path列表。
②当BGP Speaker传播从其他BGP Speaker的Update报文中学习到的路由时:
当BGP Speaker将这条路由通告给EBGP对等体时,便会把本地AS编号添加在AS_Path列表的最前面(最左面)。收到此路由的BGP设备根据AS_Path属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。
当BGP Speaker将这条路由通告给IBGP对等体时,不会改变这条路由相关的AS_Path属性。

3.Next_Hop属性(公认必遵)

Next_Hop属性记录了路由的下一跳信息。BGP的下一跳属性和IGP的有所不同,不一定就是邻居设备的IP地址。
Next_Hop属性遵循下面的规则:
BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。

4.Local_Pref属性(公认可遵)

Local_Pref属性表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。
当BGP的设备通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。
Local_Pref属性仅在IBGP对等体之间有效,不通告给其他AS。Local_Pref属性可以手动配置,如果路由没有配置Local_Pref属性,BGP选路时将该路由的Local_Pref值按缺省值100来处理。

5.团体属性(可选传递)

团体属性(Community)用于标识具有相同特征的BGP路由,使路由策略的应用更加灵活,同时降低了维护管理的难度。
团体属性分为自定义团体属性和公认团体属性。
公认团体属性如表所示
在这里插入图片描述

6.MED属性(可选非传递)

MED(Multi-Exit Discriminator)属性用于判断流量进入AS时的最佳路由,当一个运行BGP的设备通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。
MED属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS。
MED属性可以手动配置,如果路由没有配置MED属性,BGP选路时将该路由的MED值按缺省值0来处理。

7.Originator_ID属性和Cluster_List属性(可选非传递)

Originator_ID属性和Cluster_List属性用于解决路由反射器场景中的环路问题。

三、BGP选择路由优先级规则

1.优选协议首选值(PrefVal)最高的路由。

协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。

2.优选本地优先级(Local_Pref)最高的路由。

如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。

3.依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。

4.优选AS路径(AS_Path)最短的路由。

5.依次优选Origin类型为IGP、EGP、Incomplete的路由。

6.对于来自同一AS的路由,优选MED值最低的路由。

7.依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。

PE上某个VPN实例的VPNv4路由的ERT匹配其他VPN实例的IRT后复制到该VPN实例,称为LocalCross
从远端PE学习到的VPNv4路由的ERT匹配某个VPN实例的IRT后复制到该VPN实例,称为RemoteCross

8.优选到BGP下一跳IGP度量值(metric)最小的路由。

在IGP中,对到达同一目的地址的不同路由,IGP根据本身的路由算法计算路由的度量值

9.优选Cluster_List最短的路由。

10.优选Router ID最小的设备发布的路由。

如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由

11.优选从具有最小IP Address的对等体学来的路由。

BGP负载分担
当到达同一目的地址存在多条等价路由时,可以通过BGP等价负载分担实现均衡流量的目的。形成BGP等价负载分担的条件是“BGP选择路由的策略”的1至8条规则中需要比较的属性完全相同

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

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

相关文章

Dubbo3简单使用

Dubbo3简单使用 👉 使用Spring Boot实现Dubbo3,请参见以下地址。 # Dubbo3官网地址 https://cn.dubbo.apache.org/zh/# 使用SpringBoot实现Dubbo3的地址 https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/# 该项目的git地址…

【Spark分布式内存计算框架——Spark Core】3. RDD 创建、RDD函数(上)

2.4 RDD 分区数目 在讲解 RDD 属性时,多次提到了分区(partition)的概念。分区是一个偏物理层的概念,也是 RDD 并行计算的核心。数据在 RDD 内部被切分为多个子集合,每个子集合可以被认为是一个分区,运算逻…

ChatGPT使用

ChatGPT使用1使用全局模式2无痕模式3日期4短信平台5注册6使用ChatGPT1使用全局模式 因为后面注册时候的号码是印度尼西亚,所以这里我也选择印度尼西亚。 2无痕模式 打开浏览器无痕模式 由于后面网易都是英文,可以在无痕模式里面使用插件 3日期…

mycat学习

安装部署下载1:mycat2-install-template-1.21.zip下载2:mycat2-1.21-release-jar-with-dependencies.jar解压mycat2-install-template-1.21.zipunzip mycat2-install-template-1.21.zip把mycat2-1.21-release-jar-with-dependencies.jar放在mycat/lib中修…

Python列表的元素比较

在用python处理多个列表元素时,需要处理的信息一般比较多且杂。这时运用Python列表元素比较的方法,就能快速处理列表信息,能更轻松访问每个元素。1 问题如何运用Python列表的元素比较解决问题。2 方法方法一 for循环,此情况是list…

车道线检测-Eigenlanes 论文学习笔记

论文:《Eigenlanes: Data-Driven Lane Descriptors for Structurally Diverse Lanes》 代码:https://github.com/dongkwonjin/Eigenlanes 核心:在 Eigenlane Space 中检测车道线 创新点 Eigenlane:数据驱动的车道描述符&#xff…

VHDL语言基础-组合逻辑电路-基本逻辑门电路

数字电路中的四种基本操作是与、或、非及触发器操作,前三种为组合电路,后一种为时序电路。与非 、或非和异或的操作仍然是与、或、非的基本操作。与、或、非、与非、或非和异或等基本逻辑门电路为常用的门电路。 二输入与非门是一种常用的简单逻辑电路&a…

RabbitMQ 部署指南

RabbitMQ 部署指南RabbitMQ部署指南1.单机部署1.1.下载镜像1.2.安装MQ2.安装DelayExchange插件2.1.下载插件2.2.上传插件2.3.安装插件3.集群部署2.1.集群分类2.2.获取cookie2.3.准备集群配置2.4.启动集群2.5.测试2.5.1.数据共享测试2.5.2.可用性测试4.镜像模式4.1.镜像模式的特…

ant-design V4升级V5记录(成功篇)

官方文档:https://ant.design/docs/react/migration-v5-cn 1、安装运行工具之前,提交本地修改内容; 2、工具运行完,根据提示修改文件问题; 3、移除config文件中module, [import,{libraryName:antd, libr…

OpenResty(5):Openresty 模板渲染

1 导入lua-resty-template 下载 http://luarocks.org/modules/bungle/lua-resty-template 将template.lua文件复制到openresty/lualib/resty/目录下 2 示例 2.1 修改nginx.conf 设置模板路径:set $template_root /usr/local/openresty/nginx/html/templates; 设…

windows 重启redis的方法

目录打开本地的文件夹选中文件的路径输入cmd在cmd命令窗口中输入以下的指令指令的内容以及对应的命令含义前言:最近在本地搭建redis环境,突然发现本地的redis启动失败了,使用reids的启动命令也不行,于是找了不少的方法&#xff0c…

六、Linux文件 - lseek函数

目录 1.lseek函数 2.lseek函数实战 2.1宏SEEK_CUR的用法 2.2宏SEEK_END的用法 3.Open函数实战 - O_APPEND的用法 4.Linux在库函数中寻找相应的宏定义 1.lseek函数 off_t lseek(int fd,off_t offset,int whence);光标的偏移量 fd:文件描述符offset:偏移量whence: SEEK_…

Android Jetpack组件之WorkManager后台任务管理的介绍与使用(一)

一、介绍 Jetpack? 我们经常看到,似乎很高端,其实这个就是一个名词,或者说是一种框架概念。 Jetpack 包含一系列 Android 库,它们都采用最佳做法并在 Android 应用中提供向后兼容性。 Jetpack 应用架构指南概述了构…

记录复现一下第一次awd

前言 之前没打过awd,这次学长组织了一场awd娱乐赛,两个web一个pwn,还有一个黑盒,只会web,第一次啥也不会瞎打,被打烂了,不会写脚本,手交flag的感觉真“不错”,感觉awd还…

I/O多路复用

基础概念 Socket 套接字。百科:对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。 例子1:客户端将数据通过网线发送到服务端,客户端发送数据需要一个出口,服务端接收数据需要一个入口,这两个“口子”就是…

开发技术-Java switch case 的简单用法

文章目录1. integral-selector2. case3. break4. default5. 总结最近开发写 switch 发现有的技术点还没有掌握,在此做个记录。ON JAVA 中文版中,关于 switch 的描述为: switch 有时也被划归为一种选择语句。根据整数表达式的值,s…

数据挖掘,计算机网络、操作系统刷题笔记47

数据挖掘,计算机网络、操作系统刷题笔记47 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,orac…

FFmpeg集成qsv的编译安装

文章目录FFmpeg集成qsv的编译安装一、参考二、编译安装流程1. LibVA 和 Media-Driver 的安装2. Intel Media SDK 编译3. ffmpeg的编译安装4. 验证安装FFmpeg集成qsv的编译安装 一、参考 Ubuntu20.04 ffmpeg添加 Intel核显QSV加速支持 视频和视频帧:Intel GPU&…

持续集成Jenkins (四)Jenkins+git+maven项目构建、自动化部署

GIT配置1.1 前言:需要安装 git 客户端.yum install git1.2 Jenkins 配置插件 Git 在仪表盘选择Manage Jenkins>>Plugin Manager>>进入如下页面,可以选择可选的插件,安装完成后的插件在installed里面可以看到,我这里已…

Conda安装到虚拟环境中的包在pycharm中不显示--pip下载的包都到了base环境中-Ubuntu20.04

问题 今天刚装了一个Ubuntu20.04系统,安装完Anaconda,虚拟环境的包也都下载好了,结果在pycharm中配置完解释器后,只有几个基础的包,切换到base环境后发现,这些包都被下载到了base环境中。 在网上查了各种…