BGP(Border Gateway Protocol,边界网关协议)是用来连接Internet上独立系统的路由选择协议。它是Internet工程任务组制定的一个加强、完善、可伸缩文档协议。BGP4支持CIDR寻址方案,该方案增加了Internet上的可用IP地址数量。BGP是为取代最初的外部网关协议EGP设计的。它被认为是一个路径矢量协议。BGP是一种在自治系统之间动态交换路由信息的路由协议。
1、BGP特性
BGP特性可以总结为以下几点:
(1)BGP将传输控制协议(TCP)用作其传输协议,是可靠传输,运行在TCP的179端口上(目的端口)。
(2)由于传输是可靠的,所以BGP使用增量更新,在可靠地链路上不需要使用定期更新,所以BGP使用触发更新。
(3)类似于OSPF和ISIS路由协议的Hello报文,BGP使用keepalive周期性地发送存活消息(60s)来维持邻居关系。
(4)BGP在接收更新分组的时候,TCP使用滑动窗口。
(5)丰富的属性值。
(6)可以组建可扩展的大型的网络。
2、BGP的三张表
(1)邻居关系表:包含所有BGP邻居。
(2)转发数据库:记录每个邻居的网络;包含多条路径去往同一目的地,通过不同属性判断最好路径;数据库包括BGP属性。
(3)路由表:最佳路径放入路由表中。EBGP路由(从外部AS获悉的BGP路由)的管理距离为20,IBGP路由(从AS系统获悉的路由)管理距离为200。
3、BGP的消息类型
(1)open(打开):用来建立最初的BGP连接,包含hold-time,router-id。
(2)Keepalive(保活):对等体之间周期性地交换这些消息以保持会话有效,默认为60s。
(3)Update(更新):对等体之间使用这些消息来交换网络层可达性消息。
(4)Notification(通知):这些消息用来通知出错信息。
4、建立邻居的过程
在两个BGP发言人交换信息之前,BGP都要求建立邻居关系,BGP不是动态地发现所感兴趣运行BGP的路由器;相反,BGP使用一个特殊的邻居IP地址来配置的。
BGP使用周期性地Keepalive分组来确认BGP邻居的可访问性。Keepalive计时器是保持时间(Hold Time)的三分之一,如果发给某一特定BGP邻居三个连续的Keepalive分组都丢失的话,保持时间计时器超时,那个邻居被视为不可达,RFC1771对保持时间的建议是90s,Keepalive计时器的建议值是30s。
按照RFC1771,BGP建立邻居关系要经历一下几个阶段,如图所示:
(1)Idle:在此状态下不分配网络资源,不允许传入的BGP连接。当在持续性差错条件下,经常性的重启会导致波动。因此,在第一次进入到空闲状态后,路由器会设置连接重试定时器,在定时器到期时才会重新启动BGP,思科的初始连接重试时间为60秒,以后每次连接重试时间都是之前的两倍,也就是说,连接等待时间呈指数关系递增。
(2)Connect:(已经建立完成了TCP的三次握手),BGP等待TCP连接完成,如果连接成功,BGP在发送了OPEN分组给对方之后,状态机变为OpenSent状态,如果连接失败,根据失败的原因,状态机可能演变到Active,或保持Connect,或返回Idle。
(3)Active:在这个状态下,初始化一个TCP连接来建立BGP间的邻居关系。如果连接成功,BGP在发送了OPEN分组给对方之后,状态机变为OpenSent状态,如果连接失败,可能仍处在Active状态或返回Idle状态。
(4)OpenSent:BGP发送OPEN分组给对方之后,BGP在这一状态下等待OPEN的回应分组,如果回应分组成功收到,BGP状态变为OpenConfirm,并给对方发送一条Keepalive分组,如果没有接到回应分组,BGP状态重新变为Idle或是Active。
(5)OpenConfirm:这时,距离最后的Established状态只差一步,BGP在这个状态下等待对方的Keepalive分组,如果成功接收,状态变为Established;否则,因为出现错误,BGP状态将重新变为Idle。
(6)Established:这是BGP对等体之间可以交换信息的状态,可交换的信息包括UPDATE分组、Keepalive分组和Notification分组。
5、建立IBGP邻居
IBGP运行在AS内部,不需要直连。IBGP有水平分割,建议使用Full Mesh,由于Full Mesh不具有扩展性,为了解决IBGP的Full Mesh问题,使用路由反射器(RR)和联邦两种方法来解决。主要解决了backbone IGP中的路由。
可以使用下面两种方法来建立IBGP邻居:
(1)邻居之间可以通过各自的一个物理接口建立对等关系,该对等关系是通过属于它们共享的子网的IP地址来建立的。
(2)邻居之间也可以通过使用环回接口建立对等关系。
在IBGP中,由于假定了IBGP邻居在物理上直接相连的可能性不大,所以将IP分组头的TTL域设置为255。
6、建立EBGP邻居
EBGP运行在AS与AS之间的边界路由器上,默认情况下,需要直连或静态路由,如果不是直连,必须指EBGP多跳。
可以使用下面两种方法来建立EBGP邻居:
(1)邻居之间可以通过各自的一个物理接口建立对等关系。
(2)邻居之间也可以通过使用环回接口建立对等关系。
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: wxii2p22