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

    文章

    617

    浏览量

    40845
  • 路由器
    +关注

    关注

    22

    文章

    3892

    浏览量

    118891

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Path Bandwidth Extended Community:藏在BGP属性里的智能路由革命

    传统BGP协议虽能实现路由可达性,但缺乏对路径质量的动态感知能力,导致流量分配不均、高延迟链路未被规避等问题。为提升网络资源利用率,动态智能选路技术应运而生。该技术基于BGP扩展机制,通过实时收集路径质量指标,实现数据流的智能调度,显著优化高吞吐场景(如分布式存储、AI训
    的头像 发表于 06-24 14:00 623次阅读
    Path Bandwidth Extended Community:藏在<b class='flag-5'>BGP</b>属性里的智能路由革命

    动态BGP与静态BGP的区别?

    的 IP,只要远端发起 BGP 握手,且来自 AS 65002,即自动建立对等关系。、实战应用场景分析场景一:传统运营商边界路由器 使用静态 BGP BGP 对等关系固定,变化极少
    发表于 06-24 06:57

    用于 GSM/ GPRS (824-915 MHz) (1710-1910 MHz) 的 Tx-Rx 频前端模块,带四个线性 TRx 开关端口 skyworksinc

    电子发烧友网为你提供()用于 GSM/ GPRS (824-915 MHz) (1710-1910 MHz) 的 Tx-Rx 频前端模块,带四个线性 TRx 开关端口相关产品参数、数据手册,更有
    发表于 05-28 18:33
    用于 GSM/ GPRS (824-915 MHz) (1710-1910 MHz) 的 Tx-Rx <b class='flag-5'>四</b>频前端模块,带<b class='flag-5'>四个</b>线性 TRx 开关端口 skyworksinc

    用于 GSM/GPRS (824-915 MHz) (1710-1910 MHz) 的 Tx-Rx 频前端模块,带四个线性 TRx 开关端口 skyworksinc

    电子发烧友网为你提供()用于 GSM/GPRS (824-915 MHz) (1710-1910 MHz) 的 Tx-Rx 频前端模块,带四个线性 TRx 开关端口相关产品参数、数据手册,更有
    发表于 05-28 18:33
    用于 GSM/GPRS (824-915 MHz) (1710-1910 MHz) 的 Tx-Rx <b class='flag-5'>四</b>频前端模块,带<b class='flag-5'>四个</b>线性 TRx 开关端口 skyworksinc

    IC放大器用户指南

    事实并非如此。如果放大器有一输出电压,则必须以某个点为参考进行测量:即放大器的参考点。由于理想的运算放大器拥有无限的共模抑制性能,就排除了输入引脚作为参考点的可能,因此,肯定存在第四个放大器引脚。换个
    发表于 05-21 14:37

    曝三星已量产第四4nm芯片

    据外媒曝料称三星已量产第四4nm芯片。报道中称三星自从2021年首次量产4nm芯片以来,每年都在改进技术。三星现在使用的是其最新的第四4
    的头像 发表于 03-12 16:07 1.3w次阅读

    多线BGP技术通过哪几种方式提升网络稳定性?

    多线BGP技术通过以下方式显著提升网络稳定性: 1、故障自动切换 多线BGP技术允许网络同时连接到多个互联网服务提供商(ISP),当某一线路出现故障时,BGP协议能够自动检测并快速切换到其他可用线路
    的头像 发表于 02-25 14:45 825次阅读

    请问采用2808的spi接口4管脚是否能和支持spi通信的AD对应的四个管脚直接连接?

    请问我采用2808的spi接口4管脚是否能和支持spi通信的AD对应的四个管脚直接连接?请问有能直接与SPI口连接的16位 500kps以上 的串行ad吗?
    发表于 02-12 07:35

    ADS1211获取四个通道全部数据的最短时间是多少?

    看pdf没看出什么门道,想问下这款ADC四个差分通道同步采样,获取四个通道全部数据的最短时间是多少!
    发表于 02-10 07:24

    模数转换电路的四个过程

    模数转换(Analog-to-Digital Conversion,简称ADC)是将模拟信号转换为数字信号的关键过程,广泛应用于通信、数据采集、信号处理等领域。模数转换电路的设计与实现涉及多个关键步骤,通常可以分为四个主要过程:采样、保持、量化和编码。本文将详细分析这四个
    的头像 发表于 02-03 16:12 2392次阅读

    请问DAC3484四个通道能否独立使用?

    请问,DAC3484 四个通道能否独立使用?即当把DAC的NCO频率设置为fs/2时,IQ两通道是否就可以独立了?
    发表于 01-23 07:35

    高防BGP多线云服务器全面测评

    高防BGP多线云服务器优势众多,拥有强大防护能力,能够抵御多种网络攻击;支持多线路搭配BGP协议,确保网络稳定可靠、低延迟;在配置方面可灵活扩展,按需调整资源;同时性价比高且服务优质,适用电商、游戏、金融等多场景。以下是UU云小编对高防
    的头像 发表于 01-22 10:41 999次阅读

    请问AD9852四个输出口有什么差别?

    AD9852四个输出口有什么差别?是不是IOUT1是余弦输出,IOUT2是DAC控制输出,需要设置DAC控制寄存器?
    发表于 01-16 06:59

    STM32读取ADS1274的数据,为什么只能读到三通道的?

    我用的是STM32读取ADS1274的数据, CLK=5MHz,周期200ns SCLK脉冲周期大概是800ns 将SYNC接到了3.3V, 目前可以读到数据,只是只能读到三通道的,第四个通道
    发表于 01-08 07:51

    ADS131E08采用的是单端输入模式,前三通道的数据还比较稳定,但是从第四个通道就不正常了,为什么?

    P = IN6P ≈ 0V ,7,8两通道没用全部通过电阻接地。 前三通道的数据还比较稳定,但是从第四个通道就不正常了,尤其5,6,7,8通道完全就是乱码,这个是怎么回事。
    发表于 01-02 07:12