0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BGP的第四个版本BGP-4

程序员cxuan 来源:程序员cxuan 作者:程序员cxuan 2022-07-04 09:55 次阅读

之前我们聊 RIP 、OSPF 协议都是基于 AS 即自治系统内的协议,可以把它们认为是域内路由协议;而下面我们要聊的就是 AS 之间的协议了,这也叫做域间路由协议,或者叫做外部网关协议,其最著名的一个协议就是BGP协议,目前使用最多的协议版本就是 BGP 的第四个版本 BGP - 4,简称为 BGP ( Border Gateway Protocol )。

在 RIP 和 OSPF 这些协议中,是由 IP 的网络地址进行路由控制,而 BGP 协议则需要通过整个互联网进行路由控制,范围要大很多。

BGP 的环境与 RIP、OSPF 的环境不一样,主要在于互联网的规模过于庞大, 使得自治系统之间的路由选择比较困难。互联网上的路由器对任何 IP 地址都能通过路由表找到它的目的网络。这是一个非常庞大的集合,如果使用链路状态协议 RIP 和 OSPF 的话,必须要维护一个非常大的了路由集合,一方面路由表检索起来效率很低,而且如此庞大的数据项也不方便维护。还有一点是每个路由器的 metric 不一样,有可能这个 metric 是经过了 100 个路由,而那个链路到达 100 个路由可能就直接报错了。

而且自治系统间的路由选择必须考虑策略问题,这些策略需要把政治、地缘、安全或者经济方面考虑在内。

由于上面这些特殊情况的存在,BGP 协议只是满足选择一条到达目的网络比较好的路由,而非选择一条最佳路由,BGP 采用了路径向量路由选择协议,它与 RIP 和 OSPF 有很大的差别。

在 BGP 协议中,每个 AS 自治系统内部都有许多BGP 边界路由器,这个 BGP 边界路由器就相当是自治系统内部的发言人。不同 AS 之间的 BGP 边界路由器如果要交换路由信息的话,就需要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话,通过 TCP 能够提供可靠的服务。两个交换报文的 BGP 边界路由器都被称为彼此的临站(天使)或者对等站。

下图是一个使用了 BGP 边界路由器和 AS 的关系示意图:

b57c943c-fb2c-11ec-ba43-dac502259ad0.jpg

BGP 所交换的网络可达性信息就是要到达某个网络所要经过的一系列的路由。当各个 BGP 边界路由器一旦交换了可达性信息之后,就会选择出来一条到达各个 AS 比较好的路由路径。

BGP 支持无分类域间路由选择 CIDR,因此 BGP 的路由表也就应当包括当前目的网络前缀、下一跳路由器,以及到达目的网络所经过的 AS 。

在 BGP 刚刚运行时,BGP 的临站是交换整个 BGP 路由表,以后只要在发生变化时更新有新变化的部分即可。这样对节省网络带宽和减少路由器开销有很大好处,这个特性和 OSPF 非常相似。

BGP - 4 主要有下面几类报文类型:

OPEN ( 打开 )报文,用来和相邻的 BGP 区域边界路由器建立关系,进行通信初始化。

UPDATE ( 更新 ) 报文,用来通告路由信息,以及列出需要更新的多条路由。

KEEPALIVE ( 保活 ) 报文,用来周期性的证实临站的连通性。

NOTIFICATION ( 通知 ) 报文,用来发送检测到的差错。

如果两个临站属于两个不同的自治系统,而且其中一个临站打算和其他临站进行路由交换的时候,这时候应当有一个路由商量的过程。商量的过程包括临站路由器是否还能够接受额外的路由信息。因此一开始进行商谈的时候应该要先发送 OPEN 报文,如果临站可以接受这种关系,就用 KEEPALIVE 报文响应。响应完成后,两个临站就算是建立关系了。

关系建立之后,是需要相互维持的,这就和情侣之间确定关系之后,你作为老爷们总不能三天两头不搭理人家吧?俗话说的好,感情是需要维持的,那么这个路由关系也是需要维持的。通信双方中的每一方都需要确信对方是否已经存在,因此两个 BGP 边界路由器需要定期交换 KEEPALIVE 报文,一般这个定期的时间就是 30 s。

BGP 边界路由器可以使用 UPDATE 报文来更新路由:包括撤掉以前通知过的路由和增加新的路由。撤销路由时一次可以撤销多条,但是新增路由一个 UPDATE 报文只能增加一条。

当然在 BGP 中不存在 "好消息传播快坏消息传播慢" 的问题( 感觉 RIP 的这个问题被玩出梗了 )。因为 BGP 边界路由器不只有一个,而且当某个路由器或者链路出现故障时,由于 BGP 边界路由器可以不止从一个临站获得路由信息,因此很容易选出新的路由。

下面是 BGP 的报文格式:

b58f785e-fb2c-11ec-ba43-dac502259ad0.jpg

上面介绍的四种报文类型它们具有通用的报文首部,首部为 19 字节,通用首部主要分为三个字段。

标记 marker 字段为 16 字节长,用来鉴别收到的 BGP 报文,如果不使用鉴别,标记字段要置为全 1。

长度字段指出包括通用首部在内的整个 BGP 报文的长度,以字节为单位,最小值是 19,最大值是 4096.

类型字段的值为 1 到 4,分别对应上面报文的介绍顺序。

OPEN 报文共有 6 个字段,如下图抓包所示

b5b0c716-fb2c-11ec-ba43-dac502259ad0.png

前三个字段是 BGP 通用报文首部,下面的几个字段依次是 Version 版本 ( 1 字节,值为 4 ), My AS 本自治系统号( 2 字节,使用的是全球唯一的 16 位系统号 ) , Hold Time 保持时间 ( 2 字节,以秒计算的保持为临站关系的时间 ),BGP Identifier BGP 标识符 ( 4 字节,路由器的 IP 地址 ),下面是可选长度和可选参数

KEEPALIVE报文只有 BGP 19 字节的通用首部。

b5d3ab96-fb2c-11ec-ba43-dac502259ad0.png

UPDATE报文有五个字段,如下图所示

b5e919d6-fb2c-11ec-ba43-dac502259ad0.png

报文中的 Unfeasible routes length 表示不可行路由长度,后面有个字段报文没有列出来,就是 Withdrawn Routes ,要撤销的路由列表,后面的 Total Path Attribute Length 表示路径属性总长度,后面的 Path attributes 就表示路径属性,最后的 NLRI 标识发出这个报文的网络。

NOTIFICATION报文有三个字段,如下图所示

b6165306-fb2c-11ec-ba43-dac502259ad0.png

主要包括差错代码 ( 1 字节 ),差错子代码 ( 1 字节 ) ,后面还有差错数据。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 协议
    +关注

    关注

    2

    文章

    569

    浏览量

    38905
  • 路由器
    +关注

    关注

    22

    文章

    3478

    浏览量

    111314

原文标题:6 分钟看完 BGP 协议。

文章出处:【微信号:cxuangoodjob,微信公众号:程序员cxuan】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    半导体发展的四个时代

    台积电的 Suk Lee 发表了题为“摩尔定律和半导体行业的第四个时代”的主题演讲。Suk Lee表示,任何试图从半导体行业传奇而动荡的历史中发掘出一些意义的事情都会引起我的注意。正如台积电所解释
    发表于 03-27 16:17

    BGP路由的生成方式及5种报文

    TCP的三次握手。先启动BGP的一端先发起TCP连接。如图所示,RTB先启动BGP协议,RTB随机端口号向RTA的179端口发起TCP连接
    发表于 03-26 14:11 166次阅读
    <b class='flag-5'>BGP</b>路由的生成方式及5种报文

    半导体发展的四个时代

    台积电的 Suk Lee 发表了题为“摩尔定律和半导体行业的第四个时代”的主题演讲。Suk Lee表示,任何试图从半导体行业传奇而动荡的历史中发掘出一些意义的事情都会引起我的注意。正如台积电所解释
    发表于 03-13 16:52

    华为路由器BGP基础配置实验记录

    配置BGP的前提是要保证各个自治区域的路由均可达,所以要首先在AS 2 配置OSPF使AS 2 通畅,然后再配置BGP。由于BGP的路由黑洞问题,需要在BGP路由经过的所有路由器上配置
    发表于 01-06 10:07 164次阅读
    华为路由器<b class='flag-5'>BGP</b>基础配置实验记录

    AD9125通过ARM配置,arm多次复位,输出频谱10%概率异常的原因?怎么解决?

    AD9125通过ARM配置,arm多次复位,输出频谱10%概率异常。 第一、第二为单频正常输出的频谱, 第三、第四个输出不正常的频谱@ 70M的频谱输出多次出现异常的频谱如下:
    发表于 12-19 08:22

    BGP硬核笔记分享

    BGP——边界网关路由协议,是一种基于策略的路径矢量路由协议(可以理解为距离矢量型协议的升级版),BGP在确定最佳路径时考虑的不是速度,而是让AS能够根据多种BGP属性来控制数据流的传输。
    的头像 发表于 12-11 09:15 325次阅读
    <b class='flag-5'>BGP</b>硬核笔记分享

    【每周一练】盘古1K开发板 练习三:动态数码管显示

    数码管,按一下数字加 1,显示从 0 到 9, 类似的,按键 K3 控制第三数码管,按键 K4 控制第四个数码管 学习心得 学习了数码管驱动设计 掌握了按键与数码管联动控制
    发表于 12-10 16:45

    动态BGP与静态BGP的区别

    动态BGP与静态BGP的区别 动态BGP与静态BGP的区别 1.静态BGP功能简单,其带宽功能,可以实现多网接入,但路径上只有通向几大运营商
    发表于 12-01 16:55

    【每周一练】盘古1K开发板 练习三:动态数码管显示实验

    实验目的:掌握数码管显示原理,实现数码管动态显示 实验要求:实现四个数码管可以显示不同的数字,按键 K1 控制第一数码管,按一下数字加 1,显示从 0 到 9,按键 K2 控制第二数码管,按一下数字加 1,显示从 0 到 9
    发表于 11-24 11:21

    苹果公司营收连续四个季度下滑 第四财季营收895亿

    的11月2日,苹果公司公布了其2023财年第四财季的业绩。按照数据统计显示,截至9月30日的第四财季,苹果公司营收降至895亿美元,苹果公司销售额连续第四个季度下滑,这个下滑的持续时间已经创下2001年以来最长的下滑持续时间。
    的头像 发表于 11-03 16:29 758次阅读

    BGP路由计算选路规则13条

    当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行路由选择
    的头像 发表于 10-08 10:35 575次阅读

    BGP有限状态机有哪几种状态?

    BGP有限状态机共有六种状态,分别是Idle、Connect、Active、OpenSent、OpenConfirm和Established。
    的头像 发表于 10-07 14:56 1128次阅读

    bgp配置实例讲解 如何配置Cilium和BGP协同工作

      背景 官方提供了多篇文档说明如何配置 Cilium 和 BGP 协同工作,本文主要对以下部分功能进行验证: Using BIRD to run BGP[1] Using kube-router
    的头像 发表于 08-15 09:15 1240次阅读
    <b class='flag-5'>bgp</b>配置实例讲解 如何配置Cilium和<b class='flag-5'>BGP</b>协同工作

    如何配置Cilium和BGP协同工作呢?

    官方提供了多篇文档说明如何配置 Cilium 和 BGP 协同工作,本文主要对以下部分功能进行验证
    的头像 发表于 08-15 09:15 793次阅读
    如何配置Cilium和<b class='flag-5'>BGP</b>协同工作呢?

    求高手赐教输入finish命令第三第四个字节莫名收不到,其它字节都正常

    用RT-Thread Studio,STM32L433CCT6移植功能都没问题了,就是有问题一直解决不了。输入finish命令时,第三第四个字节一直收不到,其它都正常,所以目前解决方法是第三
    发表于 04-20 11:17