BGP基础

BGP介绍 为了管理规模不断扩大的网络,网络被分为了不同的AS(Autonomous System,自治系统),早期EGP(Exterior Gateway Protocol,外部网关协议)被实现在AS之间动态交换路由信息,但EGP知识简单发布网络可达的路由信息,没有考虑环路避免和路由优选的问题,因此产生BGP用于完善EGP。 AS指的是在同一个组织管理下,使用同一选路策略的设备集合。不同AS通过AS号区分,AS存在16bit和32bit两种表达方式,在长度为16bit的AS号表示方式中:64512-65534为私有AS号,在长度为32bit的AS号表示方式中:4200000000-4294967294为私有AS号。 BGP在AS之间传递路由,不会暴露AS内拓扑信息,并且基于TCP连接(端口号为179),并且是触发式更新,不是周期性更新。 BGP基本概念 BGP发言者(路由器):运行BGP的路由器 对等体:两个建立BGP会话的路由器互为对等体,BGP对等体互相交换BGP路由表。由于BGP基于TCP连接,因此不需要对等体直连。 路径属性:BGP通过路径属性控制路径选择,不像IS-IS,OSPF只能通过COST控制路由选择,BGP具有丰富的可操作性。 对等体关系建立 对等体关系包括EBGP和IBGP: EBGP:位于不同AS的BGP路由器之间的对等体关系,建立EBGP对等体关系要求两个路由器的AS不同,并且Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能正确建立。 IBGP:位于相同AS的BGP路由器之间的BGP邻接关系。 先启动BGP的一端先发起TCP连接,如上图,R1先启动BGP,R1使用随机端口号向R2的179端口发起TCP连接,通过三次握手完成TCP连接。 建立连接后,R1、R2互相发送Open报文,携带参数用于对等体建立,参数协商正常之后双方相互发送Keepalive报文,收到对端发送的Keepalive报文后对等体建立成功,同时双方定期发送Keepalive报文用于保持连接。 Open报文中包含的参数包括: My Autonomous System:自身AS号 Hold Time:用于协商后续Keepalive报文发送时间 BGP Identifier:自身Router ID 对等体都会发起三次握手,所以会有两个TCP连接,但是实际BGP只会保留其中一个TCP连接,从Open报文中获取对端BGP Identifier之后BGP对等体会比较本端的Router ID 和对端Router ID,会使用Router ID大发起的TCP连接进行后续BGP报文交互。 缺省情况下,BGP使用报文出接口作为TCP连接的本地连接接口。 在部署IBGP对等体关系时,一般使用Loopback地址作为更新源地址。Loopback接口稳定,并且可以借助AS内的IGP和冗余拓扑来保证可靠性。 部署EBGP对等体关系时,通常使用直连的IP地址作为源地址,如果使用Loopback接口建立EBGP对等体关系,应注意EBGP多跳问题。 报文类型 五种报文拥有相同的头部格式: Open报文 Open报文是TCP连接建立之后发送的第一个报文,用于建立BGP对等体之间的连接关系 字段名 作用 Version BGP的版本号。对于BGP 4来说,其值为4 My AS 本地AS号。通过比较两端的AS号可以判断对端是否和本端处于相同AS Hold Time 保持时间。在建立对等体关系时两端要协商Hold Time , 并保持一致。如果在这个时间内未收到对端发来的Keepalive报文或Update 报文,则认为BGP连接中断 BGP Identifier BGP标识符,以IP地址的形式表示,用来识别BGP路由器 Opt Parm Len Optional parameters的长度 Optional parameters 宣告自身对于一些可选功能的支持,比如认证、多协议支持 Update报文 Update报文用于在对等体之间传递路由信息,用于发布、撤销路由。一个Update报文可以通告具有相同路径属性的多条路由,这些路由保存在NLRI(Network Layer Reachable Information,网络层可达信息)中,也可以携带多条不可达路由,用户告知对方撤销路由,保存在Withdrawn Routers字段中。...

更新: 2022-06-10 · 创建: 2022-04-04 · 3 分钟 · McLsk888