摘要

  • 1989 年 6 月的 RFC 1105 状态说明写道,Cisco 路由器和 NSFNET 节点交换系统已有边界网关协议(BGP)实现;面向 gated 的公共领域版本仍在开发。文件没有说明有多少设备运行 BGP,也没有量化路由交换范围。
  • 1990 年 6 月,RFC 1163 与 RFC 1164 共同将 BGP 定义为拟议标准,并明确指出,在成为完整的互联网标准之前,部署经验仍可能促使协议修改。档案中的实现时间早于这一标准化节点。

协议史常被讲成一条整齐的链:标准组织先发布协议,厂商随后实现,运营者最后采用。RFC 1105 留下的时间线没有这么简单。它在 1989 年 6 月的状态说明中已经列出两类实现环境,同时说第三个面向 gated 的公共版本尚在制作。这份 RFC 不是部署普查:没有版本编号、流量总量、站点清单或测试结果。但它是一份同时代记录,表明 BGP 的实现工作与第一版规范的编写并行进行。

RFC 1105 处理的是自治系统之间的路由。它把 BGP 描述为交换网络可达信息的方式,同时传递流量需要经过哪些自治系统。路径信息可用于识别路由环路,也支持 AS 层面的策略决策。文件说明,设计吸收了 EGP 和 NSFNET 骨干网的经验。换句话说,协议并非从空白蓝图中诞生,而是在既有网络实践旁边逐步成形。

第一版的细节也显示设计仍有试探性。OPEN 消息含有链路类型字段,将对等关系划分为内部、向上、向下或同层;UPDATE 消息则把方向代码和 AS 号放在一起。协议可以扫描 AS 路径以发现环路,方向分类则把一种层级网络观写进协议。这些是第一份 RFC 的设计,不应被当成今日 BGP 的完整说明。

到 1990 年 6 月,RFC 1163 取代 RFC 1105,RFC 1164 则说明 BGP 在互联网中的应用。两份文件共同定义拟议标准。它们的状态说明尤其有信息量:部署经验可能带来修改,实施者也被鼓励提交自身经验。RFC 1163 的路由表示包括必选属性 AS_PATH,用于列出到达公告网络所经过的自治系统。协议结构与它在标准流程中的位置都发生了变化。

这些 RFC 并不能证明某个 Cisco 或 NSFNET 实现直接造成了某项修改,也没有把每次设计变动归因于特定开发者的反馈。它们能支持的结论更窄:1989 年已有实现;1990 年规范经过修订;标准文件仍承认运行经验可以影响后续版本。RFC 1266 后来研究了 BGP 的实际运行,但那份 1991 年的部署报告属于另一条主题,已有单独报道。

Heng Lu 的第 65 篇 Note《Running-Code Primacy》在这里提供一个编辑问题:运行中的实现能证明什么,而纸面提案不能?它只是观察角度,不是 BGP 或 IETF 历史证据。原始文件支持的答案较有限:到 1989 年 6 月,实现工作已具体到被写入 RFC;而 1990 年的提案仍承认设计可以修改。现有材料不能证明普遍采用、可靠性、商业成功,也不能把 BGP-1 描述成今日 BGP 的直线起点。它记录的是互联网工程中规范和代码并行演进的一段。

来源