问题描述
为方便管理规模不断扩大的网络,网络被分成不同的 AS(Autonomous System,自治系统)。
但是 IGP 不适用于 AS 环境:
1)安全低:AS 间可能是不同的机构、公司,相互间无法完全信任,使用 IGP 可能存在暴露 AS 内部的网络信息的风险。
2)收敛慢:整个网络规模扩大,路由数量进一步增加,路由表规模变大,路由收敛变慢,设备性能消耗加大。
3)连接性:使用 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 协议。我们将其划为 Layer 3 协议,鉴于其是用于指导控制路由。
原理简述
通过建立 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 协议(其特点决定)
参考文献
What is BGP and How Does Border Gateway Protocol Work?
Networking 101: Understanding BGP Routing | Enterprise Networking Planet