BGP概述

AS

OSPF、IS-IS等IGP路由协议在组织机构网络内部广泛应用,随着网络规模扩大,网络中路由数量不断增长,IGP已无法管理大规模网络,AS的概念由此而生。

AS指的的是在同一组织管理下,使用统一策略的设备集合。

不同AS通过AS号区分,AS号存在16bit、32bit两种表示方式。IANA负责AS号的分发。当不同的AS之间需要进行通信时,在AS之间应使用何种路由协议进行路由的传递?

  • IANA(Internet Assigned Numbers Authority,因特网地址分配组织):IAB(Internet Architecture Board,因特网体系委员会)的下设组织。IANA授权NIC(Network Information Center,网络信息中心)和其他组织负责IP地址和域名分配,同时,IANA负责维护TCP/IP协议族所采用的协议标识符数据库,包括自治系统号。
  • 在长度为16bit的AS号表示方式中:64512-65534为私有AS号,在长度为32bit的AS号表示方式中:4200000000-4294967294为私有AS号。

使用IGP传递路由

AS之间需要直连链路,或通过VPN协议构造逻辑直连(例如GRE Tunnel)进行邻居建立。

AS之间可能是不同的机构、公司,相互之间无法完全信任,使用IGP可能存在暴露AS内部的网络信息的风险。

整个网络规模扩大,路由数量进一步增加,路由表规模变大,路由收敛变慢,设备性能消耗加大。

  • VPN(virtual private network,虚拟专用网):使用虚拟专业网络技术可以从逻辑上建立一个直接连接的网络。

使用BGP传递路由

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

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

BGP历史

BGP基本概念

BGP概述

BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络(如IPv6等)使用的版本是MP-BGP(RFC4760)。

BGP的特点:

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

BGP对等体关系

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

BGP存在两种对等体关系类型:EBGP及IBGP:

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

    • 两个路由器所属AS不同(即AS号不同)。
    • 在配置EBGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。
  2. IBGP(Internal BGP):位于相同自治系统的BGP路由器之间的BGP邻接关系。

通告原则

BGP通过network、import-route、aggregate聚合方式生成BGP路由后,通过Update报文将BGP路由传递给对等体。

BGP通告遵循以下原则:

  • 只发布最优且有效路由。
  • 从EBGP对等体获取的路由,会发布给所有对等体。
  • IBGP水平分割:从IBGP对等体获取的路由,不会发送给IBGP对等体。
  • BGP同步规则指的是:当一台路由器从自己的IBGP对等体学习到一条BGP路由时(这类路由被称为IBGP路由),它将不能使用该条路由或把这条路由通告给自己的EBGP对等体,除非它又从IGP协议(例如OSPF等,此处也包含静态路由)学习到这条路由,也就是要求IBGP路由与IGP路由同步。同步规则主要用于规避BGP路由黑洞问题。