Steins;Lab

  • 项目
  • 折腾
  • 笔记
  • 图册
  • 杂谈
  • 文章索引 - 博主自荐博文
  • 关于/留言
Steins;Lab
某团的自留研究所
  1. 首页
  2. 项目跟踪
  3. 正文

全球互联网拓扑探索 (2) : 自治系统 AS 与 BGP 协议

2021年12月2日 7605点热度 5人点赞 4条评论

上节中,我们认识了Internet物理上的拓扑。但网络是如何找到较优的线路进行连接呢?今天我们将在逻辑组成上进行探究,包括自治系统AS和BGP协议。

全球互联网拓扑探索

近期正好对《互联网连接拓扑》做了初步的探索。直到认真探究之前,我对许多原理的认知都是模糊的。系列文章是探究留下的笔记。如有谬误,请不吝赐教。

  • 全球互联网拓扑探索 (1) : 互联网是怎样工作的
  • 全球互联网拓扑探索 (2) : 自治系统(AS)与BGP协议
  • 全球互联网拓扑探索 (3) : 自己动手,看看你与目标的连接性如何
  • 全球互联网拓扑探索 (4) : 国家和大洲级别连接拓扑探究与可视化

 

Table of Contents

  • 1 回顾和问题引入
  • 2 自治系统与连接关系
    • 2.1 自治系统
    • 2.2 Internet Exchange Point (IXP)
      • 定义和解释
      • 例:Equinix MI1 Nap
  • 3 AS规模和连接关系
    • 3.1 AS/ISP层级关系
    • 3.2 AS连接关系
      • Transit
      • Peering
    • 3.3 小结
  • 3 BGP协议
    • 3.1 BGP的报文类型
    • 3.2 BGP 的AS Path
  • 4 小结
  • 参考资料

1 回顾和问题引入

在上一节中,我们对全球互联网物理上的拓扑连接有了概念上的认识。

那么各个网络是如何找到较优的线路进行连接,而不是随机漫步的呢?另外,不同ISP的网络,逻辑上是怎么互相适应,共同组成我们现在庞大的“互联网”呢?

今天我们将涉及 自治系统AS和BGP协议,在逻辑上对互联网的组成进行探究。

 

2 自治系统与连接关系

2.1 自治系统

自治系统或自治域(英文:Autonomous system, AS)是指在互联网中,一个或多个实体管辖下的所有IP网络和路由器的组合,它们对互联网执行共同的路由策略。AS必须具有一个公开且正式登记的自治系统编号(ASN)。ASN编号是受由互联网地址分派机构(IANA, Internet Assigned Numbers Authority)统一管理的。

图 自治系统全球分布示意[1]

 

我们熟知的互联网是由一个又一个的自治系统AS组成的。我们平时可能会对设备的IP地址比较关注。但是,无论我们使用的家庭宽带还是机房网络,设备都会连接到1个AS。我们可以这样作比喻,IP地址就是我们具体地址的门牌号。AS更像是我们的管辖邮局。而ASN更像是受到统一规定的邮政编码。

这样解释可能仍然有点抽象,这里我从不同的规模,举几个具体的例子。

 

所属类型 ASN 名称 IPv4 IP 数量 IPv6 IP 数量
运营商ISP AS3356 LEVEL3 - Level 3 Parent, LLC, US 29,798,832 73,301,954,048
互联网企业 AS15169 GOOGLE - Google LLC, US 14,223,104 103,096,123,392
互联网企业/云服务商 AS45090 TENCENT-NET-AP - Tencent 4,906,496
大学/研究机构 AS7377 UCSD - University of California, San Diego, US 12,855,552 5,368,709,120

表 不同规模的AS例子

 

从上表中,我们可以看出,不同类型的机构都可以是作为一个AS存在于互联网上。

 

另外,每个AS都会控制一定数量的IP地址空间。这样,我们如果想要达到某一IP地址,就有迹可循了(之后我们会介绍BGP)。

 

2.2 Internet Exchange Point (IXP)

定义和解释

Internet 交换点 (IXP) 是一个物理位置,Internet 服务提供商 (ISP) 和CDN等 Internet 基础设施公司通过它相互连接。这些位置位于不同网络的“边缘”,并允许网络提供商在他们自己的网络之外共享传输。通过在 IXP 位置内部存在,公司能够缩短来自其他参与网络的传输路径,从而减少延迟,缩短往返时间,并可能降低成本。(Cloudflare)

图 一种典型的IXP结构[3]

IXP的作用很好理解:在物理结构上,假如我们有AS1、AS2、AS3,如果我们要形成直接的互联关系,最暴力的方式两两互联形成星型结构,然而这么做是不经济的。如果有一个专业的机房,给我们提供了一个稳定量大的集换节点,许多AS都去接入这家节点,我们就能很方便地和各个AS做直接流量交换。——当然,实际的接入会考虑到成本问题,可以灵活地制定和数个AS的流量交换策略。

IXP工作在OSI网络模型第二层,协议栈和我们家用的路由器没什么两样,重点在其规模。

 

例:Equinix MI1 Nap

只看文字解释可能仍然没有具体概念。我们来看被称作“美洲网络接入点”的NAP of the Americas设施。

图 Miami的Equinix MI1 数据中心

 在靠近拉丁美洲的Miami,7 英寸厚的钢筋混凝土墙内或支撑三个巨大白色天线罩的屋顶的建筑就是一个Equinix的大型数据中心。其是来自拉丁美洲和加勒比地区 (LA&C) 的运营商对等和交换流量的地方。拉丁美洲有大量的岛屿和热带雨林,促进各个运营商在这个IX设施中交换流量。(豆知识:其也托管DNS的K root 之一。)

 

 

3 AS规模和连接关系

3.1 AS/ISP层级关系

考虑连接关系之前,我们还是要考虑一些技术世界外的关系。

我们已经知道,不同AS之间的规模可能是不同的,那么AS之间的流量流入和流出可能也是不同的。这意味着,在商业关系上,AS之间可以分为也意味着不同的结算关系。

图:不同层级的互联网提供商的关系(Image by Ludovic.ferre)

这里仍然举几个例子。

Tier1级别的运营商一般是有海底光缆、覆盖大的巨型运营商,如AS3356 Level 3,AS3491 PCCW等。

Tier2 Tier3级别的运营商向下分销。这就意味着流量是和商业行为绑定的。

 

3.2 AS连接关系

有许多对AS拓扑关系的研究工作。这里介绍Caida.org对AS关系的定义。

  • Provider和Customer
    • 即提供者与消费者的关系。商业关系上,是Customer向Provider付费
    • Customer为了连接更广泛的网络,会通过Provider访问互联网的其余部分(后文说的Transmit)
  • Customer和Provider
    • 即消费者与提供者的关系。商业关系上,是Provider向Customer收费
    • Provider向Customer提供更广泛的互联网访问
  • Peer 和 Peer
    • 两家AS往往流量规模相当,他们不互相结算流量
    • 这个连接关系只交换两家AS的内部流量

Transit

即我们刚才提到的Provider和Customer关系。由上层ISP提供向其和互联网其余部分的连接。Customer向Provider付费。

Peering

AS之间通过私有专线或者接入IX的方式,形成对等的连接。AS之间互相的流量是对等的,所以才产生这种不结算的关系。

 

3.3 小结

本节介绍了AS的定义和层级连接关系。那么,在各家AS形成了连接后,是如何让互联网的路由是如何交换,让流量能够以成本较小的方式到达目的地呢?这就涉及到下面讲到的BGP协议了。

 

3 BGP协议

边界网关协议(英语:Border Gateway Protocol,缩写:BGP)是互联网上一个核心的去中心化自治路由协议。它通过维护IP路由表或“前缀”表来实现自治系统(AS)之间的可达性,属于矢量路由协议(wikipedia)。

我们这之前提到,AS控制一定数量的IP。换句话解释,BGP会将AS自身的IP路由信息发送给邻居连接的AS,并接受其他AS传递的BGP信息,

我们本节会对BGP的原理进行了解,去理解BGP是如何让我们全世界可达的。具体对BGP协议有兴趣的读者可以参阅相关的更深入的资料。

BGP也分为EBGP和IBGP。我们这里重点讨论的是AS之间的EBGP(运行于不同 AS 之间的 BGP 称为 EBGP)。

 

3.1 BGP的报文类型

BGP协议工作在应用层,使用TCP。我们先来例行看一下协议的状态。

  • Open(code 1):TCP连接建立之后,BGP发送的第一个包。
  • Update(code 2):交换BGP route table
  • Notification(code 3):出错时发送的消息。
  • Keepalive(code 4):用来保持BGP连接。

 

3.2 BGP 的AS Path

我们来看一组AS的简化模型。

图 多条AS路径(By Cloudflare)

上面我们提到了,AS会控制一定数量的IP。BGP的报文中包含原始AS和其IP的prefix信息。

  • BGP报文中会描述一组AS Path,我们可以将它理解为记录一组路由顺序的矢量,用于表达可用的路径。
  • 每个AS接受了邻居的BGP通告后,会将自己加入到AS Path中,再去宣告到他的邻居节点。
  • 为了避免产生AS回环,如果BGP中的AS Path包含自己的AS号码,不会再转发这条报文。

如图中AS3,可以通过BGP得知通往AS1的路线。一种最简单的方式是通过跳数选择最近的连接路线。但是实际上,连接回AS1的路线会有许多许多条。AS内部会使用一定策略去控制自己的路由表信息。

至此,我们可以理解,从一个AS连接到另一个AS,不是一种随机探索的方式,而是知道路径和目的地的流量传送。

 

4 小结

今天,我们了解了自治系统AS和BGP协议。它们组成了我们的网络,并让网络是如何找到较优的线路进行连接。

下一节中,我们将动手做,使用traceroute工具,亲手追踪我们发出数据包是如何一步一步发送并返回的。并调研一定的文献,看看如果我们要“感知全球的网络拓扑信息”,可以做哪些操作。

 

参考资料

 

  • [1] Cloudflare 知识库https://www.cloudflare.com/zh-cn/learning/network-layer/what-is-an-autonomous-system/
  • [2] MI1 – Equninix https://blog.equinix.com/blog/2018/05/01/why-miami-is-latin-americas-center-of-interconnection/
  • [3] Cloud provider connectivity in the flat internet https://dl.acm.org/doi/abs/10.1145/3419394.3423613
  • [4] ASRank - Caida https://asrank.caida.org/about
  • [5] BGP漫谈 – 知乎专栏https://zhuanlan.zhihu.com/p/25433049
  • [6] BGP路由协议技术详解 – 知乎专栏 https://zhuanlan.zhihu.com/p/126754314

相关

标签: AS BGP IXP 互联网 笔记 网络拓扑
最后更新:2021年12月2日

SPtuan

SPtuan 是一名普通的工程师,最大的愿望是度过平静的时光。 当前从事网络/CDN/对象存储研发。

点赞
< 上一篇
下一篇 >
3.3 3 votes
文章评分
Subscribe
Login
提醒
guest

guest

4 评论
最新
最旧 得票最多
Inline Feedbacks
View all comments
vate
vate
1 年 之前

不错噢

0
回复
SPtuan
SPtuan
作者
Reply to  vate
1 年 之前

@vate 谢谢!

0
回复
小谈谈
小谈谈
1 年 之前

哇,讲的好详细呀~

0
回复
SPtuan
SPtuan
作者
Reply to  小谈谈
1 年 之前

@小谈谈 谢谢!

0
回复

SPtuan

SPtuan 是一名普通的工程师,最大的愿望是度过平静的时光。
当前从事网络/CDN/对象存储研发。

  • 1 回顾和问题引入
  • 2 自治系统与连接关系
    • 2.1 自治系统
    • 2.2 Internet Exchange Point (IXP)
      • 定义和解释
      • 例:Equinix MI1 Nap
  • 3 AS规模和连接关系
    • 3.1 AS/ISP层级关系
    • 3.2 AS连接关系
      • Transit
      • Peering
    • 3.3 小结
  • 3 BGP协议
    • 3.1 BGP的报文类型
    • 3.2 BGP 的AS Path
  • 4 小结
  • 参考资料
分类
  • Uncategorized
  • 图册
  • 学习笔记
  • 库
  • 折腾
  • 杂谈
  • 瞎**扯
  • 碎碎念
  • 项目跟踪
最近评论
SPtuan 发布于 2 个月前(03月22日) 书签: 关于 disk-io 的经验, 异步/同步 io 系统设计的经验 https://you...
SPtuan 发布于 2 个月前(03月21日) 如果公司不是对外提供这些服务的,这种岗位都是 infra 部门,平均年龄确实会大一些。尤其构建和维护...
HUA 发布于 2 个月前(03月19日) 想请问博主对于国内CDN行业,以及CDN调度、DNS托管类服务相关岗位的看法,以及是否还推荐校招新人...
SPtuan 发布于 3 个月前(02月03日) 2025 注: 长辈对于只身去深圳的担忧,更多地来自于 80s/90s 治安情况。近几年了解了严打...
SPtuan 发布于 4 个月前(01月16日) 哈哈,100就100吧,新年快乐!
热门主题 & 页面
  • 全球互联网拓扑探索 (1) : 互联网是如何工作的
  • 动手做!基于nRF24L01P的Arduino无线通信
  • [实验]VPS搭建ss服务中转实现纯ipv6访问网络-校园网免流量
  • PYNQ上手体验:以目标检测应用为例
  • Intel Movidius Neural Compute Stick - 英特尔Movidius神经计算棒上手体验
归档
  • 2025 年 5 月
  • 2025 年 3 月
  • 2024 年 12 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 5 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 4 月
  • 2023 年 1 月
  • 2022 年 12 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 2 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 2 月
  • 2021 年 1 月
  • 2020 年 9 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 1 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 3 月
  • 2019 年 2 月
  • 2018 年 12 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 5 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 11 月
  • 2017 年 9 月
  • 2017 年 7 月
  • 2017 年 6 月
  • 2017 年 5 月
  • 2017 年 4 月
  • 2017 年 3 月
  • 2017 年 2 月
  • 2017 年 1 月
  • 2016 年 12 月
  • 2016 年 11 月
  • 2016 年 10 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2016 年 4 月
  • 2016 年 3 月
  • 2016 年 2 月
  • 2016 年 1 月
  • 2015 年 12 月
  • 2015 年 11 月
  • 2015 年 9 月

友情链接:

Blessing Studio hahaschool 绘枫和畅 魔法少女Fandy monsterx Clarke的博客 Luminous’ Home Shintaku's Blog
蓝黑的博客 haruhi.club Yida的博客 Bo2SS 涛叔 TangBao 同和君Hocassian

Steins;Lab 团子神社 zdfmc.net

steinslab.io built with ❤. Thanks for all 2015-2025.

Theme Kratos Made By Seaton Jiang

wpDiscuz