BGP报文类型及更新机制

数通

BGP从1989年就已经开始使用。它最早发布的三个版本分别是RFC1105(BGPv1)、RFC1163(BGPv2)和RFC1267(BGPv3),当前使用的是RFC4271/RFC1771(BGPv4)。BGPv4正迅速成为Internet边界路由协议标准

动态路由协议可以按照工作范围分为IGP以及EGP

IGP:在AS内发现和计算路由,比如ospf、rip、isis
EGP:在AS间传递和控制路由,比如BGP

BGP基于TCP,端口号179
RIP基于UDP,端口号520
OSPF基于IP,协议号89

BGP是主要工作在AS与AS间的动态路由协议,为AS间提供无环路的路由信息交互采用距离矢量算法(DV算法)

2字节长度AS号码
自治系统的编号范围是从1到65535,
1到64511是注册的因特网编号,64512到65535是私有网络编号

4字节长度AS号码
范围65536到4294967295

BGP更新机制:

  1. 无需周期性更新
  2. 路由更新:只发送增量路由(只发增加、删除、修改的信息,只在第一次发送全部的信息,以后都是增量更新,会记录第一次发送的信息,进行更新时进行比对)
  3. 周期性发送keepAlive报文检测TCP的连通性(默认60s)

BGP报文有五种类型:

  • Open:负责和对等体建立邻居关系。
  • KeepAlive:该消息在对等体之间周期性地发送,用以维护连接。
  • Update:该消息被用来在BGP对等体之间传递路由信息。
  • Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。
  • Route-refresh:用来通知对等体自己支持路由刷新能力。

Open报文:

BGP报文类型及更新机制-下一朵云

vers:BGP版本(V4)
My Autonomous System:AS号
Hold Time:保持时间(3倍keepalive时间 180s)

Notification报文:

BGP报文类型及更新机制-下一朵云
BGP报文类型及更新机制-下一朵云

Route-Refresh报文:

在所有BGP路由器使能Route-refresh能力的情况下,如果BGP的入口路由策略发生了变化,本地BGP路由器会向对等体发布Route-refresh消息,收到此消息的对等体会将其路由信息重新发给本地BGP路由器。这样,可以在不中断BGP连接的情况下,对BGP路由表进行动态刷新,并应用新的路由策略。

OSPF、ISIS的邻居关系是自动建立的,而BGP邻居的建立必须手动完成

BGP邻居关系是建立在TCP会话的基础之上的,而两个运行BGP的路由器要建立TCP的会话就必须要具备IP连通性。(简单来说可以ping通)

BGP建立两种邻居:IBGP EBGP

IBGP:在AS内部建立 ,一般用loop口建立邻居
EBGP:在AS间建立,一般用物理接口建立邻居

重点:BGP路由的四条通告原则:

  1. 只把自己获得的最优的路由信息发布给对等体
  2. 通过EBGP获得的路由信息发布给所有对等体,但是IBGP学到BGP路由下一跳不可达,不会添加到IP路由表,可以修改下一跳:next-hop-local
  3. 通过IBGP获得的路由信息不会发布给IBGP对等体。全互联方式可以发布给IBGP对等体(一般不采用)
  4. 通过IBGP获得的路由信息是否会发布给EBGP对等体,取决于IGP和EGP是否同步:
    同步:就是通过IGP(ospf、rip、isis等协议)是否能学到这条路由,如果能学到再发布给EBGP对等体
    解决:BGP引入IGP,不建议使用,会使路由表庞大,占用带宽资源。也可以IBGP之间实现全互联。