重拾BGP-1

BGP存储数据路由信息的数据库叫RIB(Routing Information Base)
这个数据库分三个部分

  • Adj-RIB-In ,保存BGP Speaker从邻居学到 路由信息,即初初始路由;
  • RIB,保存经过决策从Adj-RIB-In选取的路由信息,即最优路由;
  • Adj-RIBs-Out,保存BGP Speaker发给邻居的路由信息,即发布路由。

使用TCP作为承载协议,使用端口号179,采用手工静态方式配置发现邻居,只要指定路由可达,就可以建立邻居。好处如下:

  • 采用环回口建立邻居,主链路中断,路由不断,可以切换到备线路,保持邻居不断。
  • 可以跨越多台设备建立邻居。可减少AS域内全连接链路建设。

同一AS内,设备间邻居叫IBGP,不同AS间,叫EBGP,运行BGP的设备叫BGP Speaker,相互间称对等体BGP peer。

BGP四种消息报文的用途:OPEN用来 建立邻居,KEEPALIVE维持邻居,UPDATE发布路由信息, NOTIFICATION通知对端检测到错误。

BGP建立邻居采用有限状态机,共有6种状态:

Idle
BGP协议初始时是处于Idle状态。在这个状态时,系统不分配 任何资源,也拒绝所有进入的BGP连接。只有收到Start Event 时,才分配BGP资源,启动ConnectRetry计时器,启动对其它 BGP对等体的传输层连接,同时也侦听是否有来自其它对等体 的连接请求。

Connect
这个状态下,BGP等待TCP完成连接。若连接成功,本地清空 ConnectRetry计时器,并向对等体发送OPEN报文,然后状态改变 为OpenSent状态;否则,本地重置ConnectRetry计时器,侦听是 否有对等体启动连接,并移至Active状态。

Active
这个状态下,BGP初始化TCP连接来获得一个对等体。如果连接 成功,本地清空ConnectRetry计时器,并向对等体发送OPEN报 文,并转至OpenSent状态。

OpenSent
这个状态下,BGP等待对等体的OPEN报文。收到报文后对报文进 行检查,如果发现错误,本地发送NOTIFICATION报文给对等体, 并改变状态为IDLE。如果报文正确,BGP发送KEEPALIVE报文, 并转至OpenConfirm状态。

OpenConfirm
这个状态下,BGP等待KEEPALIVE或NOTIFICATION报文。如 果收到KEEPALIVE报文,则进入Established状态,如果收到 NOTIFICATION报文,则变为Idle状态。

Established
这个状态下, BGP可以和其他对等体交换UPDATE, NOTIFICATION,KEEPALIVE报文。如果收到了正确的UPDATE或 KEEPALIVE报文,就认为对端处于正常运行状态,本地重置Hold Timer。如果收到NOTIFICATION报文,本地转到Idle状态。如果收 到错误的UPDATE报文,本地发送NOTIFICATION报文通知对端, 并改变本地状态为Idle。如果收到了TCP拆链通知,本地关闭BGP 连接,并回到Idle状态。

你可能感兴趣的:(重拾BGP-1)