BGP路由原理详解

news2024/10/7 12:06:33

🐣个人主页 可惜已不在

🐤这篇在这个专栏 华为_可惜已不在的博客-CSDN博客

🐥有用的话就留下一个三连吧😼

目录

一.

  BGP简介:

二.

  BGP报文中的角色

  BGP的报文

  BGP处理过程

  BGP有限状态机

  BGP属性

三.

  BGP作用

四.

  BGP选路


一.

  BGP简介:

边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统AS(Autonomous System)。现在的Internet是一个由多个自治系统相互连接构成的大网络,BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider)之间。
早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用一些路由策略。当前使用的版本是BGP-4。

二.

  BGP报文中的角色

Speaker:发送BGP报文的路由设备称为BGP发言者(Speaker),它接收或产生新的路由信息,并发布(Advertise)给其它BGP Speaker。当BGP Speaker收到来自其它AS的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给所有其他BGP Speaker(发布该路由的BGP Speaker除外)。

Peer:相互交换报文的BGP Speaker之间互称对等体(Peer)。

  BGP的报文

BGP的运行是通过报文驱动的,共有Open、Update、Notification、Keepalive和Route-refresh五种报文类型。

  • Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP对等体之间的连接关系。对等体在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。

  • Update报文:用于在对等体之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

  • Notification报文:当BGP检测到错误状态时,就向对等体发出Notification报文,之后BGP连接会立即中断。

  • Keepalive报文:BGP会周期性地向对等体发出Keepalive报文,用来保持连接的有效性。

  • Route-refresh报文:Route-refresh报文用来请求对等体重新发送所有的可达路由信息。

  BGP处理过程

因为BGP的传输层协议是TCP协议,所以在BGP对等体建立之前,对等体之间首先进行TCP连接。BGP邻居间会通过Open报文协商相关参数,建立起BGP对等体关系。建立连接后,BGP邻居之间交换整个BGP路由表。BGP会发送Keepalive报文来维持邻居间的BGP连接,BGP协议不会定期更新路由表,但当BGP路由发生变化时,会通过Update报文增量地更新路由表。当BGP检测到网络中的错误状态时(例如收到错误报文时),BGP会发送Notification报文进行报错,BGP连接会随即中断。


邻居建立过程图

  BGP有限状态机

BGP有限状态机共有六种状态,分别是Idle、Connect、Active、Open-Sent、Open-Confirm和Established。

在BGP对等体建立的过程中,通常可见的三个状态是:Idle、Active、Established。

  • Idle状态下,BGP拒绝任何进入的连接请求,是BGP初始状态。

  • Connect状态下,BGP等待TCP连接的建立完成后再决定后续操作。

  • Active状态下,BGP将尝试进行TCP连接的建立,是BGP的中间状态。

  • Open-Sent状态下,BGP等待对等体的Open报文。

  • Open-Confirm状态下,BGP等待一个Notification报文或Keepalive报文。

  • Established状态下,BGP对等体间可以交换Update报文、Route-refresh报文、Keepalive报文和Notification报文。

BGP对等体双方的状态必须都为Established,BGP邻居关系才能成立,双方通过Update报文交换路由信息。

  BGP属性

BGP路由属性是一套参数,它对特定的路由进一步的描述,使得BGP能够对路由进行过滤和选择。事实上,所有的BGP路由属性都可以分为以下4类:

  • 公认必须遵循的(Well-known mandatory):所有BGP设备都可以识别,且必须存在于Update报文中。如果缺少这种属性,路由信息就会出错。

  • 公认任意(Well-known discretionary):所有BGP设备都可以识别,但不要求必须存在于Update报文中,可以根据具体情况来选择。

  • 可选过渡(Optional transitive):在AS之间具有可传递性的属性。BGP设备可以不支持此属性,但它仍然会接收这类属性,并通告给其他对等体。

  • 可选非过渡(Optional non-transitive):如果BGP设备不支持此属性,则相应的这类属性会被忽略,且不会通告给其他对等体。

下面介绍几种常用的BGP路由属性:

  • Origin属性,属于公认必须遵循属性,用来定义路径信息的来源,标记一条路由是怎么成为BGP路由的,包含IGP、EGP和Incomplete三种类型。

  • AS_Path属性,属于公认必须遵循属性,按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。

  • Next_Hop属性,属于公认必须遵循属性。

  • MED,属于可选非过渡属性,MED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS。

  • Local_Pref属性,属于公认任意属性,仅在IBGP对等体之间有效,不通告给其他AS,用于表明路由设备的BGP优先级。

三.

  BGP作用

IGP(Interior Gateway Protocol,内部网关协议)被设计用来在单一的路由选择域内提供可达性信息并不适合提供域间路由选择功能,BGP(Border Gateway Protocol,域间路由协议)作为优秀的域间路由协议得以产生并发展。

当今的网络通常使用以下类型的IGP:

  • 距离矢量协议,例如路由信息协议(Routing Information Protocol, RIP)。
  • 链路状态协议,例如开放式最短路径优先(Open Shortest Path First, OSPF)协议和中间系统到中间系统(Intermediate System to Intermediate System, IS-IS)协议。

BGP有两种运行方式,当BGP运行于同一AS内部时,被称为IBGP(Internel BGP,内部边界网关协议);当BGP运行于不同AS之间时,称为EBGP(Externel BGP,外部边界网关协议)。如图1 BGP的运行方式所示:

四.

  BGP选路

1.优选Preferred-Value属性值最大的路由-Preferred-Value为华为设备的特有属性,该属性仅在本地有效,默认为0,越大越优先

2.优选Local Preference属性值最大的路由

  • 默认100,越大越优,传播范围为本地(IBGP)
  • 用来指示离开AS的最佳路径

3.优选本地始发的BGP路由

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

4.优选AS Path属性值最短的路由

  • 修改AS_Path三种方式:添加(addtive)、替换(overwrite)、清空(none )
  • 若要忽路AS Path,在bgp进程下使用bestroute as-path-ignore

5.优选Origin属性最优的路由(Ongin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete)

  • 具有最高的优先级。通过network命令注入到BGP路由表的路由,其Origin属性为IGP,Origin显示为e
  • EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP,Origin显示为i
  • Incomplete:优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete,Origin显示为?
  •  用于BGP路由的路径选择(i>e>?)          
  1.   i:标识通告network生成的BGP路由
  2. e:从EGP协议中引入到BGP的路由
  3. ?:标识通过import-route命令,引入到BGP中的IGP路由  

6.优选MED属性值最小的路由

  • 用于判断流量进入AS时的优选路由,将优先选择MED值较小者作为优选路由
  • MED属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS
  • MED属性可以手动配置,如果路由没有配置MED属性,BGP选路时将该路由的MED值按缺省值0来处理
  • 默认情况下BGP只会对来自同一个AS的相同路由比较MED值,可以通过命令compare-diferent-as-med开启来自不同AS的相同路由也比较MED值

​​​​​​​7.优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)-EBGP>IBGP 

8.优选到Next Hop的IGP度量值最小的路由

负载分担:

  1. 前提是前面8条规则完全相同时(AS号也要完全相同)
  2. 在bgp进程下(如bgp 100)
  3. 启用-maximum load-balacing(ibgp/ebgp)2或者更大

9.优选Cluster List最短的路由

10.优选RouterID最小的设备通告的路由

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


参考资料:BGP是什么?BGP是如何工作的? - 华为 (huawei.com)

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

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

相关文章

120页PPT企业对标管理指导:对标具有全球竞争力的世界一流企业

国有企业管理提升与对标管理是提升企业竞争力、实现可持续发展的重要途径。以下是对国有企业管理提升路线与对标管理的详细分析: 一、国有企业管理提升路线 明确战略定位: 根据市场需求和资源状况,确定企业的核心业务和发展方向。制定科学…

使用 docker-compose 启动 es 集群 + kibana

编写 docker-compose yaml version: v3 services:elasticsearch-node1:image: elasticsearch:7.17.24container_name: elasticsearch-node1ports:- "9200:9200"- "9300:9300"environment:- node.nameelasticsearch-node1- cluster.namemy-es-cluster- dis…

【Linux 】文件描述符fd、重定向、缓冲区(超详解)

目录 ​编辑 系统接口进行文件访问 open 接口介绍 文件描述符fd 重定向 缓冲区 1、缓冲区是什么? 2、为什么要有缓冲区? 3、怎么办? 我们先来复习一下,c语言对文件的操作: C默认会打开三个输入输出流&#xf…

SpringBoot 集成 Ehcache 实现本地缓存

目录 1、Ehcache 简介2、Ehcache 集群方式3、工作原理3.1、缓存写入3.2、缓存查找3.3、缓存过期和驱逐3.4、缓存持久化 4、入门案例 —— Ehcache 2.x 版本4.1、单独使用 Ehcache4.1.1、引入依赖4.1.2、配置 Ehcache4.1.2.1、XML 配置方式4.1.2.1.1、新建 ehcache.xml4.1.2.1.2…

字节放大招:无需LORA训练,小红书写真轻松搞定,Pulid-Flux换脸方案来了

前言 在这之前,SD常用的换脸节点还不支持Flux模型,使用Flux 做虚拟模特最好的方法是炼制人脸lora,但是炼丹是个有技术门槛的活。 之前文章有提过字节跳动的 Pulid团队,率先推出了Pulid-Flux模型,但是之前只能在线上使用…

vivo/iqoo原子笔记 拍试卷去手写或者叫还原试卷。

1、如果我们经常做试卷的时候,发现有错的,想重新做一下。那就要去掉原来的手写的答案。 2、网上的App或软件多的就是,但大多是要收费的,那么我们如何利用手机里的功能,来基本达到这一效果呢? 3、手机自动…

Spring Boot实现的医院资源优化工具

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…

ASCII码、Unicode编码和UTF-8编码介绍

1.ASCII码 2.Unicode编码 3.UTF-8编码

如何训练自己的大模型,答案就在这里。

训练自己的AI大模型是一个复杂且资源密集型的任务,涉及多个详细步骤、数据集需求以及计算资源要求。以下是根据搜索结果提供的概述: 详细步骤 \1. 设定目标: - 首先需要明确模型的应用场景和目标,比如是进行分类、回归、生成文本…

实现一个计算器的功能(一般形式、函数指针数组的形式、回调函数的形式)

实现一个计算器的功能&#xff1a; 一般的形式&#xff1a; #include<stdio.h> int Add(int x, int y) {return x y; } int Sub(int x, int y) {return x - y; } int Mul(int x, int y) {return x * y; } int Div(int x, int y) {return x / y; } void menu() {printf…

【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)

文章目录 一、前言1.1、Linux的文件结构是一颗从 根目录/ 开始的一个多叉树。1.2、绝对路径与相对路径1.3、命令的本质是可执行文件。1.4、家目录 二、文件管理2.1、文件操作1、pwd2、ls3、cd4、touch5、mkdir6、cp7、rm8、mv9、rmdir 2.2、查看文件1、cat2、more3、less4、hea…

6.1K Star,简简单单的看直播

Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 导语 在视频内容飞速发展的时代&#xff0c;实时推流和流媒体技术成…

java并发之并发实践

一、死锁 线程死锁 死锁是指两个或者两个以上的线程在执行的过程中&#xff0c;因争夺资源产生的一种互相等待现象。 假设线程 A 持有资源 1&#xff0c;线程 B 持有资源 2&#xff0c;它们同时都想申请对方的资源&#xff0c;那么这两个线程就会互相等待而进入死锁状态。 使用…

多功能声学综合馆:流动会场的新标杆—轻空间

随着现代会议、展览、演出和活动的多元化需求&#xff0c;场地的灵活性与适应性变得尤为重要。传统的固定场馆难以满足各类活动的复杂需求&#xff0c;而多功能声学综合馆凭借其灵活、便捷、专业的声学性能&#xff0c;成为了市场上一颗闪耀的新星。其“流动会场”的特性&#…

计算机取证

文章目录 思维导图计算机取证数据固定FTK ImageDumpIt 数据分析——磁盘镜像仿真软件自动仿真手动仿真仿真后的取证分析 基本信息及用户痕迹1.名称、版本、build号、系统目录、位数、产品秘钥等2.安装时间3.最后一次关机时间4.USB使用记录5.WIFI信息6.近期访问过的文档、程序7.…

动销方案:剑指市场份额扩张

在竞争激烈的市场中&#xff0c;企业如何扩大市场份额&#xff1f;动销&#xff0c;即拉动销售&#xff0c;乃是关键手段。 首先进行市场分析。行业现状方面&#xff0c;以快速消费品行业为例&#xff0c;市场规模大且持续增长&#xff0c;但竞争激烈&#xff0c;各大品牌不断推…

深化理解:RAG应用搭建进阶指南

大型语言模型&#xff08;LLM&#xff09;的文本推理能力&#xff0c;宛如一位博学的公民&#xff0c;其智慧之源来自于互联网上公开的文献宝库。想象一下&#xff0c;这位名为LLM的公民&#xff0c;如同一位勤奋的学者&#xff0c;借阅了图书馆中所有的书籍&#xff0c;并将这…

杀疯了深度解析chatGPT和NLP底层技术——复旦大学新版《自然语言处理导论》

在今年的2月28号&#xff0c;复旦张琦教授放出了自己的大招&#xff0c;发布了自己历时近三年之久&#xff0c;即自身对自然语言处理20年研究的著作 全文共 600页&#xff0c; 涉及了 787 篇参考文献&#xff0c; 全面且深度的解析了与NLP的底层知识。 内容介绍&#xff1a; …

【C++ Primer Plus】4

2 字符串 字符串是存储在内存的连续字节中的一系列字符&#xff1b;C处理字符串的方式有两种&#xff0c; c-风格字符串&#xff08;C-Style string&#xff09;string 类 2.1 c-风格字符串&#xff08;C-Style string&#xff09; 2.1.1 char数组存储字符串&#xff08;c-…

网 络 安 全

网络安全是指保护网络系统及其所存储或传输的数据免遭未经授权访问、使用、揭露、破坏、修改或破坏的实践和技术措施。网络安全涉及多个方面&#xff0c;包括但不限于以下几个方面&#xff1a; 1. 数据保护&#xff1a;确保数据在传输和存储过程中的完整性和保密性&#xff0c;…