「BGP」- 边界网关协议 | Border Gateway Protocol

认识

为方便管理规模不断扩大的网络,网络被分成不同的 AS(Autonomous System,自治系统)。

但是 IGP 不适用于 AS 环境:

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

早期,EGP(Exterior Gateway Protocol,外部网关协议)被用于实现在 Inter-AS 动态交换路由信息。但是 EGP 设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。

BGP 是为取代最初的 EGP 而设计的另种外部网关协议。与最初的 EGP 不同,BGP 能够进行路由优选、避免路由环路、更高效率的传递路由、维护大量的路由信息。

1980 年,AS 概念提出:1980 年左右,随着网络规模变大,路由数量不断增加,为了解决该问题提出 AS 概念,Inter-AS 使用 EGP;

1989 年,BGP 首个 RFC 发布(RFC1105,BGP-1):EGP 只发布路由,不控制路由优选、无环路避免机制。

1990 年,发布的 RFC1163 提出路径属性概念,自此 BGP 可以基于路径属性进行路由优选、路径控制。

现在 BGP 是个应用非常广泛的边界网关路由协议,在全球范围内被大量部署。

在 Wikipedia 中,BGP 被认为是 Applicaiton Layer 协议。而在其他文章或讨论中,BGP 被划为 Layer 4 协议。

组成

通过建立 TCP 连接,来相互发送路由条目;

性质

当不同 AS 间需要进行通信时,在 AS 间使用 BGP 路由协议进行路由的传递:
1)BGP 基于 TCP,使用 TCP 作为其传输层协议(端口号为 179),只要能够建立 TCP 连接便可建立 BGP 连接;
2)能够承载大批量的路由信息,能够承载大规模网络;
3)BGP 定义多种路径属性,并且提供丰富的路由策略工具,这使得其在路由操控和路径决策上变得非常灵活,能够灵活的进行路由选路,并能指导对等体按策略发布路由。对 BGP 路由的各种属性的操作都可能影响路由的优选,从而对网络的流量产生影响,所以说 BGP 路由的优选规则十分重要。
4)只传递路由信息,不会暴露 Intra-AS 的拓扑信息;
5)触发式更新(BGP 更新的路由条目通常较多,所以需要快速更新机制),而非周期性更新(需要等待收敛);
6)BGP 能够支撑 MPLS/VPN 的应用,传递客户 VPN 路由
7)BGP 提供路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高网络稳定性;

应用

运营商与运营商:同步路由信息,需要 ASBR 完成;两个 AS 之间同步路由,需要 ASBR 设备;⇒ 这些 ASBR 运行 BGP 协议,以互相传递路由;

企业与运营商间:可使用 BGP 进行路由交互,使得企业网络获得到达运营商网络的具体路由,运营商也可获得到达企业内部的路由。

企业内部互通:当总部与分支互联时,如果需要同步路由信息,依旧能够使用 BGP 来传递路由信息;

在数据中心里,也会使用 BGP 协议(其特点决定)

route-server.ip.att.net(全球 IP 路由)

# telnet route-server.ip.att.net
Trying 12.0.1.28...
Connected to route-server.cbbtier3.att.net.
Escape character is '^]'.
-------------- route-server.ip.att.net ---------------
---------  AT&T IP Services Route Monitor  -----------

The information available through route-server.ip.att.net is offered
by AT&T's Internet engineering organization to the Internet community.

This router maintains eBGP peerings with customer-facing routers
throughout the AT&T IP Services Backbone:

 IPv4:           IPv6:                             City:
 12.122.124.12   2001:1890:ff:ffff:12:122:124:12   Atlanta, GA
 12.122.124.67   2001:1890:ff:ffff:12:122:124:67   Cambridge, MA
 12.122.127.66   2001:1890:ff:ffff:12:122:127:66   Chicago, IL
 12.122.124.138  2001:1890:ff:ffff:12:122:124:138  Dallas, TX
 12.122.83.238   2001:1890:ff:ffff:12:122:83:238   Denver, CO
 12.122.120.7    2001:1890:ff:ffff:12:122:120:7    Fort Lauderdale, FL
 12.122.125.6    2001:1890:ff:ffff:12:122:125:6    Los Angeles, CA
 12.122.125.44   2001:1890:ff:ffff:12:122:125:44   New York, NY
 12.122.125.106  2001:1890:ff:ffff:12:122:125:106  Philadelphia, PA
 12.122.125.132  2001:1890:ff:ffff:12:122:125:132  Phoenix, AZ
 12.122.125.165  2001:1890:ff:ffff:12:122:125:165  San Diego, CA
 12.122.126.232  2001:1890:ff:ffff:12:122:126:232  San Francisco, CA
 12.122.159.217  2001:1890:ff:ffff:12:122:159:217  San Juan, PR
 12.122.125.224  2001:1890:ff:ffff:12:122:125:224  Seattle, WA
 12.122.126.9    2001:1890:ff:ffff:12:122:126:9    St. Louis, MO
 12.122.126.64   2001:1890:ff:ffff:12:122:126:64   Washington, DC

*** Please Note:
Ping and traceroute delay figures measured here are unreliable, due to the
high CPU load experienced when complicated show commands are running.

For questions about this route-server, send email to: jayb@att.com

*** Log in with username 'rviews', password 'rviews' ***

login: Login attempt timed out after 120 seconds
Connection closed by foreign host.

参考

What is BGP and How Does Border Gateway Protocol Work?
Networking 101: Understanding BGP Routing | Enterprise Networking Planet