BGP和internet
BGP 和 Internet
BGP(Border Gateway Protocol,边界网关协议)是一种被设计出来应用于 Internet 中的 Distance Vector 类型动态路由协议,
能够在不同的 AS(Autonomous System,自治系统)间交换 Route Informations(路由信息)。因为 BGP Router 通常被部
署在不同的 AS 之间的边界上,故命名为 “边界网关”。
BGP 协议起源于 1989 年 1 月举行的第 12 次 IETF 会议。在那时,由于 Internet 的快速发展,使得 Internet 中的各种网络的
数量(AS 数量)快速增加,早期的手动静态路由配置方式显然已经无法满足在大量的 AS 之间管理路由信息。因此,会议上
讨论的主题就是需要一种新的 EGP 动态路由协议。
AS(自治系统)是 Internet 的基本定义之一,指的是一个逻辑上自包含的、自洽的 IP 网络系统,不同的 AS 之间可能运行着
各自不同的 IGP 路由协议。
Internet 上的每个 AS 都具有一个 ASN(AS Number)作为唯一标识,全球 ASN 由 IANA(Internet Assigned Numbers Authority,
互联网分配号码管理局)统一管理和分配,共有 1-65535 多个,代码体现为一个长度 16bits 的数字。其中:
- 1~64511:是全球唯一的 Internet 编号。
- 64512~65535:是自用的编号,作用类似于 IP 私网网段。
如下图所示,每个在 Internet 上提供网络服务的 AS(例如:运营商、大学、政企网络等)都需要拥有自己
的 AS Number。在 BGP 协议出现之前,这些 AS 就像是一座座孤岛,与外界隔离。IETF 第 12 次会议的目的就是为了将这些
大量的这些 AS 连接起来,其主要成果就是 BGP 协议。
在会议结束后,由 Len Bosack、Kirk Lougheed 和 Yakov Rekhter 等人在餐巾纸上完成了 BGP 协议的设计草稿,为了解决 2
个 AS 之间的互联互通问题,其最初的设计也比较简单,归纳为以下 5 个想法:
- 为了连接不同的 AS,应该在 2 个 AS 中分别部署 Border Gateway Router(边界网关路由器),由它们专门负责在不
- 同的 AS 之间交换 Routes。
- 为了避免在多个 AS 之间形成路由环路,应该在 Routes 中包含特定的 Path Attribute(路径属性),以此来确定 AS
- 之间的最优路径。
- 为了在 WAN 中可靠的交换 Routes,应该使用 TCP 作为传输层协议。
- 为了减少全球 Border Gateway Router 之间需要交换的海量 Routes,应该采用增量同步的交换方式。
- 使用 TLV(Type-Length-Value)数据编码方式来定义 Message 的数据结构,使其拥有更好的功能可扩展性。
最终在 1989 年 6 月发布了 RFC1105 BGPv1 标准。经过多年的发展后,现如今被广泛应用的是 BGPv4 版本,已经具有了以
下完备的功能特性:
- 支持 IPv4 和 IPv6;
- 支持 CIDR(Classless Inter-Domain Routing);
- 支持 Multi-Path(多路径),提高网络的可用性和容错能力;
- 支持 BGP Confederations(联盟);
- 支持 BGP Route-Reflectors(路由反射器);
- 支持 BGP Community(团体属性);
- 支持 BGP Route Dampening(路由惩罚);
- 支持 BGP MP(Multi-protocols Extensions,多协议扩展);
- 支持 Capability Advertisement(能力通告);
- 支持 BGPSEC 安全协议;
- 等等。