Autonomous System(自治系统)
一个自治系统(AS)是由同一个管理机构(如一家ISP、大型企业、大学)所控制的一组IP网络和路由器的集合。在这个系统内部,它统一运行相同的路由策略和内部路由协议。
举个例子 UC Berkeley is ASN 25。自治系统号(ASN)是网络中自治系统(AS)的唯一标识符,它的分配由 IANA(互联网号码分配局) 进行统一管理。
AS分为两种,分别为Stub AS (存根AS)和 Transit As (传输AS)。
- Stub AS 很像Intra-domain (域内路由)的endhost (终端),只能向其他AS发送或者接收包,并不为两个AS转发包。UC Berkeley就是其中的一个例子。大部分AS都属于这一种。
- Transit AS 很像Intra-domain (域内路由)的router (路由器),可以为两个AS转发包,有一些仍然可以作为endhost接受和发送。AT&T,Verizon是其中的两个例子。它有许多规模,可能覆盖全球,也可以只覆盖部分地区。
Inter-domain Topology(域间拓扑)
域间拓扑(Inter-Domain Topology)是指不同自治系统(AS)之间的连接关系与结构,它构成了互联网在宏观层面的“骨架”.
Business Relationships (域间商业关系)
Customer-Provider(客户-提供商) 和 Peering(对等) 是域间商业关系中两种最基本的类型。它们的主要区别可以这样概括:
- Customer-Provider(客户-提供商)
是一种 垂直、非对称 的关系。- 客户向提供商付费。
- 提供商将其所有路由(包括从其他客户、对等体、上游学到的)宣告给客户;客户只将自己的路由及其自己客户的路由宣告给提供商(不宣告从其他提供商或对等体学到的路由)。
- 提供商是“传输服务”的卖方,客户是买方。
- Peering(对等)
是一种 水平、对称 的关系。- 双方互不付费。
- 双方只交换各自客户的路由,但不交换从其他对等体或上游提供商学到的路由。
- 减轻各自网络的转接成本,互利互惠,但不承担为对方提供全网中转的义务。

值得注意的是, 在图中箭头指向是Provider 指向 Customer。单向箭头也不意味着什么方向限制,箭头连接的AS都可以相互发送数据。

互相付钱显然是没道理的。所以不如变成Peering关系。左边就被称为Invalid(无效的),右边被称为Valid(有效的)。
Tier 1 ASes
Tier 1 ASes是处于互联网核心的最高层级网络,它们构成了全球互联网的骨干基础设施。其特征是:无需向任何其他网络付费 (没有提供者),与其他Tier 1 ASes保持对等关系,所有AS追本溯源都会回到Tier 1 AS。比如 AT&T (USA),Verizon (USA),NTT communications (Japan)。所有不是Tier 1 AS的AS都至少有一个Provider。
Goals of Inter-Domain Routing
1. 可扩展性(Scalability)
使路由系统能够支持互联网的持续增长(目前数万个AS、近百万条前缀),而不导致性能崩溃或成本失控。实现方式:分层寻址 :一个/16前缀可以代表65536个/32主机,无需为每个主机单独宣告。
2. 隐私(Privacy)
允许每个AS隐藏其内部网络拓扑、策略和具体细节,只暴露必要的信息。
3. 自治(Autonomy)
每个AS可以独立根据自己的商业目标决定自己的策略。
Gao-Rexford Rules:Participating in Routers
该模型假设每个 AS 都是一个“理性经济人”,会优先选择对自己经济上最有利的路由路径。
- 优先级排序:通常,来自 客户 (Customer) 的路由优先级最高,因为承载客户的流量可以为 AS 带来收入。来自 对等体 (Peer) 的路由优先级次之,而来自 上游提供商 (Provider) 的路由优先级最低,因为转发上游流量需要 AS 自己付费。
- 策略一致性:这种基于经济利益的优先级选择,使模型的策略预设与现实运营逻辑保持一致。
- 无谷(Valley-Free) 路径指每个 AS 只愿意为付费给自己的客户提供免费中转;绝不免费为不付费的邻居(对等体或上游提供商)中转来自另一个不付费邻居的流量。简单来说,就是不会AS参与到不赚钱的服务中。一个AS不会将从对等体A学到的路由,再传递给另一个对等体B。一个AS不会将从上游提供商(付费)学到的路由,再传递给它的对等体(免费)。
- Q:那如果一个AS连接一个customer, 一个provider,一个peer,会把学到的路由给peer吗?
- A:该 AS 只会把它从「客户(Customer)」学到的路由通告给它的「对等体(Peer)」;
从「提供商(Provider)」或「另一个对等体(Peer)」学到的路由,都不会通告给这个 Peer。
这样的一切都促成了网络拓扑单峰(single peak)的产生。
BGP
First.
Border Gateway Protocol(边界网关协议)是当今互联网在全局范围内采用的唯一 inter-domain protocol (域间路由协议)。
- 链路状态(Link-State)不适合域间路由
- 隐私问题:链路状态要求洪泛链路状态通告(LSA),每个节点都要知道全网的拓扑细节。但在互联网中,AS 之间是相互独立的商业实体,没有人愿意把自己的内部连接、策略、成本等信息公开给竞争对手。
- 自治问题:链路状态要求所有节点使用相同的度量标准(如 Cost)来计算最短路径。但不同 AS 对“好路径”的定义完全不同(有的看重延迟,有的看重经济成本),无法达成全局一致。因此链路状态确实不适合 AS 之间的路由。
- 距离矢量(Distance-Vector)是更好的起点
- 距离矢量只向邻居传递“我到某个目的地的距离”,不需要暴露全网拓扑,保护隐私。
- 每个 AS 可以自己定义“距离”的含义(如本地优先级、AS 路径长度等),无需全局统一度量,保证了自治性。
- BGP 确实是距离矢量的扩展
- BGP 被称为路径矢量(Path-Vector),它继承了距离矢量的核心思想:只与邻居交换信息、迭代收敛、不共享全局拓扑。
- 改进之处:BGP 携带完整的 AS_PATH 属性,可以避免环路,并支持丰富的策略(Local Pref、MED、Community 等)。
Second.
在BGP中,只有符合Gao-Rexford Rules的import和export会被执行。简单点说,AS会采取最有利润的选择。
- Import(导入):所有邻居的路由都接收,但优先级不同(customer > peer > provider)。
- Export(导出):只有向customer 路由导出所有邻居;peer 或 provider 路由只能导出给自己的 customer,不能导出给 peer 或 provider。
BGP 路由聚合(Route Aggregation),举个例子
12.1.0.0/16→ 下一跳 port #112.2.0.0/16→ 下一跳 port #112.3.0.0/16→ 下一跳 port #1- …
12.255.0.0/16→ 下一跳 port #1
这些前缀都指向同一个下一跳,且它们可以被合并成一个更大的地址块:12.0.0.0/8。这样原来三条条目就变成一条条目,减少了路由表大小,提高了可扩展性。(当然现实中能不能找得到那么大一块地址是另一回事)。并且有些时候,不可以简单地聚合:
- Multi-homing的情况下不能聚合,如图

Third.
在BGP的情况下,距离矢量无法支持任意策略,而如果我们不使用距离矢量,就有可能产生环路,那么我们怎么解决这个环路问题呢?
我们应该使用路径矢量 (Path-Vector):
BGP 通过携带 AS_PATH 属性(记录路由经过的所有 AS 编号),解决了这两个问题:
- 环路检测:收到包含自己 AS 号的路径,直接拒绝。
- 策略过滤:可以检查 AS_PATH 中是否包含某个 AS(如 2019),从而允许或拒绝该路由。
Fourth.
对于一个存根 AS 只连接了一个上游提供商:
- 存根 AS 的行为:
- 不需要运行 BGP。
- 配置一条默认路由(
0.0.0.0/0),将所有流量指向提供商。 - 具体配置如
ip route 0.0.0.0 0.0.0.0 192.0.2.1,192.0.2.1是提供商的ip。
- 提供商的行为:
- 在 BGP 中代为宣告该存根 AS 的 IP 前缀。
- 提供商的转发表中,将该前缀指向连接存根 AS 的接口。
这种模式只适用于单宿主(single-homed)存根 AS。如果存根 AS 有多个提供商(多宿主),就必须运行 BGP 来实现负载分担或故障切换。
(累死了,这节课内容好多)
评论(0)
暂无评论