[网络工程师]-路由协议-BGP路由协议

        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)邻居之间也可以通过使用环回接口建立对等关系。

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

579YOU

对您有用的话给个鼓励吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值