精华内容
下载资源
问答
  • BGP报文种类
    千次阅读
    2021-12-15 23:28:32


    BGP报文种类


    在这里插入图片描述

    BGP报文有五种类型:
    (其中Keepalive报文为周期性发送,其余报文为触发式发送)

    Open:负责和对等体建立邻居关系。

    KeepAlive:该消息在对等体之间周期性地发送,用于保持BGP连接。

    Update:该消息被用来在BGP对等体之间传递路由信息。

    Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。

    Route-refresh:用来通知对等体自己支持路由刷新能力;用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

    更多相关内容
  • BGP报文格式分析

    千次阅读 2021-01-16 21:19:33
    BGP报文种类: 由于BGP是承载在TCP之上的协议,在建立一个BGP对等体之前必须建立标准的TCP三次握手,并且在目标端打开一个到端口为179的连接,TCP能够提供可靠的传输方式,可以进行重传、确认及排序功能。BGP不需要...

    BGP报文种类:

    在这里插入图片描述
    由于BGP是承载在TCP之上的协议,在建立一个BGP对等体之前必须建立标准的TCP三次握手,并且在目标端打开一个到端口为179的连接,TCP能够提供可靠的传输方式,可以进行重传、确认及排序功能。BGP不需要开发确认报文,因为所有的确认都由TCP层来提供,从而可以减少BGP的报文数量,BGP 所有报文均采用单播的方式来发送,因此不能够自动地发现邻居。

    BGP的运行是通过消息驱动的,共有Open、Update、Notification、Keepalive和Route-Refresh等5种消息类型:

    1. Open消息:是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息并协商成功后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、Keepalive和Route-Refresh消息的交换。
    2. Update消息:用于在对等体之间交换路由信息。一条Update消息可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。
      • 一条Update消息可以发布多条具有相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在一个给定的Update消息里的路由属性适用于该Update消息中的NLRI(Network Layer Reachability Information)字段里的所有目的地(用IP前缀表示)。
      • 一条Update消息可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚的定义了BGP Speaker之间先前通告过的路由。
      • 一条Update消息可以只用于撤销路由,这样就不需要包括路径属性或者NLRI。相反,也可以只用于通告可达路由,就不需要携带撤销路由信息了。
    3. Keepalive消息:BGP会周期性的向对等体发出Keepalive消息,用来保持连接的有效性。
    4. Notification消息:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。
    5. Route-Refresh消息:通过OPEN消息告知BGP peer本地支持路由刷新能力(Route-Refresh capability)。在所有BGP路由器使能Route-Refresh能力的情况下,如果BGP的入口路由策略发生了变化,本地BGP路由器会向对等体发布Route-Refresh消息,收到此消息的对等体会将其路由信息重新发给本地BGP路由器。这样,可以在不中断BGP连接的情况下,对BGP路由表进行动态刷新,并应用新的路由策略。

    BGP报头:

    在这里插入图片描述
    每个BGP报文都有一个通用的BGP报头,再后面封装其他内容:

    1. Marker(标记):16字节,固定为1。
    2. Length(长度):两字节无符号整数。指定了消息的全长,包括头部。
    3. Type(类型):1 字节,指示报文类型:
      • Open
      • Update
      • Keepalive
      • Notification
      • Route-Refresh

    抓包信息如下:
    在这里插入图片描述

    1. Open报文结构:

    在这里插入图片描述
    Open报文在BGP报头之后:

    1. Version:BGP的版本号。对于BGPv4来说,其值为4。
    2. My Autonomous System:本地AS编号。通过比较两端的AS编号可以确定是EBGP连接还是IBGP连接。
    3. Hold Time:在建立对等体关系时两端要协商Hold time,并保持一致。如果两端所配置的Hold time时间不同,则BGP会选择较小的值作为协商的结果。如果在这个时间内未收到对端发来的Keepalive消息,则认为BGP连接中断。如果保持时间为0,则标识不发送Keepalive报文。默认保持时间是Keepalive Time的3倍,180s。
    4. BGP Identifier:BGP路由器的Router ID,以IP地址的形式表示,用来识别BGP路由器。
    5. Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0则没有可选参数。
    6. Optional Parameters:是一个可选参数用于BGP验证或多协议扩展(Multiprotocol Extensions)等功能。每一个参数为一个(Parameter Type-Parameter Length-Parameter Value)三元组,其实也是就TLV字段。这个字段用于公布一些可选功能的支持,如多协议扩展能力(这也是为什么叫做MP-BGP的原因)、路由刷新能力、四字节AS号等能力,具体可以参考下表:
      在这里插入图片描述

    报文抓包如下:
    在这里插入图片描述

    2. Update报文结构:

    在这里插入图片描述
    具体字段:

    1. Withdrawn Routes Length :(2字节无符号整数) 不可达路由长度,表示Withdrawn Routes字段的数据长度。如果Withdrawn Routes Length字段数值为0,则表示Withdrawn Routes字段没有任何数据,在UPDATE消息中不会被显示。
    2. Withdrawn Routes :(变长) 撤销路由。该字段包括一系列的IP地址前缀信息,以<length, prefix>的格式来表示,比如<19,198.18.160.0>表示一个198.18.160.0 255.255.224.0的网络。
    3. Path Attribute Length :(2字节无符号整数) 路由属性长度,表示Path Attribute字段的数据长度。如果Path Attribute Length数值为0,则表示Path Attribute字段没有任何数据,在UPDATE消息中不会被显示。
    4. Path Attributes:可变长字段,列出与下面NLRL(Network Layer Reachability Information,路由信息)相关的属性,每个路径属性都由可变长的三元组(属性类型、属性长度、属性值)组成,为BGP提供选择最短路径、检查路由环路以及决定路由策略的信息,如图所示。属性类型是一个2Byte
      的字段,包含1Byte 的属性标记、1Byte 的属性类型代码字段:
      在这里插入图片描述
      从该字段的格式前两位标记字段来看,可以将属性分为四种组合,即公认必遵、公认任意、可选过渡、可选非过渡:
      • 属性的第0位表示属性是公认的还是可选的(0:公认,1:可选)。
      • 属性的第1位表示属性是过渡还是非过渡(0: 非过渡,1:过渡),公认属性总是可过渡的,所以第1位总是置为1。
      • 属性的第2位表示可选过渡属性中的信息是完全的还是部分的(0:完全,1:部分)。
      • 属性的第3位表示属性的长度(0:一个字节,1:两个字节)。
      • 第4到第7位未被使用,总是为0。
      • 第8到第15位是属性类型的代码,具体对照表见下表:
      在这里插入图片描述
    5. Network Layer Reachability Information :(变长) 网络可达信息。包括一系列的IP地址前缀。格式与撤消路由字段一样<length, prefix>。

    路由更新信息如下:
    在这里插入图片描述
    路由撤销信息如下:
    在这里插入图片描述

    3. Keepalive报文结构:

    1. Keepalive 报文的组成只包括一个BGP数据报头。
    2. 缺省情况下,发送KeepAlive 的时间间隔为 60 秒,为Hold Time定时器的1/3,用于检测TCP连接是否正常。每次从邻居处接收到KeepAlive 报文将重置Hold Time定时器,如果Hold Time定时器超时,就认为对等体Down掉。
    3. Keepalive信息是不能够低于1s, 如果保持时间协商为0,那么不会发送Keepalive 消息。在发送消息的时间间隔内,如果BGP发送过Update消息,就会抑制Keepalive消息的发送。

    抓包如下:
    在这里插入图片描述

    4. Notifaction报文结构:

    在这里插入图片描述

    具体字段:

    1. Errorcode:错误码。1字节长的字段。每个不同的错误都使用唯一的代码表示,而每一个错误码都可以拥有一个或多个错误子码,但如果某些错误码并不存在错误子码的话,则该错误子码字段以全0表示。
    2. Errsubcode:错误子码。
    3. Data:可变长字段,包含了与错误有关的数据,用来诊断差错原因,比如非法的AS号、认证失败等。

    下表中列举了可能存在的错误代码及错误子码:
    在这里插入图片描述
    报文抓包:当对方取消连接后发出的通知信息
    在这里插入图片描述

    5. refresh报文结构

    在这里插入图片描述
    具体字段:

    1. AF1:2字节,表示地址族id,与UPDATE报文中的定义相同,1表示IPv4。
    2. Res.:1字节,所有为应全为零,在接收报文时,此位被忽略。
    3. SAFI:1字节,与UPDATE报文中的定义相同。

    通过设置具体的地址族,对相应地址族的报文进行刷新,本地BGP路由器可以通过手动触发,向对等体发布Route-refresh 消息,收到此消息的对等体会将其路由信息重新发给本地BGP路由器。这样,可以在不中断BGP连接,这种方式也称为软重置。

    华为设备命令:refresh bgp xxx import
    在这里插入图片描述

    注意:软重置不会断开BGP连接关系,硬重置时则会(reset)。

    报文抓包:IPv4单播为例
    在这里插入图片描述

    参考资料:华为hedex文档、《HCIE路由交换学习指南》

    展开全文
  • BGP报文格式详解

    千次阅读 2020-07-06 14:59:39
    BGP边界网关路由协议 一、BGP协议概述 使用范围:BGP范围,使用在AS之间的路由协议 协议的特点:路径矢量型(高级的距离矢量型),没有具体的协议算法,要说非得有个算法的话,那么人就是最好的BGP协议的算法 是否...

    BGP边界网关路由协议

    一、BGP协议概述
    使用范围:BGP范围,使用在AS之间的路由协议
    协议的特点:路径矢量型(高级的距离矢量型),没有具体的协议算法,要说非得有个算法的话,那么人就是最好的BGP协议的算法
    是否携带网络掩码:携带,并且支持VLSM、CIDR
    数据包的封装:基于TCP封装,端口号179

    AS:自制系统
    AS的分类:公有AS和私有AS,公有AS的范围是1-64511,私有AS的范围是64512-65535

    二、BGP协议的特点
    1、BGP协议是一种路径矢量型路由协议
    2、BGP协议的版本:V1、V2、V3、V4、V4+

    • V1、V2、V3是有类别,不携带子网掩码
    • V4是无类别,携带子网掩码,仅仅支持IPV4单播路由传递
    • V4+支持IPV4单播路由、IPV6单播路由、IPV4组播路由、IPV6组播路由、VPNV4和VPNV6路由等(默认仅仅支持IPV4单播路由,若是需要传递其他的路由,则需要手动开启传递其他协议路由功能)

    3、BGP更新地址:单播更新,由于BGP协议是基于TCP封装,之所以使用单播更新,也就导致BGP不能自动建立邻居关系而可以非直连建立邻居关系。
    4、BGP的更新方式:触发更新(当路由信息发生改变时,才发出跟新信息)、增量跟新(当路由信息发生改变了,才发出更信息),在这里没有周期跟新的原因是,防止大量的更新早成网络的不稳定,而且BGP学习路由的观点是,只要学习到路由的时间越长那就说明这条路由越稳定。
    5、BGP协议拥有大量的属性,用来选路,这样就体现出了BGP协议的灵活性
    6、BGP协议支持路由认证
    7、BGP协议支持路由聚合
    8、BGP协议只能运行在一个路由器上,因为BGP协议非常消耗路由器资源(只支持一个进程)

    三、BGP协议的消息数据包以及报文格式
    BGP报文格式
    在这里插入图片描述

    • Marker:占16字节,用于检查BGP对等体的同步信息是否完整,以及用于BGP验证的技术。不使用验证时,所用比特都是1
    • length:占2字节,BGP消息总长度,包括报文头在内,以字节为单位
    • Type:占1字节,BGP消息类型,消息值得范围是1-5
      在这里插入图片描述
      1、OPEN建立BGP邻居关系,只发送一次

    邻居建立的条件
    1、router-id必须不同
    2、BGP认证一致
    3、指定正确的AS号
    4、建立TCP三次握手的两端路由可达

    OPEN报文格式
    在这里插入图片描述
    在这里插入图片描述

    1、Version:协议的版本号
    2、My Autonomous System:发送者自己的AS号
    3、Hold Time:死亡时间,在收到BGP对等体的OPEN报文后,对收到的BGP报文和发出BGP报文二者的Hold Time时间作比较,选择较小的作为协商结果,默认Hold Time时间为180s
    4、BGP Identifier:发送者的router-id
    5、Opt Parm Len:表示Optional Parameters(可选参数)的长度。如果此值为0,表示没有可选参数。
    6、Optional Parameters:此值为BGP可选参数列表,每一个可选参数是一个TLV格式的单元

    • Parm. Type:占1个字节(无符号位),为可选参数类型。我们现在的实现中,只在type值为2时有意义,表示携带的参数为协商能力。
    • Parm. Length:占1个字节(无符号位),为Parameter Value的长度。
    • Parameter. Value:根据Parm.Type的不同值填写不同的参数内容,在Parm.Type为2表示协商能力时,Parameter.Value是表示所支持的各种协商能力的列表,列表中的每一个单元是如下的一个TLV三元组:

    2、keepalive:保活,维持BGP邻居关系。周期发送,默认周期时间为60s,保持时间为180s。
    在这里插入图片描述
    在这里插入图片描述
    3、update用于通告路由
    在这里插入图片描述
    在这里插入图片描述

    1、unfeasible Routes Length:标明不可行的 Routes部分的长度。其值为零时,表示没有撤销的路由。
    2、Withdrawn Routes:包含要撤销的路由列表,列表中的每个单元包含1字节的Length域和可变长度的Prefix域。

    • 在这里插入图片描述
    • Length:待撤销路由的掩码。其值为零时,表示匹配所有的路由。
    • Prefix:传送的IP地址前缀必须用整字节表示。

    3、Total Path Attribute Length:标明Path Attributes部分和Network Layer Reachability Information两部分的长度。其值为零时,表示没有路由及其路由属性要通告。
    4、Path Attributes:包含要更新的路由属性列表,按其类型号从小到大的顺序排序,填写更新的路由的所有属性。每一个属性单元包括属性类型,属性长度,属性值三部分。其编码采用TLV格式
    5、Network Layer Reachability Information(NLRI):包含要更新的地址前缀列表,每一个地址前缀单元由一个LV二元组(prefix length, the prefix of the reachable route)组成,其编码填写方法与Withdrawn Routes的填写方法相同。

    4、notification:错误报告
    在这里插入图片描述
    在这里插入图片描述

    Error code:占1个字节(无符号位),定义错误的类型,非特定的错误类型用零表示。
    Error subcode:占1个字节(无符号位),指定错误细节编号,非特定的错误细节编号用零表示。
    Data:指定错误数据内容。

    5、refresh:该报文用于BGP路由的动态刷新
    在这里插入图片描述

    AFI:表示地址族id,与UPDATE报文中的定义相同。
    Res.:所有为应全为零,在接收报文时,此位被忽略。
    SAFI:与UPDATE报文中的定义相同。

    四、BGP的状态机

    在这里插入图片描述

    • Idle状态:是BGP初始化状态,开始尝试和对等体进行一次TCP连接
    • Connect状态:TCP连接成功,进入OpenSent状态;若是TCP连接由于某些原因而导致失败,则将会进入Active状态,尝试再次TCP连接;在这里有个连接重传计时器,当第一次没有连接成功,那么连接重传计时器将会翻倍;若是收到notification报错报文后,直接回到Idle状态
    • OpenSent状态:该状态下发送OPEN包,协商参数,当参数协商完成后进入OpenConfirm
    • OpenConfirm状态:发送和接收keeplive包
    • extablished状态:邻居建立完成
      注意:在建立邻居的整个的过程中不发送Update包。
    展开全文
  • BGP报文格式

    2020-12-20 14:16:05
    BGP报文头基本格式(RFC4271)报文格式BGP报文BGP报文头和具体报文内容两部分组成。(RFC4271)BGP的运行是通过消息驱动的,共有5种消息类型,这些消息有相同的报文头。这些消息通过TCP协议进行传播(端口号是179)。...

    BGP报文头基本格式(RFC4271)

    报文格式

    BGP报文由BGP报文头和具体报文内容两部分组成。(RFC4271)

    BGP的运行是通过消息驱动的,共有5种消息类型,这些消息有相同的报文头。这些消息通过TCP协议进行传播(端口号是179)。消息最长为4096字节,最短为19字节(只包含报文头)。

    BGP报文头包括三的部分,总长19字节。各个部分的格式和功能如下:(RFC4271)

    图1BGP报文头格式

    Marker:占16字节,用于检查BGP对等体的同步信息是否完整,以及用于BGP验证的计算。不使用验证时所有比特均为1(十六进制则全“FF”)。

    Length:占2个字节(无符号位),BGP消息总长度(包括报文头在内),以字节为单位。长度范围是19~4096。

    Type:占1个字节(无符号位),BGP消息的类型。Type有5个可选值,表示BGP报文头后面所接的5类报文(其中,前四种消息是在RFC4271中定义的,而Type5的消息则是在RFC2918中定义的):

    TYPE值

    报文类型

    1

    OPEN

    2

    UPDATE

    3

    NOTIFICATION

    4

    KEEPALIVE

    5

    REFRESH(RFC2918)

    BGP OPEN报文格式

    报文格式

    如果BGP报文头中的TYPE为1,则该报文为OPEN报文。报文头后面所接的报文内容如下,OPEN报文用于建立BGP连接:

    图1OPEN报文格式

    字段

    长度

    含义

    Version

    1个字节(无符号位)

    表示协议的版本号,现在BGP的版本号为4。

    My Autonomous System

    2个字节(无符号位)

    发送者自己的AS域号

    Hold Time

    2个字节(无符号位)

    发送者自己设定的hold time值(单位:秒),用于协商BGP对等体间保持建立连接关系,发送KEEPALIVE或UPDATE等报文的时间间隔。BGP的状态机必须在收到对等体的OPEN报文后,对发出的OPEN报文和收到的OPEN报文两者的hold time时间作比较,选择较小的时间作为协商结果。Hold Time的值可为零(不发KEEPALIVE报文)或大于等于3,我们系统的默认为180。

    BGP Identifier

    4个字节(无符号位)

    发送者的router id。

    Opt Parm Len

    1个字节(无符号位)

    表示Optional Parameters(可选参数)的长度。如果此值为0,表示没有可选参数。

    Optional Parameters

    此值为BGP可选参数列表,每一个可选参数是一个TLV格式的单元(RFC3392)。

    0

    1

    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...

    |  Parm.

    Type   | Parm. Length  |

    Parameter Value (variable)

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...

    Parm. Type:占1个字节(无符号位),为可选参数类型。我们现在的实现中,只在type值为2时有意义,表示携带的参数为协商能力。

    Parm.

    Length:占1个字节(无符号位),为Parameter Value的长度。

    Parameter.

    Value:根据Parm.Type的不同值填写不同的参数内容,在Parm.Type为2表示协商能力时,Parameter.Value是表示所支持的各种协商能力的列表,列表中的每一个单元是如下的一个TLV三元组:

    +------------------------------+

    | Capability

    Code (1 octet)    |

    +------------------------------+

    | Capability

    Length (1 octet)  |

    +------------------------------+

    | Capability

    Value (variable)  |

    +------------------------------+

    Capability

    Code:所支持的能力编号,占1个字节。Code为1时,表示支持的地址族能力;Code为2时,表示支持REFRESH能力。

    Capability

    Length:表示Capability Value的长度,占1个字节。

    Capability

    Value:根据Code值的不同其内容与长度也不同。

    Capability Code为1:

    Capability Value值是一个TLV三元组,共占4个字节:

    0       7      15

    23      31

    +-------+-------+-------+-------+

    |      AFI      | Res.

    | SAFI  |

    +-------+-------+-------+-------+

    AFI:地址族标识(Address Family Identifier),占2个字节,能力所支持地址族标识信息,用以和SAFI一同确定网络层协议和IP地址间的关系,编码方式与多协议扩展中的规定相同。其值按照RFC1700中ADDRESS FAMILY NUMBERS的定义;

    Res:保留位,占1个字节,发送者应将其设置为零,在接受的时候忽略;

    SAFI:子地址族标识(Address Family Identifier),占1个字节,能力所支持的子地址族标识信息,用以和AFI一同确定网络层协议和IP地址间的关系,编码方式与多协议扩展中的规定相同。其值按照RFC1700中ADDRESS FAMILY NUMBERS的定义。

    Capability Code为2(RFC2918)

    表示支持路由刷新能力,即Route Refresh Capability。此能力的code为2,length为零,无value部分。

    需要说明的是,只有在能力协商中使能了支持Route Refresh Capability,路由器才能处理REFRESH报文。我们的实现是默认情况下,支持IPv4单播能力与路由刷新能力,其他能力需要另外设定。

    表1AFI及SAFI编码说明

    AFI编码

    AFI说明

    SAFI编码

    SAFI说明

    说明

    1

    IPv4地址族

    1

    单播

    IPv4单播

    2

    组播

    IPv4组播

    128

    VPN

    IPv4的L3VPN

    2

    IPv6地址族

    1

    单播

    IPv6单播

    2

    组播

    IPv6组播

    128

    VPN

    IPv6的L3VPN

    196

    二层

    128

    VPN

    L2VPN的Kompella方式

    BGP UPDATE报文格式

    如果BGP报文头中的TYPE为2,则该报文为UPDATE报文。报文头后面所接的报文内容如下(RFC 4271),UPDATE报文用于通告路由。

    报文格式

    图1UPDATE报文格式

    字段

    长度

    含义

    Withdrawn Routes Length

    2个字节(无符号位)

    标明Withdrawn Routes部分的长度。其值为零时,表示没有撤销的路由。

    Withdrawn Routes

    变长

    包含要撤销的路由列表,列表中的每个单元包含1字节的Length域和可变长度的Prefix域。

    Length:待撤销路由的掩码。其值为零时,表示匹配所有的路由。

    Prefix:传送的IP地址前缀必须用整字节表示。例如:假定待撤销的路由为200.200.200.200,其编码用16进制表示可如下:

    Mask掩码(十进制) Length Prefix

    32 20 C8 C8 C8 C8

    25 19 C8 C8 C8 80

    20 14 C8 C8 C0

    15 0F C8 C8

    Total Path Attribute Length

    2个字节(无符号位)

    标明Path Attributes部分和Network

    Layer Reachability Information两部分的长度。其值为零时,表示没有路由及其路由属性要通告。

    Path Attributes

    变长

    包含要更新的路由属性列表,按其类型号从小到大的顺序排序,填写更新的路由的所有属性。每一个属性单元包括属性类型,属性长度,属性值三部分。其编码采用TLV格式。如下所示。

    图2BGP路径属性TLV格式

    其中,Attr.TYPE占2个字节(无符号位),包括1字节的Flags(无符号位)和1字节的Type Code(无符号位)。

    图3TLV结构-Type

    Attr.Flags:占1个字节(8个bit),表示属性的标记,其每个bit位的意义如下显示:

    O: Optional bit, 属性的可选性。决定属性是否为必携带属性。带可选属性(optional)设为1,公认属性(well-known)设为零。

    T: Transitive bit 属性的可传递性。对于可选属性,是可传递的设为1,非可传递的设为0。对于公认属性必须设为1。

    P: Partial bit 属性的局部性。对于可传递的可选属性是局部的设为1,是完全的设为零。对于非可传递的的可选属性和公认属性,必须设为零。

    E: Extended Length bit 决定该属性的长度的字段(即Attr. Length)是否需要扩展。不需要扩展则设为零,Attr. Length占1个字节;需要扩展则设为1,Attr.

    Length占2个字节。

    U: Unused bits 低4位没有使用,发送时必须全部设为零,并且在接收时被忽略。

    Attr.Type Code:占1个字节(无符号位),表示属性的类型号。设置如下表2。

    Attr.Value:根据不同属性的类型填写不同内容。

    Network Layer Reachability Information(NLRI)

    变长

    包含要更新的地址前缀列表,每一个地址前缀单元由一个LV二元组(prefix

    length, the prefix of the reachable route)组成,其编码填写方法与Withdrawn

    Routes的填写方法相同。

    表1路由属性的类型号列表

    属性类型

    属性值

    1:Origin

    IGP

    EGP

    Incomplete

    2:As_Path

    AS_SET

    AS_SEQUENCE

    AS_CONFED_SET

    AS_CONFED_SEQUENCE

    3:Next_Hop

    下一跳的IP地址

    4:Multi_Exit_Disc

    MED用于判断流量进入AS时的最佳路由

    5:Local_Pref

    Local_Pref用于判断流量离开AS时的最佳路由

    6:Atomic_Aggregate

    BGP Speaker选择聚合后的路由,而非具体的路由

    7:Aggregator

    发起聚合的路由器ID和AS号

    8:Community

    团体属性

    9:Originator_ID

    反射路由发起者的Router ID

    10:Cluster_List

    反射路由经过的反射器列表

    14:MP_REACH_NLRI

    多协议可达NLRI

    15:MP_UNREACH_NLRI

    多协议不可达NLRI

    16:Extended

    Communtities

    扩展团体属性

    BGP的NOTIFICATION报文格式

    如果BGP报文头中的TYPE为3,则该报文为NOTIFICATION报文。报文头后面所接的报文内容如下(RFC 4271),NOTIFICATION报文用于处理BGP进程中的各种错误。

    图1NOTIFICATION报文格式

    各字段解释如下:

    Error code:占1个字节(无符号位),定义错误的类型,非特定的错误类型用零表示。

    Error subcode:占1个字节(无符号位),指定错误细节编号,非特定的错误细节编号用零表示。

    Data:指定错误数据内容。

    错误码

    错误子码

    1:消息头错误

    1:连接未同步

    2:错误的消息长度

    3:错误的消息类型

    2:Open消息错误

    1:不支持的版本号

    2:错误的对等AS

    3:错误的BGP标识符

    4:不支持的可选参数

    5:认证失败

    6:不可接受的保持时间

    7:不支持的能力

    3:Update消息错误

    1:畸形属性列表

    2:不可识别的公认属性

    3:缺少公认属性

    4:属性标志错误

    5:属性长度错误

    6:无效Origin属性

    7:AS路由环路

    8:无效Next_Hop属性

    9:可选属性错误

    10:无效网络字段

    11:畸形AS_Path

    4:Hold Timer溢出

    0:没有特别的错误子码定义。

    5:有限状态机错误

    0:没有特别的错误子码定义。

    6:终止

    1:前缀超过最大值。

    2:管理关闭

    3:删除邻居

    4:管理重置

    5:连接失败

    6:其他配置改变

    7:连接冲突

    8:资源短缺

    9:BFD断开连接

    Error Code

    Error Subcode

    1: Message header error

    1: connection not synchronized

    2: error message length

    3: error message type

    2: Open message error

    1: unsupported version number

    2: error peer AS

    3: error BGP identifier

    4: unsupported optional parameter

    5: authentication failed

    6: unacceptable Holdtime

    7: unsupported capability

    3: Update message error

    1: malformed attribute list

    2: unrecognized well-known attribute

    3: well-known attribute is missing

    4: attribute flags error

    5: attribute length error

    6: invalid origin attribute

    7: AS routing loop

    8: invalid Next-Hop attribute

    9: error optional attribute

    10: invalid network field

    11: abnormal AS-Path

    4: Hold timer expired

    0: no special definition of the error subcode

    5: Finite state machine error

    0: no special definition of the error subcode

    6: Cease

    1: maximum number of prefixes reached

    2: administrative shutdown

    3: peer de-configured

    4: administrative reset

    5: connection rejected

    6: other configuration change

    7: connection collision resolution

    8: out of resources

    9: BFD session Down

    BGP KEEPALIVE报文格式

    报文格式

    如果BGP报文头中的TYPE为4,则该报文为KEEPALIVE报文。KEEPALIVE报文用于保持BGP连接。

    KEEPALIVE报文只有BGP报文头,没有具体内容,故其报文长度应固定为19个字节。

    BGP的REFRESH报文格式

    如果BGP报文头中的TYPE为5,则该报文为REFRESH报文。报文头后面所接的报文内容如下(RFC 2918),REFRESH报文用于动态的请求BGP路由发布者重新发布UPDATE报文,进行路由更新。

    报文格式

    图1REFRESH报文格式

    Field字段

    Length长度

    Description描述

    AFI

    2字节(无符号位)

    表示地址族id,与UPDATE报文中的定义相同。

    Res.

    1字节(无符号位)

    所有为应全为零,在接收报文时,此位被忽略。

    SAFI

    1字节(无符号位)

    与UPDATE报文中的定义相同。

    展开全文
  • BGP(2):BGP报文格式

    千次阅读 2019-09-30 14:39:59
    10.2 BGP报文格式 BGP 的报文承载于 TCP 报文,如图10-7所示。 图10-7BGP 报文承载于 TCP 报文 BGP 报文所对应的 TCP 端口号是179。与其他协议一样,BGP 报文也分为2部分:BGP Header、BGP Data。下面我们...
  • 6.3.1 BGP报文头基本格式 655 6.3.2 BGP OPEN 657 6.3.3 BGP UPDATE 662 6.3.4 BGP NOTIFICATION 668 6.3.5 BGP KEEPALIVE 672 6.3.6 BGP REFRESH 675 6.4 BOOTP 678 6.5 DHCP 685 6.6 DHCPv6 705 6.7 Diameter 711 ...
  • BGP报文类型

    万次阅读 多人点赞 2018-05-24 17:38:23
    BGP报文头部格式 BGP报文BGP报文头和具体报文内容两部分组成。(RFC4271) BGP的运行是通过消息驱动的,共有5种消息类型,这些消息有相同的报文头。这些消息通过TCP协议进行传播(端口号是179)。消息最长为...
  • BGP——报文讲解

    千次阅读 2022-03-21 11:30:36
    BGP报文头部: 1.Marter:检查BGP对等体的同步信息是否完整,不使用此验证时所有比均为1  ----此处就是不使用此验证 2.Length:BGP消息的总长度,包括报文头部在内  ----长度为19~4096 3.Type:BGP的消息...
  • bgp报文分析.pptx

    2019-12-29 19:03:38
    Bgp报文分析;Bgp概述;Bgp的特性;Bgp的五种种报文;Bgp的公共报文头;Open报文格式;open报文;Open报文;Update报文格式;Update报文;Update报文;Update报文;Update报文;Keeplive报文格式;Notification报文格式;...
  • 一、路由选择协议分类、 二、BGP 协议 简介、 三、BGP 协议 信息交换过程、 三、BGP 协议 报文格式、 四、BGP 协议 特点、 五、BGP-4 协议的 四种报文、 六、RIP 、OSPF、BGP 对比、
  • BGP的消息类型以及格式

    万次阅读 2017-06-05 15:42:13
    1. BGP的消息类型:bgp是建立在tcp之上的协议,tcp端口号179 1:open(打开消息) 2:keepalive(存活消息) ...Maker(16字节)——-全为1,标识bgp报文边界 Length(2字节)——-BGP包全长,长度的值必须最少19字节最
  • 网络协议报文格式大全 BGP DHCP SNMP L2TP DNS ARP OSPF等多种格式网络报文
  • BGP学习历程(报文分析与状态机)

    千次阅读 2022-01-06 10:48:32
    BGP报文格式 所有的BGP报文都需要遵循以下格式 Header:头 Message:详细信息 Data:数据 BGP报文头部(Header) 是所有BGP报文都有的头部,包含以下三要素: 1.标识符:16字节,均为1,表现为均是f 2.长度:包头+...
  • IP报文格式详解

    千次阅读 2021-01-27 22:17:58
    IP报文首部讲解 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service|
  • BGP邻居建立过程及报文详解 BGP是基于TCP的,要建立邻居首先得建立TCP连接,所以要保证邻居地址可达,可以利用IGP协议来完成邻居的连通性。所以我们在R1和R2上分别配置静态路由完成邻居连通性R1:iproute10.10.10....
  • tcp端口号179 1:open(打开消息) 2:keepalive(存活消息) 3:update(更新消息) 4:notification(报错消息) 3、BGP包头格式: bgp的所有消息都会以该头开始 Maker(16字节)——-全为1,标识bgp报文边界 Length(2字节)——-...
  • MPLS报文格式

    千次阅读 2020-06-01 14:36:28
    1024及以上:LDP、RSVP-TE(Resource Reservation Protocol-Traffic Engineering)、MP-BGP(MultiProtocol Border Gateway Protocol)等动态信令协议的标签空间。 LSP的建立 MPLS需要为报文事先分配好标签,建立一...
  • BGP协议分析_报文和状态机 详解了解BGP技术
  • Technorati 标签:BGP,CCIE,CCNP,原理,基础BGP博大精深,在学习的时候我们会发现和传统的IGP有很大的区别,以至于我们在学习的时候很多东西都是在颠覆我们传统的概念,而让学习变得更加困难。学习是一个渐进的过程。...
  • BGP的消息报文类型

    千次阅读 2014-12-07 13:06:18
    BGP的消息报文有以下5种报文 open消息keepalive消息update消息notifacation消息route-refresh消息j、Open消息主要包含的内容:BGP版本、AS号(可用其判断是EBGP还是IBGP);Holdtime(表示路由器在收到Keeplive消息...
  • BGP邻居建立过程及报文详解BGP是基于TCP的,要建立邻居首先得建立TCP连接,所以要保证邻居地址可达,可以利用IGP协议来完成邻居的连通性,所以我们在R1和R2上分别配置静态路由完成邻居连通性R1:ip route 10.10....
  • 首先我们可以看到在应用层,根据当前的需求和动作,结合应用层的协议,有我们确定发送的数据内容,我们把这些数据放到一个缓冲区内,然后形成了应用层的报文data。 主要协议如下: HTTP (Hypertext Transfer ...
  • BGP协议基础

    2021-09-06 10:06:40
    BGP 边界网关路由协议 边界:AS的边界 AS:同一个技术管理机构管理,如企业,ISP IGP:AS内部网关路由协议,实现AS内部的互联互通,如OSPF、ISIS BGP:AS互联互通的一种路由协议 AS号:取值范围1-65535 64512-65535...
  • BGP基础知识

    千次阅读 2022-03-15 12:18:17
    边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。目前在IPV4环境下主要使用BGPV4,目前市场上也存在BGPV4+,BGP支持多个...
  • BGP数据包结构

    2020-04-13 08:24:07
    open:用来建立最初的BGP连接。(包含hold-time,router-id) Keepalive:对等体之间周期性的交换这些消息以保持会话有效。(默认60秒) Update:对等体之间使用这些消息来交换网络层可达性信息。 Notification:这些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,166
精华内容 2,466
关键字:

bgp 报文格式