IP 地址实际上是如何分配的?

IP 地址实际上是如何分配的?

我很难理解管理机构如何分配 IP 地址、公司如何利用 BGP 来通告这些 IP 以及互联网如何运作。那么,DNS 到底从何而来?

有人能推荐一些关于这些东西实际如何运作的好书吗?我想我有几个问题。首先,ARIN(或任何其他管理机构)真的重要吗?如果没有他们,会不会出现混乱?当他们分配一个块时,他们并不是真的分配它?你必须使用 BGP 来做广告,对吗?我一直习惯于使用路由 IP 的封闭托管环境(专用/共享)。

那么,DNS 是如何发挥作用的呢?通过我的注册商,我可以注册 DNS 服务器 (eNom) - 这到底是什么意思?我已经安装了 Bind 并使所有功能都正常工作,并且我运行自己的 DNS 服务器,但他们向谁注册该 DNS 服务器呢?我就是搞不懂。

我觉得这是我应该知道但我不知道的事情,我真的很沮丧。这就像……很简单……互联网是如何运作的?从分配 IP,到公司路由它们,再到 DNS。

我想举个例子 - 我有这个 IP 空间,比如说 158.124.0.0/16(示例)。该公司有 158.124.0.0/17 面向互联网。(首先,为什么公司分配了 IP 块却不使用它们?为什么他们不使用保留的内部空间 10.x 和 192.x?)。所以,这就是我的情况。我该怎么做才能真正让这些 IP 连接到互联网并可用?假设我在芝加哥和纽约各有一个数据中心。我无法上传图片,但我可以在这里链接一张: http://begolli.com/wp-content/gallery/tech/internetworkings.png

我只是想了解从分配 IP 块开始,到公司使用 BGP(获得公共 AS #?),然后 DNS 如何发挥作用?

从我的照片中可以看到什么?我尝试构建一个场景,但不确定我是否做得好。

答案1

租用 IP 块

IANA 将 IP 分块分配给区域互联网注册管理机构 (RIR)。请参阅此内容 (列表和地图) 的 RIR。然后,RIR 将较小的 IP 块出租给各个公司(通常是 ISP)。获得分配有一些要求(包括费用和使用证明),如果未能维持这些要求,则意味着失去租赁权。

一旦一家公司从 RIR 租用了一个或多个区块,他们就需要某种方式告诉世界其他地方在哪里可以找到特定的 IP(或其中的一组:子网)。这就是 BGP 发挥作用的地方。BGP 使用大型网络一个概念称为自治系统 (AS)。AS 知道如何在自身内路由。当路由到另一个网络时,它只知道 AS 网关以及通往这些外部地址的“下一跳”在哪里。AS 编号是由 IANA 管理也一样。

在 AS 中,即使是像 ISP 这样大的 AS,他们也可能使用多种路由协议(RIP、OSPF、BGP、EIGRP 和 ISIS)来内部路由流量。也可以使用静态路由表,但在大多数应用中完全不切实际。内部路由协议是一个很大的话题,所以我会简化一下,说 Server Fault 上还有其他问题可以比我在这里更公正地讨论这些主题。

DNS

人类记性不好,所以我们发明了主机名。跳过历史,我们使用域名系统 (DNS) 来跟踪哪个主机名指向哪个 IP 地址。有一个中央注册中心,也由 IANA 管理,它们决定哪些顶级域名 (TLD)(例如“.com”或“.net”)进入由根服务器提供服务的根区域。IANA 委托“根区域”的管理,该管理员只接受来自合格注册商的更新。

您可以使用注册商“购买”域名,即 TLD 的子域名。此注册实质上会创建该子域名,并让您控制其名称服务器 (NS) 和 Glue (A) 记录。将这些指向托管你的域名的 DNS 服务器。当客户端想要通过域名解析您的 IP 时,客户端会联系其 DNS 服务器,该服务器会进行递归查找,从根服务器开始,找到您的 DNS 服务器并最终获取相关信息。

每个人都同意

至于“管理机构”:每个人都同意使用它们。没有(或很少有)法律要求任何人合作。互联网之所以有效,是因为人们选择合作。管理机构提供了一种轻松合作的方式。所有各种 RFC、“标准”等 - 没有人被强迫使用它们。但我们明白,社会是建立在合作的基础上的,这样做符合我们自己的利益。

合作带来的效率与 BGP 流行的原因相同,基本上每个人都同意使用它。在 ArpaNet 时代,他们从手动配置的路由表开始;然后随着互联网的复杂性不断增加,逐渐发展成为一个更全面的系统,但每个人都只是“同意”使用任何新标准。同样,名称解析以网络将分发的主机文件为前提,最终发展成为我们今天所知道的 DNS 系统。(“同意”之所以用引号引起来,是因为很多时候少数人设定了新标准的要求,而其他人没有更好的选择,所以它被接受了)。

相信

这种程度的合作需要高度信任 IANA。正如您所见,他们管理着各种系统的大部分核心。IANA 目前是美国政府资助的非营利性公司(类似于美国邮局),它不是政府的一部分,尽管只是勉强脱离政府。过去几年,人们担心美国政府可能会对 IANA 进行某种控制,将其作为针对其他世界政府或平民的“武器”(特别是通过 SOPA 和 PIPA 等法律,这些法律并未通过,但可能是未来法律的基础)。

目前,IANA 已自行筹集资金(尽管它是一家非盈利公司)通过创建新的 TLD。一些人认为“xxx”TLD 是一种敲诈式的筹款活动,因为很大一部分注册者都在“捍卫”他们的名字。IANA 还接受了私有 TLD 的申请(每个申请 180,000 美元;他们在收到大量申请后暂停了申请流程,其中近一半来自亚马逊。许多这些申请导致新通用顶级域名

答案2

所有向公共互联网 DFZ(默认自由区)的广告都是通过 BGP(边界网关协议)进行的,ISP 进行内部路由的方式各不相同。大多数 ISP 也会在内部使用 BGP,既在自己的路由器之间使用(BGP 通常与 IGP(如 OSPF)结合使用),也在客户端之间使用,如果您没有自己的 AS 编号,则可以使用私有 AS 与您的 ISP 对等,当他们将您的地址空间宣布给 DFZ 时,他们只需从 as-path 中删除私有 AS 即可。对于较小的非冗余链接,您也可以在 PE 上使用静态路由。实际的“分配”仅在您的注册商的数据库中,whois 数据库、RIPE/ARIN 等为此目的运行自己的数据库。

whois 158.124.0.0/16尝试在 Linux 机器上运行该命令。

DNS 也是一样,反向 DNS 服务器在 whois 记录中指定。

答案3

这是一个非常古老的问题,但我在弄清楚互联网是如何作品。与其他答案一样,网络书籍概述了 BGP 和 DNS,但仍然让我感到困惑。例如,a.root-servers.net 到 m.root-servers.net 被指定为根服务器,但如果 DNS 服务本身不能使用 DNS,它如何知道在哪里找到这些服务器。

本回答假定您已了解 IP、子网划分、DNS 等基础知识。我正在解决我(可能也是提问者)对互联网工作原理的“空白”。我绝不是专家,但这是我对这些空白的理解。

IP 地址

首先要注意的是,当互联网以 ARPANET 的形式出现时,每个人都认识每个人,并且 IP 地址的路由表是手工编码的。我假设 IP 的分配过程是通过电话完成的。随着互联网变得太大,多个网络 (AS) 使用 BGP 来宣传他们拥有公共 IP,或者可以通过他们的 AS 向另一个 AS 获得公共 IP。人们相信 AS 不会宣传他们没有的 IP。

如今,信任度已大不如前。相反,ISP 可以从 IANA 和区域机构下载并验证分配给每个 AS 的 IP 分配。这些下载现在通过公钥加密进行验证。因此,当 IANA“分配 IP 地址”时,他们会更改其记录(或者实际上是区域机构更改其记录)。所有其他 AS 都可以下载并验证其记录。

这些记录非常重要,因为 ISP 不能轻信其他 ISP 的说法,认为他们拥有 IP 地址。ISP 可以将 BGP 通告与经过验证的 IP 记录进行比较。如果任何 BGP 通告显示最后一个 AS 不是 IANA 和 RIR 经过验证的记录中的 AS,则 BGP 通告不会更改其自己的路由。

更常见的情况是,流氓 ISP 或 AS 可以宣传他们有一条路由通过他们没有自己的 AS。AS1 已注册 IP,AS5 当前使用 AS5 -> AS4 -> AS3 -> AS1 -> IP。AS2 向 AS5 通告 AS5 -> AS2 -> AS1 -> IP 的路由。但 AS2 实际上与 AS1 没有连接。它可能只是丢失数据包,也许是为了挫败 AS1 的托管客户。或者 AS2 可能是一个小型公司网络,与 AS5 和 AS1 具有多宿主安排。他们的路由器配置错误,并通过小型公司网络通告路径。几乎所有 ISP 都会丢弃其 BGP 客户的此类广告,而只传递终止 BGP 广告。

更有可能的是,巴基斯坦试图通过这种 IP 劫持来关闭巴基斯坦境内的 Youtube,并且关闭巴基斯坦境外的 Youtube,因为巴基斯坦境外的 AS 认为他们的 BGP 广告是正确的。

最后,针对此类 IP 劫持,并没有完美的防御措施。在大多数国家(如美国),此类滥用 BGP 的行为可能会被视为违约,其他 ISP 会在必要时关闭与该 AS 的对等连接。ISP可以还可以忽略整个 IANA 和 RIR 机构,将 IP 地址重定向到自己的服务器。但是,如果 ISP 没有任何 CA 的私钥,那么这对任何 https 站点都不起作用。从经济上来说,这样做几乎没有什么好处。这种情况只发生在独裁政府身上,例如埃及最近关闭了从国外向其 ISP 发送的所有 BGP 广告。

DNS 服务器

一旦 IP 表正确,DNS 就会变得稍微简单一些。根服务器都是 DNS 服务器代码中固定的 IP 地址。a.root-servers.net 是 198.41.0.4,IP 地址是同一 AS 内的任播。对于 a.root-servers.net,AS 是 Verisign,有五个不同的站点。在美国,两个站点是纽约和洛杉矶。任播就像您有一个地址 123 Main Street,然后您说“无论您在哪个城镇,只要前往 123 Main Street,您就会找到我的一家企业。”纽约和洛杉矶的 123 Main Street 都会为所有顶级域提供相同的答案。AS(在本例中为 Verisign)通过 OSPF、内部 BGP 和其他路由协议在内部确定哪个服务器的跳数最少。因此,丹佛的路由器可能通往洛杉矶,而芝加哥的路由器则通往纽约。相同的路由过程可用于 Anycast 主机,因为主机不提供路由流量。

其中一个根服务器会为 com 顶级域名提供 IP 地址。然后该域名会为 yoursite.com 提供域名。注册商实际上与运营顶级域名的人签订了合同。因此,如果顶级域名目前没有 yoursite.com 的记录,它有权在其 who-is 服务器中添加记录。然后,使用注册商授予您的 yoursite.com DNS 记录的访问权限,您可以更改其 DNS 服务器中的记录以转到您的 IP 地址。

因为 DNS 完全依赖于多个 IP 地址到达正确的位置,所以您遇到的问题与之前相同,即 AS 验证 IP 注册表,然后进行 BGP 分配。这是 http 网站的关键部分。Https 增加了证书保护。因此,ISP 无法重新路由对其自己的根服务器和顶级域服务器的请求,以便为 citibank.com 提供自己的 IP。如果他们这样做了,提供给用户的 IP 地址将是不同的 IP 地址,但他们的服务器不会有花旗银行的私钥。

答案4

不,我不是在开玩笑(我 15 年前就开始读这本书了,但它仍然非常有意义): http://www.amazon.com/Internet-Dummies-John-R-Levine/dp/0764506749

然后,带着 BGP 问题回到这里 =)

相关内容