• 【博客459】BGP(边界网关协议)-----报文格式


    BGP(边界网关协议)-----报文格式

    BGP的5种报文

    1、Open报文                用于对等体参数协商;
    
    2、Keepalive报文        用于维护对等体邻居;
    
    3、Update报文            用于通告可达路由和不可达路由;
    
    4、Notification报文    用于错误信息通告,断开对等体邻居;
    
    5、Route-refresh报文    用于请求对等体重新发送路由信息;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    BGP报文特点

    BGP所有报文均采用单播的方式发送,因此需要手动指定对等体,不能像IGP协议通过组播方式自动发现邻居;

    BGP不需要开发确认报文,通过TCP来提供重传、确认及排序功能,因此建立BGP对等体之前必须先建立TCP连接;

    BGP报文

    在这里插入图片描述

    BGP报文头

    在这里插入图片描述

    ①Marker:占16字节,用于标明BGP报文边界,固定值为所有比特均为“1”,相当于一个报文的头部标识符。

    ②Length:占2字节,标识BGP报文总长度(包括报头在内),以字节为单位。

    ③Type:占1字节,标识BGP报文的类型。其取值从1到5,分别表示Open、Update、Notification、Keepalive和Route-refresh消息。

    Open报文:只有邻居建立时会发送此报文

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    Keepalive报文:邻居建立时、建立后都会发送此报文

    在这里插入图片描述

    Update报文:邻居建立成功后才会发送此报文

    在这里插入图片描述

    报文格式以及参数解析:

    在这里插入图片描述

    在这里插入图片描述

    一条Update报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer ReachableInformation,网络层可达信息)字段中,PathAttributes字段携带了这些路由的属性,BGP根据这些属性进行路由的选择;同时Update报文还可以携带多条不可达路由信息,被撤销的路由放在WithdrawnRoutes字段中,用来通知对等体要撤销的路由。

    ①Withdrawn routes length:撤销路由的长度,Update报文中可以包含0条、1条或者多条准备撤销的BGP路由。该字段是一个无符号整数,它指示了Update报文中所包含的“撤销的路由条目”字段的长度(字节数)。

    ②Withdrawn routes:不可达路由列表,长度可变,包含要从对等体BGP路由表中撤销的当前不可达路由的网络地址及前缀。

    ③Total path attributelength:标识路径属性(Path attributes)字段的长度,占2字节,以字节为单位。如果为0则说明没有下面的Path attributes字段。

    ④Path attributes:与NLRI字段相关的所有路径属性列表,每个路径属性由一个TLV(Type-Length-Value)三元组构成,可变长度。BGP正是根据这些属性值来避免环路,进行选路、协议扩展等。

    ⑤NLRI(Network LayerReachability Information):标识网络层可达信息,包含要向对等体通告的每条可达路由的前缀,长度可变。这些可达路由信息来自本地Adj-RIB-In(AdiacentRouting Information Base,Incoming,入方向邻接路由信息库),然后又将加入到对端Adj-RIB-In中。

    Notification:邻居建立成功后才会发送此报文

    在这里插入图片描述

    在这里插入图片描述

    Route-refresh:邻居建立成功后才会发送此报文

    1、Route-Refresh报文,用于请求对等体重新发送路由信息;
    2、对等体之间发送Open报文进行能力协商时,会进行路由刷新能力协商;
    3、当BGP的邻居入口路由策略改变后,会自动向邻居发送Refresh消息请求对等体重新发送路由信息;
    4、当BGP的邻居出口路由策略改变后,BGP会向邻居重新发送路由信息;

    在这里插入图片描述

    Route-refresh(路由刷新)报文用来要求对等体重新发送指定地址族的路由信息。

    ①AFI:Address FamilyIdentifier,地址族标识,占2字节,用于标识所采用的地址族类型。

    ②Res:保留,1字节,必须为0。

    ③SAFI:subsequentAddress Family Identifier,子地址族标识,1字节,用于标识子地址族类型。

  • 相关阅读:
    nginx(五十二)处理来自客户端的HTTP请求行和请求头
    服务熔断 Hystrix
    算法-二叉树-简单-二叉树的遍历
    华为联机对战服务玩家掉线重连案例总结
    Python && C++ 面经
    全新的FL studio21.2版支持原生中文FL studio2024官方破解版
    WebGoat通关攻略之 SQL Injection (intro)
    BP神经网络需要训练的参数,BP神经网络图像识别
    这是公司最糟糕的程序员,但是我坚决要留住他!
    iOS 中,isa 指针
  • 原文地址:https://blog.csdn.net/qq_43684922/article/details/126439756