初步了解BGP
BGP的基本概念
- bgp是一个无类距离型矢量路由协议,其RID的选举和OSPF的一致
- BGP每一个AS都有一个标识号,范围是1~65535,其中64512 ~65535是保留私用的
- BGP是承载在TCP协议之上的一个路由协议,使用的端口号是179,在对等体之间必须存在IP层连通性
- BGP邻居通常在建立起之后被称为对等体,当邻居建立起来的时候会交换所有的BGP路由,但是当路由表稳定之后,如果有新增则会触发增量更新
邻居概念
- EBGP邻居:一般EBGP邻居是直连,因为会从邻居获取路由,所以TTL默认为1
- IBGP邻居:无需直连,只需要TCP的连通性
BGP特性
- 外部路由协议:主要用于在自治系统之间传递路由信息
- 距离矢量路由,只把自己认为最优的路由条目传给邻居
- 承载路由条目数量多,增量更新
- 路由携带较多属性信息,同时路由控制策略丰富
- 被TCP所承载,更加稳定
- 从IBGP邻居收到的路由条目管理距离为200,从EBGP邻居收到的路由条目管理距离为20
- 不仅可以传递ipv4路由,还可以使用多协议扩展的MP-BGP,还可以传输ipv6,vpnv4,vpnv6
BGP状态机
BGPTimer
- keepalive:默认60s,keepalive计时器不会在open报文中进行交互。如果手工配置的keepalibe小于holdtime,则除3就是取当前值,如果keepalive大于holdtime则取int(holdtime/3)
- holdtime:思科默认180s,该机十七包含在open报文中,在180s中必须收到keepalive或者是更新信息的报文,如果两端holdtime时间不同,则取较小的时间
六种状态
- idle——资源评估:此时正在寻找一条邻居路由并开始准备建立TCP,以及监视远程peer启动TCP,确保BGP启动时有足够的资源
- connect——发TCP包尝试连接:寻找到一条本地路由完成TCP的三次握手,如果没能成功进行TCP连接,则会进入Active状态,尝试反复链接,如果连接成功则进入OpenSent状态
- Active——尝试反复进行TCP连接
- OpenSent——发Open包进行参数协商:TCP建立成功则开始发送Open包进行协商和对等体的建立,收到Open信息后如果存在差错,则会发送Notification信息,如果没有差错将进入Openconfirm状态
- Openconfirm——发送keepalive包,协商参数,参数能力协商成功,如果收到对方的keepalive包则进入Established状态
- Established——发Update,通告路由信息
BGP通告原则
- 只把自己认为最优的路由通告给邻居
- 遵从水平分割原则
- 从EBGP对等体获得的路由会向所有BGP对等体通告
- 从IBGP对等体获得的路由不在向IBGP对等体通告
- 从IBGP对等体学习到的路由成为最佳路径并是否想对等体通告,取决于IGP和BGP同步的设定情况
|