Loading

Network系列:BGP基础及关系建立过程(一)

1. BGP基础概念

1.1 AS

image-20220928092112374

  • OSPF、IS-IS等IGP路由协议在组织机构网络内部广泛应用,随着网络规模扩大,网络中路由数量不断增长,IGP已无法管理大规模网络,AS的概念由此诞生。
  • AS指的是在同一个组织管理下,使用统一选路策略的设备集合。

当不同AS之间需要进行通信时,在AS之间应使用何种路由协议进行路由的传递?


1.2 使用IGP传递路由

image-20220928092318264

  • AS之间需要直连链路,或通过VPN协议构造逻辑直连(例如GRE Tunnel)进行邻居建立。
  • AS之间可能是不同的机构、公司,相互之间无法完全信任,使用IGP可能存在暴露AS内部的网络信息的风险。
  • 整个网络规模扩大,路由数量进一步增加,路由表规模变大,路由收敛变慢,设备性能消耗加大。

1.3 使用BGP传递路由

image-20220928092455258

为此在AS之间专门使用BGP(Border Gateway Protocol,边界网关协议)协议进行路由传递,相较于传统的IGP协议:

  1. BGP基于TCP,只要能够建立TCP连接即可建立BGP。
  2. 只传递路由信息,不会暴露AS内的拓扑信息。
  3. 触发式更新,而不是进行周期性更新。

1.4 BGP在企业中应用

image-20220928100448821


1.5 BGP的特点

  • BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol)。

  • 每条BGP路由都携带多种路径属性(Path attribute),BGP可以通过这些路径属性控制路径选择,而不像IS-IS、OSPF只能通过Cost控制路径选择,因此在路径选择上,BGP具有丰富的可操作性,可以在不同场景下选择最合适的路径控制方式。


BGP的特点:

  1. BGP使用TCP作为其传输层协议(端口号为179),使用触发式路由更新,而不是周期性路由更新。
  2. BGP能够承载大批量的路由信息,能够支撑大规模网络。
  3. BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导对等体按策略发布路由。
  4. BGP能够支撑MPLS/VPN的应用,传递客户VPN路由。
  5. BGP提供了路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高了网络稳定性。

1.6 BGP对等体关系

image-20220928132543599

与OSPF、IS-IS等协议不同,BGP的会话是基于TCP建立的。建立BGP对等体关系的两台路由器并不要求必须直连。BGP存在两种对等体关系类型:EBGP及IBGP:

  • EBGP(External BGP):位于不同自治系统的BGP路由器之间的BGP对等体关系。两台路由器之间要建立EBGP对等体关系,必须满足两个条件:

    • 两个路由器所属AS不同(即AS号不同)。

    • 在配置EBGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。

  • IBGP(Internal BGP):位于相同自治系统的BGP路由器之间的BGP邻接关系。


2. BGP关系建立过程

image-20220928134152699

  • 先启动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

Tips:BGP建立对等体的对等体都会发起TCP三次握手,所以会建立两个TCP连接,但是实际BGP只会保留其中一个TCP连接,从Open报文中获取对端BGP Identifier之后BGP对等体会比较本端的Router ID和对端的Router ID大小,如果本端Router ID小于对端Router ID,则会关闭本地建立的TCP连接,使用由对端主动发起创建的TCP连接进行后续的BGP报文交互。


image-20220928134909305

BGP对等体关系建立之后,BGP路由器发送BGP Update(更新)报文通告路由到对等体。


指定TCP连接源地址

image-20220928135544763

  • 缺省情况下,BGP使用报文出接口作为TCP连接的本地接口。
  • 在部署IBGP对等体关系时,建议使用Loopback地址作为更新源地址。Loopback接口非常稳定,而且可以借助AS内的IGP和冗余拓扑来保证可靠性。
  • 在部署EBGP对等体关系时,通常使用直连接口的IP地址作为源地址,如若使用Loopback接口建立EBGP对等体关系,则应注意EBGP多跳问题。

一般而言在AS内部,网络具备一定的冗余性。在R1与R3之间,如果采用直连接口建IBGP邻居关系,那么一旦接口或者直连链路发生故障,BGP会话也就断了,但是事实上,由于冗余链路的存在,R1与R3之间的IP连通性其实并没有DOWN(仍然可以通过R4到达彼此)。

posted @ 2023-09-18 09:51  YinJayChen  阅读(324)  评论(0编辑  收藏  举报