边界网关协议 BGP


1. 介绍
BGP是自治系统间的路由协议 。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策(要点见RFC 1104[2]) 。非凡地 , BGP交换包含全部AS path的网络可达性信息 , 按照配置信息执行路由策略 。
随着近年来互联网的进步和增长 , 它也不得不面对一些严重的规模问题 , 包括:
-B类网络地址空间的耗尽 。该问题的主要原因之一 , 是缺少适于中型组织的中等大小的网络;C类网络 , 最多拥有254个主机地址 , 实在太少 , 而B类网络答应最多65534个地址 , 却又太大无法充分使用 。
-互联网路由器中路由表的增长使目前的软件(和人们)无法有效治理 。
-32位IP地址空间的耗竭 。
很明显 , 前两个问题和最后一个问题可能分别在今后一两年内和三年内变得急迫 。无类别域间路由(CIDR)试图解决这些问题 , 设计相应机制来降低路由表和对新IP网络分配需求的增长速度 。它并没有解决更具长期性的第三个问题 , 而是努力让近期问题推迟使得互联网仍能有效运作 , 同时着手远期的解决方案 。
BGP-4对BGP-3做了扩展 , 支持路由信息的聚合及基于无类别域间路由体系(CIDR)[3]的路由减少 。本备忘录论述了BGP-4在互联网中的应用 。
本文档的所有讨论基于如下假设:互联网是一些随意连接的自治系统的集合 。也就是说 , 互联网可以建模成一张一般的网络图 , 图上节点是AS , 边是每对AS间的连接 。
自治系统的经典定义是 , 一组路由器在统一治理之下 , 在AS内使用内部网关协议和统一度量来路由数据包 , 而通过外部网关协议将数据包路由到其他AS 。该经典定义尚在发展 , 一些AS在其内部使用多种内部网关协议和度量 。在此 , 强调一下自治系统在本文档中的含义 , 即使它采用多种IGP和度量 , 它的治理区别于其他 AS , 其内部路由是一致的 , 当路由穿越它时 , 它在图上视作一个节点 。
每个AS由一个治理机构治理 , 至少在外部看来它代表着该系统的路由信息 。
2. BGP拓扑模型
当我们说一个在两个AS之间的连接时 , 意味着两件事:
物理连接:两个AS之间存在一条共享的数据链路子网 , 并且在该子网上 , 每个AS至少有一台自己的边界网关路由器 。因此 , 每个AS的边界网关路由器可以转发数据包到其他AS的边界网关路由器 , 无需借助于AS内到AS间的路由 。
BGP连接:在各个AS的BGP发言人之间有一个BGP会话进程 , 通过会话沟通路由 , 经过声明的AS到达某目标网络 。
本文档中 , 我们对构成BGP连接的BGP发言人加以额外限制:他们必须是自己直接共享数据链路子网 。因此 , 相邻AS间的BGP会话无需AS内或AS间的路由 。超出本文范围的案例可能与该限制不符 。
因此 , 在每个连接中 , 每个AS拥有一个以上的BGP发言人和边界网关路由器 , 这些BGP发言人和边界网关路由器分布在共享数据链路子网上 。注重到 , BGP发言人不一定是边界网关路由器 , 反之亦然 。一条连接上一个AS的BGP发言人声明的路径可以被同一个共享子网上其他AS的边界网关路由器使用 , 也就是非直接的邻居是答应的 。
一个AS内的流量 , 要么是源于该AS , 要么是终于该AS(也就是说 , IP数据包的源IP或目的IP在该AS内) 。符合以上描述的流量称为"本地流量" , 否则称为"过渡流量" 。BGP使用的主要目的是控制过渡流量 。
按照某AS如何处理过渡流量 , AS可以分为以下几类:
末端AS:只连接到一个其他AS 。自然地 , 末端AS只运输本地流量 。

推荐阅读