On Inferring Autonomous System Relationships in the Internet 论文阅读笔记
On Inferring Autonomous System Relationships in the Internet 论文阅读笔记
#拓扑推断
AS 拓扑推断相关的研究(较早)可参考:AS Relationships
介绍
在过去对于互联网架构的研究中,除了(R. Govindan and A. Reddy, “An analysis of Internet inter-domain topology and route stability,” in /Proc. IEEE INFOCOM/, vol. 2, Apr. 1997, pp. 850–857.)这篇文章对于 AS 之间的层级关系有一定的研究,大部分的研究都把物理上的连接性等价于可达性,但由于 BGP 协议使得 AS 之间有着复杂的关系网,两个 AS 相连并不意味着他们可以互相到达。本文是第一个研究 AS 关系并对网络拓扑结构进行特征化描述的文章。
新的知识
文章提到:两个 AS 之间的商业合同所形成的关系可能是 P2C,P2P,S2S 的混合,两个 AS 可能会在不同的 BGP 会话之间设定不同的导出政策。
文章提出并验证的理论:
-
如果在 AS 的 BGP 路由表中包含一个对于目标前缀 的 AS 路径 ,那么:
- AS 对于前缀 的最佳路由是 。
- AS 会把自己对于前缀 的最佳路由导出给 。
-
Valley-Free:即路由表中的每一条 AS 路径都满足在流经 P2C 或者 P2P 路径后无法经过 C2P 以及 P2P 路径。满足的条件为:
- P2C 路径后面只能跟 P2C 路径以及 S2S 路径。
- P2P 路径后面只能跟 P2C 路径以及 S2S 路径。
-
BGP 路由表中的 AS 路径满足如下模式:
- 一条“上山路径”
- 一条“下山路径”
- 一条“上山路径”后面紧跟着一条“下山路径”
- 一条“上山路径”后面紧跟着一条 P2P 路径
- 一条 P2P 路径后面跟着一条“下山路径”
- 一条“上山路径”后面紧跟着一条 P2P 路径再跟着一条“下山路径”
其中上山路径的含义为:只包含 C2P 或者 S2S 的路径;下山路径的含义为:只包含 P2C 或者 S2S 的路径。
根据上述两个上山下山路径的定义我们又能够给出两个更大的定义:
- 最大上山路径:一条 AS 路径中最长的上山路径。
- 最大下山路径:一条 AS 路径中最长的下山路径。
那么根据最大上山路径以及最大下山路径的定义以及 BGP 路由表中 AS 路径所满足的模式我们可以将 AS 路径满足的模式分为两类:
1. 最大上山路径后面跟着 P2P 路径,再跟着最大下山路径。
2. 最大上山路径后面跟着最大下山路径。
注意最大上山路径以及最大下山路径可以为空。
因此,根据上述模式,如何识别一条 AS 路径中连续的 AS pair 之间的关系的问题便转化为如何找出这条 AS 路径对应的最大上山路径 Provider 以及最大下山路径 Provider。
推导 AS 之间关系的三个启发式算法
-
对于每条路由器中的 AS 路径,推导其中的 Provider-Customer 以及 Sibling 关系的算法(Basic 版本):
如上图所示,算法首先计算每一个 AS 的 degree(与该 AS 建立连接的 AS 数量),然后依据 degree 越大的 AS 更有可能成为 Top Provider 的启发式经验,选出每一条路径的Top Provider AS,并按照之前提及的两种模式来给出每一条路径中的每一对 AS Pair 对应的提供 transit 关系。并根据 S2S 以及 P2C 和 C2P 的性质推断 AS 之间的关系。 -
对于每条路由器中的 AS 路径,推导其中的 Provider-Customer 以及 Sibling 关系的算法(Refined 版本):
由于在现实生活中可能存在 BGP 路由器误配置的情况,因此 BGP 路由表中的 AS 路径表项可能不一定满足上述的两种模式(不满足 Valley Free 特性),所以提出了一种容许少许误差存在的推断算法。 -
对于每条路由器中的 AS 路径,推导其中的 Peering 路径的算法为:
该算法的主要思想是根据之前提及的两种模式,标记出每一条 AS 路径中不可能形成 Peering 关系的 AS Pair(其中也包括一个启发式经验,即 Top Provider 倾向于和更大 degree 的 AS 建立 Peering 关系)。然后再依据两个形成 Peering 关系的 AS 之间的 degree 不会相差太大这个启发式原则判断 Peering 关系(如果把 R 设为 则忽略这个启发式原则,文章中最后设置的 R 值为 60)。
一些疑问
-
文章的一个假设(我怀有疑问):
由于一个 AS 传播 BGP announcement 时可以在 path 后面多次加上自己的 AS 号,防止后续的 AS 选择自己作为中转 AS。但是本文在处理所有的路由器表项时,会删去 path 中相邻且相同的 AS 号(只保留一个),虽然对于文章的推断并没有帮助,但是我觉得这在一定程度上是损失了部分信息的。 -
文章推断出来的 AS 关系图主要是通过 AT&T 的内部信息得到的,那么在没有公司的帮助下,该如何验证自己做出的推断方案的正确性呢?
-
正如文章所说,两个 AS 之间可能存在混合的商业关系,那么这种混合关系有没有可能推断出来呢?