网络学习:BGP路径属性分类

目录

前言:

路径属性分类

公认必遵

公认任意

可选过渡

可选非过渡


前言:

  1. 在默认情况下,到达同一目的地,BGP只走单条路径,并不会在多条路径之间执行负载均衡。对于IGP路由协议,当有多条路径可以到达同一目的地时,则根据最小metric值来选择最优路径,而BGP存在多条路径到达同一目的地时,对于最优路径的选择,BGP并不会以metric值大小为依据,BGP对于最优路径的选择,需要靠比较路由条目中的Path Attributes,即路径属性,只有在比较多条路由的属性之后,才能决定选择哪条为最优路径。
  2. 任何一条BGP路由都拥有多个路径属性( Path Attributes) ,当路由器通告BGP路由给它的对等体时,该路由将会携带多个路径属性,这些属性描述了BGP路由的各项特征,同时在某些场景下会影响BGP路由优选的决策。

路径属性分类

        华为官方将BGP的属性分为公认属性和可选属性,其中公认属性是所有的BGP路由器都必须能够识别的属性,公认属性可以分为两类:

1、公认必遵(Well-Known Mandatory):必须包括在每个Update消息中。

2、公认任意(Well-Known Discretionary):可以包括在某些Update消息中。

其中可选属性不需要被所有的BGP路由器所识别,可选属性也可以分为两类:

1、可选过渡(Optional Transitive):BGP设备不识别此类属性但是依然会接收这些属性,并将其通告给其他的BGP对等体。

2、可选非过渡(Optional Nontreansitive):BGP设备不识别此类属性选择忽略这些属性,并将不会通告给其他的BGP对等体。

各个属性的特点:

公认必遵

        对于任何一台运行BGP的路由器,都必须支持公认必遵属性,并且在将路由信息发给其它BGP对等体时,这些属性必须强制写入路由中,一条不携带公认必遵属性的路由会被BGP路由器被视为无效而被丢弃,换句话说一不支持公认强制属性的BGP,是不正常的,不和法的BGP。

常见的BGP路由必须携带的公认强制属性有三个:Origin,Next_Hop,AS-path.

公认任意

        公认任意属性并不像公认必遵属性那么严格,任何一台运行BGP的路由器必须支持公认属性,必须能够识别公认任意属性,但是在路由写入时并不是强制的,是否要为路由写入公认自选属性可以自由决定,当一条路由写入公认自选属性之后,所有BGP路由器都能认识和理解,并且都会自动保留和传递该属性。

常见的BGP默认的公认任意属性:Local_Preference

可选过渡

        并不是所有运行BGP的路由器都能理解和支持可选可传递属性,路由的可选可传递属性是任意写入的,其它BGP路由器并不一定能理解,也并不一定保留和传递该属性,但是当为路由器设置了可选可传递属性后,可以明确要求BGP路由器保留和传递该属性。

常见的可选过渡属性:团体属性Community

可选非过渡

        只有特定的BGP路由器才理解和支持可选非过渡属性,并且可选非过渡属性理论上是不能手工设置的,即使手工设置了可选非过渡属性,这些属性也不能任意传递,只可以传递到特定的BGP路由器。

常见的可选非过渡属性有:MED属性,Originator_ID属性,Cluster_List属性

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

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

相关文章

RPC通信原理(一)

RPC通信原理 RPC的概念 如果现在我有一个电商项目,用户要查询订单,自然而然是通过Service接口来调用订单的实现类。 我们把用户模块和订单模块都放在一起,打包成一个war包,然后再tomcat上运行,tomcat占有一个进程&am…

Netty线程模型详解

文章目录 概述单Reactor单线程模型单Reactor多线程模型主从Reactor多线程模型 概述 Netty的线程模型采用了Reactor模式,即一个或多个EventLoop轮询各自的任务队列,当发现有任务时,就处理它们。Netty支持单线程模型、多线程模型和混合线程模型…

chown: changing ownership of ‘.‘: Permission denied 的一种解法

前言 最近在新电脑用 colima docker 启动服务遇到了这样的报错 chown: changing ownership of .: Permission denied在网上搜索了很久,不管是google还是stack overflow都没有突破口,只要绑定了 volumes 就会报错,按照网上说的方法&#xff…

【Unity】读取Json的三种方法(JsonUtility,LitJson,Newtonsoft)

介绍 在Unity开发过程中,Json是比较常用的一种数据存储文本,尤其是在和第三方交互中,基本都是json格式。 先给出一个Json示例,我们来看看是如何解析的。 {"Player": [{"id": 1001,"name": "…

【JVM】GCRoot

GC root原理 通过对枚举GCroot对象做引用可达性分析,即从GC root对象开始,向下搜索,形成的路径称之为 引用链。如果一个对象到GC roots对象没有任何引用,没有形成引用链,那么该对象等待GC回收。 可以作为GC Roots的对…

云原生基础知识:容器技术的历史

容器化的定义: 容器化是一种轻量级的虚拟化技术,将应用程序及其所有依赖项(包括运行时、系统工具、系统库等)打包到一个称为容器的单独单元中。容器提供了一种隔离的执行环境,使得应用程序可以在不同的环境中运行&…

居民健康监测小程序|基于微信小程序的居民健康监测小程序设计与实现(源码+数据库+文档)

居民健康监测小程序目录 目录 基于微信小程序的居民健康监测小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、健康科普管理 5.3公告类型管理 3、论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

LeetCode每日一题——移除元素

移除元素OJ链接:27. 移除元素 - 力扣(LeetCode) 题目: 思路: 题目给定要求只能使用O(1)的额外空间并且原地修改输入数组,然后返回移除后的数组行长度。那 么我们就可以确我没有办法建立临时的数组存放我…

Arduino IDE的下载和安装

一、Arduino的介绍 Arduino是一款开源电子原型平台,主要包含两部分:硬件(各种型号的Arduino板)和软件(Arduino IDE)。这个平台由意大利的Massimo Banzi、David Cuartielles等人共同开发设计,并于…

基于springboot实现小区物业管理系统项目【项目源码+论文说明】

基于springboot实现小区物业管理系统演示 摘要 随着城镇人口居住的集中化加剧 ,传统人工小区管理模式逐渐跟不上时代的潮流。这就要求我们提供一个专门的管理系统。来提高物管的工作效率、为住户提供更好的服务。 物业管理系统运用现代化的计算机管理手段,使物业的…

导入空管基础数据

1、首先将data.tar.gz解压到自定义目录中 注意:由于数据文件的压缩包比较大,解压过程可能会持续3~5分钟,请耐心等待。 [rootnode3 ~]# cd /opt/software/ [rootnode3 software]# tar -xzf data.tar.gz -C /opt/ 2、利用SQLyog或者其他数据库…

力扣L10--- 3. 无重复字符的最长子串--2024年3月14日

1.题目 2.知识点 注1:containsKey 是 Java 中 HashMap 类的一个方法,用于检查哈希表中是否包含指定的键。 注2:在哈希表(HashMap)中,每个键对应着唯一的值,因此键不能重复,但值可以重复。 (1)创…

【 c 语言 】指针入门

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

java SSM农产品订购网站系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM农产品订购网站系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采…

修改/etc/resolve.conf重启NetworkManager之后自动还原

我ping 百度报错: [rootk8snode1 ~]# ping baidu.com ping: baidu.com: Name or service not known很明显,这是DNS解析问题。 于是我修改 /etc/resolv.conf 文件后,执行完sudo systemctl restart NetworkManager,/etc/resolv.con…

【django framework】ModelSerializer+GenericAPIView,如何在提交前修改某些字段值

【django framework】ModelSerializerGenericAPIView,如何在提交前修改某些字段值 我们经常会遇到下面这种情况: 序列化器用的是ModelSerializer,写视图的时候继承的是generics.CreateAPIView。现在我想在正式提交到数据库(perform_create)之…

【Javase基础语法】String类常见的字符串操作方法

引言 个人主页:努力学编程-CSDN博客 学习领域:C语言进阶,javase基础语法 每日鸡汤:爱意随风起,人生不言弃 字符串的定义: public static void main(String[] args) { // 使用常量串构造 String s1 "h…

接口测试之文件下载

在工作中对于下载接口,经常会有这样的疑问:这类接口一般功能比较稳定,但是又比较重要,需要占用回归测试时间,有没有可替代的方式? 答案肯定是有的,可以从接口测试/UI自动化测试介入&#xff0c…

01——LenNet网络结构,图片识别

目录 1、model.py文件 (预训练的模型) 2、train.py文件(会产生训练好的.th文件) 3、predict.py文件(预测文件) 4、结果展示: 1、model.py文件 (预训练的模型) impor…

Navicat破解 Navicat下载安装 附教程 免费

百度网盘:https://pan.baidu.com/s/1wRRN_18_uXxPiIWCS4l43A 麻烦各位师傅帮忙填写一下问卷,提取码在问卷填写结束后显示~ 【https://www.wjx.cn/vm/mBBTTKm.aspx# 】 (资料来源于网络,侵告删)