其他分享
首页 > 其他分享> > BGP协议初探

BGP协议初探

作者:互联网

简介

边界网关协议BGP(Border Gateway Protocol)可以实现自治系统AS(Autonomous System)之间的路由传递,可以在节点上实现最佳路由选路。BGP协议使用TCP协议进行传输,监听179端口。同一个自治系统(AS)中的两个或多个对等实体之间运行的BGP 被称为 IBGP,归属不同的AS的对等实体之间运行的BGP称为EBGP。

 

一些概念

  

BGP消息类型

 

 

BGP邻居建立过程

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

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

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

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

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

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

 

 

BGP属性

 

 

 

BGP使用原则

 

 

 

BGP路由选路

最优路由有三种情况:

一般来说,BGP计算路由优先级采用如下规则:

Tie-break采用如下过程:

 

 

路由反射器

路由反射器几种角色信息

基本原理

 

 

路由聚合

在大规模的网络中,BGP路由表变得十分庞大,存储路由表占有大量的路由器内存资源,传输和处理路由信息所必需的带宽和路由器传送与处理路由信息需要大量的资源。使用路由聚合(Routes Aggregation)可以大大减小路由表的规模;另外通过对路由的条目的聚合,隐藏一些具体的路由从而减少路由震荡对网络带来的影响。BGP路由聚合结合灵活的路由策略,从而使BGP更有效的传递和控制路由。

BGP在IPv4网络中支持自动聚合和手动聚合两种方式,而IPv6网络中仅支持手动聚合方式:

为了避免路由聚合可能引起的路由环路,BGP设计了AS_Set属性。AS_Set属性是一种无序的AS_Path属性,标明聚合路由所经过的AS号。当聚合路由重新进入AS_Set属性中列出的任何一个AS时,BGP将会检测到自己的AS号在聚合路由的AS_Set属性中,于是会丢弃该聚合路由,从而避免了路由环路的形成

 

 

 

​其他

路由处理过程

 

BGP路由过滤手段

 

路由过滤实施点

 

标签:协议,IBGP,报文,BGP,对等体,初探,路由,属性
来源: https://www.cnblogs.com/tla001/p/14224115.html