Linuxword Global
当前位置: 通信协议 > 自治系统 AS 与 BGP 协议

1 回顾和问题引入

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

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

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

 

2 自治系统与连接关系

2.1 自治系统

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

Snipaste_2021-12-01_21-25-47

图 自治系统全球分布示意 [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-mi1

图 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 的简化模型。

Snipaste_2021-12-02_00-09-11

图 多条 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,不是一种随机探索的方式,而是知道路径和目的地的流量传送。

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2406 篇
  • 草稿数目: 17 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 7410 个
  • 注册用户: 139 人
  • 访问总量: 8,658,279 次
  • 最近更新: 2024年6月20日