美国能让中国从网络上消失?

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: DNS到底是怎么工作的?为什么根域名服务器只有 13 台?美国可以让中国从互联网上消失吗?

今天聊个有意思的话题。世界上共有 13 个根域名服务器,其中主根域名服务器是在美国。那美国有没有可能通过根域名服务器掐断中国的互联网呢?在说结论之前,我们先来了解:

  • DNS到底是怎么工作的?
  • 为什么根域名服务器只有 13 台?
  • 美国可以让中国从互联网上消失吗?


DNS到底是怎么工作的?


在上网冲浪时,我们在浏览器输入的都是网站的域名,而不是 Web 服务器的 IP 地址。

原因很简单,域名和 IP 地址的关系就像我们手机通讯录那样,用对方的名字来对应它的手机号码。这样每次拨打电话的时候,直接在通讯录里查名字就可以找到对方的手机号码,而不需要去记忆对方的手机号码。

IP 地址和手机号码都是一长串的数字,如果要去记忆它们,还是挺费劲的。

所以,为了网民上网冲浪舒服点,就搞了个 DNS 服务器,也就是域名解析服务器,它可以通过我们输入的域名来找到 Web 服务器的 IP 地址,然后浏览器再向 Web 服务器发送请求。

域名都是用句点来分隔的,比如 www.server.com,这里的句点代表了不同层次之间的界限越靠右的位置表示其层级越高

根域是在最顶层,它的下一层就是 com 顶级域,再下面是 server.com,所以域名的层级关系类似一个树状结构:

  • 根 DNS 服务器
  • 顶级域 DNS 服务器(com)
  • 权威 DNS 服务器(server.com)

7.png

image.gif我们电脑实际上并不直接访问根域名服务器,而是访问我们「本地的 DNS 服务器」,由它来访问根域名服务器,而且在解析域名的时候,是一个递归的过程。


域名解析是怎样的呢?


现在举一个具体的例子,比如客户端请求 www.server.com 这个域名,解析域名的过程如下:

  1. 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
  2. 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。
  3. 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
  4. 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com  的 IP 地址吗?”
  5. 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
  6. 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
  7. 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
  8. 本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。

至此,我们完成了 DNS 的解析过程,整个过程我画成了一个图:

8.jpg

域名解析的过程蛮有意思的,整个过程就和我们日常生活中找人问路的过程类似,只指路不带路


那是不是每次解析域名都要经过那么多的步骤呢?


当然不是了,还有缓存这个东西的嘛。

浏览器会先看自身有没有对这个域名的缓存,如果有,就直接返回,如果没有,就去问操作系统,操作系统也会去看自己的缓存,如果有,就直接返回,如果没有,再去 hosts 文件看,也没有,才会去问「本地 DNS 服务器」。


为什么「本地 DNS 服务器」会知道根域名服务器的 IP 地址?


世界上根域名服务器只有 13 台,这 13 台根域名服务器以英文字母 A 到 M 依序命名,

网域名称格式为“字母.root-servers.org”,而且它们的 IP 地址基本不会变化。

所以,「本地 DNS 服务器」会内置一个根域名服务器的配置文件,通过读取这个配置文件就能找到根域名服务器的 IP 地址。

下面这个图就是 13 台根域名服务器的配置文件的部分内容:

9.png

可能有的同学会说,这个是静态的配置文件,如果某一个根域名服务器的 IP 地址改变了,要怎么知道的呢?

其实,「本地 DNS 服务器」首次启动时,并不会先读这份静态的配置文件,而是会先去查根域名服务器的 IP 列表,这个查询过程使用的传输协议是 UDP。

另外,可以看到上图中所有记录的 TTL 值是 3600000 秒,相当于 1000 小时。也就是说,每 1000 小时会去查询一次根域名服务器的列表。


为什么根域名服务器只有 13 台?


严格来讲,是世界上共有 13 个「IPv4协议」的根域名服务器,而 IPv6的根节点不止 13 个。

注意,这 13 个并不是表示背后只有 13 台真正的物理服务器,这 13 个对应的是 13 个 IP 地址,对应了 A-M 13 个编号。通过任播(Anycast)技术,编号相同的根服务器使用同一个 IP(类似一个集群)。

任播最初由RFC1546提出,主要用在 DNS 根服务器上,具体的解释如下:

任播是指在IP网络上通过一个IP地址标识一组提供特定服务的主机,服务访问方并不关心提供服务具体是哪一台主机提供的,访问该地址的报文可以被IP网络路由到“最近”的一个(最好也只是一个,别送到多个)服务器上。这里“最近”可以是指路由器跳数、服务器负载、服务器吞吐量、客户和服务器之间的往返时间( RTT,round trip time )、链路的可用带宽等特征值。


为什么只有 13 个呢?


前面我提到,查询根域名服务器的 IP 列表使用的传输协议是 UDP。

当 UDP 包大小超过 MTU 时,就会在 IP 层进行分片,但是只有第一片有 UDP 头部字段(意味着包含有端口号),由于其它分片没有 UDP 头部字段(意味着没有端口号号),能否通过防火墙则完全看防火墙的脸色,因为防火墙可能会检查端口号。

所以,最好的通信效果就是避免 UDP 包大小超过 MTU 大小,防止在 IP 层发生分片。

Internet 大多数网络接口MTU >= 512,所以RFC1035 规定了 DNS 报文要求被控制在 512 字节之内

一个查询根域名服务器信息的 DNS 报文要能装下所有的根域名服务节点基本信息,因为 512个字节有限,所以根域名服务节点当然要限制住了。

具体计算细节我不做介绍了,最终算到是 512 字节大小的 DNS 报文可以装下 14 个根域名服务器节点的信息,不过当时的人觉得留一手,不全用完,所以就规定在了 13 个根域名服务器。


美国能让中国从互联网上消失吗?


前面我们知道,根域名服务器共有 13 个。

其中 1 个为主根域名服务器,放置在美国,其余12个均为辅根域名服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。

可以看到,我们中国并没有一台根域名服务器,而且主根域名在美国,由 ICANN 管理。


如果美国终止 .cn 后缀的解析和申请,会不会导致中国网络瘫痪?


先说结论,这个大可不必担心。

虽说根域名服务器都在国外,但是我们中国已经有很多台「镜像的根域名服务器」了,也就是会向主根域名服务器同步数据到国内的根域名服务器,这意味着根域名服务器的常用记录,我们早就有了备份,相当于我们自己也有了根服务器。

即使美国从主根域名服务器删除了 .cn 记录,也不怕,因为我们已经维护了根域名服务器的镜像,我们自己可以控制镜像的内容,我们可以不同步关于 .cn 记录的删除。

还记得访问根域名服务器是谁吗?就是本地 DNS 服务器,而这个本地 DNS 服务器一般是由国内的网络运营商管理的,只要在我国内对根域名服务器发出的请求,其实都是由这些镜像完成的。对于中国用户来说,对根的请求,一般不会跑到美国去。

所以,国内的用户基本不受影响。不过,其他国家可能就无法访问 .cn 后缀的网站了。

相关文章
|
网络协议 Android开发 网络架构
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
86 17
|
2月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
63 10
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
72 10
|
2月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
2月前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
2月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将深入探讨网络安全漏洞、加密技术和安全意识等方面的问题,并提供一些实用的建议和解决方案。我们将通过分析网络攻击的常见形式,揭示网络安全的脆弱性,并介绍如何利用加密技术来保护数据。此外,我们还将强调提高个人和企业的安全意识的重要性,以应对日益复杂的网络威胁。无论你是普通用户还是IT专业人士,这篇文章都将为你提供有价值的见解和指导。

热门文章

最新文章