BGP

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算法)

自治系统的编号范围是从1到65535,
1到64511是注册的因特网编号,
64512到65535是私有网络编号

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

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

Open报文:
这里写图片描述
这里写图片描述
vers:BGP版本(V4)
My Autonomous System:AS号
Hold Time:保持时间(3倍keepalive时间 180s)

Update报文:

Notification报文:
这里写图片描述
这里写图片描述
这里写图片描述

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之间实现全互联