BGP最通俗易懂的讲解——路由反射器防环机制

2024-01-19 23:36

本文主要是介绍BGP最通俗易懂的讲解——路由反射器防环机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

路由反射器防环机制:Originator ID与Cluster List

一、Originator ID

在这里插入图片描述

  1. 该属性属于BGP的可选非过渡属性;
  2. Originator ID由RR产生,使用的Router ID的值标识路由的发送者,用于防止集群内产生路由环路;
  3. 当一条路由第一次被RR反射的时候,RR将Originator ID属性加入这条路由,标识这条路由的起始设备。如果一条路由中已经存在了Originator ID屡性,则RR将不会创建新的Originator ID属性(此时的Originator ID 指的是将该路由传递给RR的路由器的Router ID,不是RR的Router ID);
  4. 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同则不接收此路由。

二、Cluster List

在这里插入图片描述

  1. 该属性属于BGP的可选非过渡属性,用于集群间的防环,由每个路由反射器 (RR)产生,记录反射路由经过的集群;
  2. 路由反射器和它的客户机组成一个集群 (Cluster)。在一个AS内,每个路由反射器便用唯一的ClusterlD作为集群标识。缺省情况下,每个路由反射器使用自己的Router ID作为集群ID;
  3. 为了防止集群间产生路由环路,路由反射器便用Cluster List属性,记示路由经过的所有集群的Cluster ID;
  4. 当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster ID添加到Cluster List的前面,如果Cluster List为空,RR就创建一个;
  5. 当RR接收到一条更新路由时,RR会检查Cluster List。 如果Cluster List中已经有本地Cluster ID,则丢弃该路由;如果Cluster List中没有本地Cluster ID,则将其加入Cluster List,然后反射该路由。

这篇关于BGP最通俗易懂的讲解——路由反射器防环机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624087

相关文章

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

SpringKafka错误处理(重试机制与死信队列)

《SpringKafka错误处理(重试机制与死信队列)》SpringKafka提供了全面的错误处理机制,通过灵活的重试策略和死信队列处理,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、Spring Kafka错误处理基础二、配置重试机制三、死信队列实现四、特定异常的处理策略五

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class