自从美国宣布“清洁网络”行动后,很多懂互联网的人的第一反应就是,美国人会启动根域名服务器吗?
这种担心不会持续一两年。
2014年6月24日《人民日报》援引专家的话称:“目前,全球互联网13个域名根服务器中,美国控制着10个。理论上,只要在根服务器上封锁该国的域名,这个国家的域名可以被屏蔽了,这个国家的国家顶级域名网站在互联网上瞬间“消失”了,从这个意义上说,美国拥有世界上独一无二的网络控制力,有能力震慑其他国家的网络边界比如,伊拉克战争期间,在美国政府的授意下,终止了伊拉克顶级域名“.iq”的申请和解析,所有以“.iq”为后缀的网站都蒸发了来自网络。” 1
《信息安全与通信保密》杂志2014年第10期的一篇文章写道:“2004年,由于与利比亚在顶级域名管理上存在争议,美国终止了利比亚顶级域名的解析服务。级域名.LY。导致利比亚从互联网上消失3天。” 2
我们需要害怕这个吗? 我们需要采取什么对策?
我不是专家,所以我实在无法回答这个问题。
因为这需要了解DNS的工作原理以及根域名的管理机制。
这里简单回答一下:不排除这种可能性,但也不是没有可能。
一句话理由:虽然根不在我们手中,但我们有镜像。
DNS傻瓜书
让我们先了解一些基本概念。 了解DNS的可以直接跳过本节。
1.什么是DNS?
DNS 将域名转换为 IP。 因为我们人类的记忆力太差,记不住IP,而计算机通信必须使用IP,所以人类发明了域名,以便我们可以记住baidu.com和taobao.com。 一个我至今还记得的域名。 然后通过DNS,将这些域名转换成计算机所需的IP。
2. DNS 是如何工作的?
每台计算机都配备有本地DNS服务器(简称LDNS)。 当需要时,它向 LDNS 发送请求。 LDNS向互联网上的权威域名服务器(简称权威DNS)询问。 有时只问一个是不够的。 你必须问一个大的。 圈起来,最后得到答案。
3. 权威DNS有什么作用?
问我域名,我告诉你IP。 如果我不知道,我会告诉你谁可能知道,然后你再询问。
4、什么是根域名服务器(简称根DNS)?
当LDNS什么都不知道时(即它没有任何缓存),它会询问根DNS。 root 可以告诉 LDNS 接下来要询问谁。
5. 世界上有多少个DNS根?
13个,其中美国10个,英国和瑞典各1个,日本1个。
6. 根DNS的名称和IP是什么?
在这个网址:
打开它,可以看到里面有13个根名称和IP,名称范围从A.root-servers.net到M.root-servers.net。
以A开头的称为根A,为主根,其余12个(B、C、D、E、F、G、H、I、J、K、L、M)为辅根。
为什么只有 13 个根 DNS 服务器?
这部分你看不懂也没关系(大多数人都看不懂),你只需要知道,由于历史和技术原因,对于IPv4来说,根DNS只能有13个IP。
真实的答案是:DNS主要使用UDP数据报来传输消息,不包括前面的各种报头。 DNS 消息需要控制在 512 字节以内(RFC1035)。 主要考虑是这个尺寸几乎可以在互联网上流畅流动。 无阻塞,不会因路径中某个MTU太小而造成IP分片(MTU通常>=576,参见RFC791),从而防止出现各种不可预知的后果3。
每个根DNS在DNS报文中都占用一定数量的字节,如根名称、TTL、IP地址等,这样13个根域名服务器基本上就占用了几乎所有的空间,剩下的字节都用了封装 DNS 标头和其他协议参数。 因此,根域名服务器不容易太多,13个是比较合适的数字。 详细内容请阅读《为什么需要13台DNS根服务器?》一文 4
真的只有13台服务器吗?
与很多人想象的完全不同,这13台根域名服务器不仅仅是13台物理服务器。
这13根只是一个逻辑概念。 每个根DNS的背后,都有多个真实的物理服务器在工作!
截至2020年8月12日,全球共有1097台根服务器。 每个根都有多个镜像,分布在世界各地不同的地方。
这个数字还在不断上升。 去年10月1日庆祝新中国成立70周年阅兵时,我看了一下,有1015个服务器。
这 13 个根由 12 个独立组织管理。 例如,A root 和 J root 均由 Verisign 管理。 截至2020年8月12日,A root在全球拥有53个站点,J root拥有185个站点。 L Root由ICANN管理,在全球拥有167个站点,其中北京2个,上海1个。
所有这些根服务器的分布可以在根服务器网站上找到。 从网站显示的根镜像服务器图(2020年8月12日)来看,北京有5台根镜像服务器,上海有1台,杭州有1台。 其中,武汉1例、郑州1例、西宁1例、贵阳1例、广州1例、香港9例、台北6例。
包括香港、澳门、台湾在内,我国共有根像28个。
我国境内所有向根DNS发出的请求实际上都是通过镜像来完成的。 这将在后面解释。
现在,为了增加您的知识,您是时候硬着头皮看看一些 DNS 详细信息了。
DNS 是如何工作的?
对于IT从业者来说,希望您能够理解并记住本节的内容。
因为迟早你会遇到关于 DNS 的困惑。
我们先介绍一下域名的级别:
。 代表根域名,.com是顶级域名,也叫一级域名,baidu.com是二级域名,这叫三级域名,以此类推。
注:还有其他名称。 无论如何,你只需要知道其中的含义即可。
我们先介绍一下最常见的两种域名服务器:
权威DNS:负责对请求进行权威答复。 权威DNS存储记录,最常见的三种:A记录(记录某个域名与其IP的对应关系)、NS记录(记录某个域名和负责解析该域名的权威DNS)、CNAME记录(负责解析该域名的权威DNS)用于记录某个域名及其IP)其别名)。 如果权威机构可以直接答复,则返回A记录; 如果其他权威DNS需要应答,则返回NS记录,然后LDNS再去其他权威DNS询问; 如果记录是别名类型,则返回CNAME,LDNS会再去。 解决别名问题。
递归DNS:通常是LDNS,它接受来自终端的域名查询请求,并负责在网上询问后将答案返回给终端。
现在举一个具体的例子:比如终端请求这个域名的IP。
如果没有缓存,LDNS将从根DNS开始:
1. LDNS 询问根 DNS:“您的 IP 地址是什么?”。
2、根DNS说:“我哪有时间关心你这么详细的问题?你可以去问com顶级域的DNS,我只关心顶级域。这里,这些是com顶级域名的DNS名称和IP,你可以问他们。” (回复NS记录)
3、LDNS忙着询问com的权威DNS。 com的权威DNS说道:“你问的是这个三级域名,我不关心。你可以去问baidu.com的权威DNS,它的名字是ns.baidu。” com,他的IP是XXX(这里可能给出多个权威DNS)”。
4、LDNS继续询问baidu.com的权威DNS。 这一次,它很高兴,因为它负责。 可以直接给出A记录或者CNAME记录。 如果是前者,则直接获取IP。 如果是后者,否则需要再次查询别名。
5、最后LDNS获取IP并返回给终端。
细心的人会问,在步骤1中,当LDNS询问根DNS时,它是如何知道根DNS的IP的呢?
这13个IP通常在LDNS中预先配置。 当 LDNS 初始化 DNS 缓存或缓存失败时,LDNS 会向其预先配置的 IP 之一发起根查询(即查询 . 的 NS 记录),以获取最新的根 DNS 信息 6.
对于DNS服务器软件来说,这13个IP是配置在根提示文件中的,该文件可能是named.cache或root.ca或root.hints等。
以上就是各种教科书上提到的DNS查询过程,但其实并没有那么麻烦,因为各级都有缓存。
实际的DNS查询过程如下:
例如用户在浏览器中输入这个域名:123.abc.qq.com.cn
1、浏览器首先会检查是否有该域名的缓存。 如果有则直接返回。 如果没有,它会询问操作系统。 操作系统也会检查自己的缓存。 如果有则直接返回。 如果没有,我又检查了hosts文件,发现没有,于是就问了LDNS。
2、LDNS首先会检查是否有123.abc.qq.com.cn的A记录。 如果有则直接返回。 如果没有,则检查是否有abc.qq.com.cn的NS记录。 如果是的话,如果是的话,去问它答案。 如果没有的话,去看看是否有qq.com.cn的DNS记录。 有的话就去问问吧。 如果没有的话泛域名解析软件,去看看是否有com.cn的DNS记录。 如果没有 DNS 记录,请转到它。 检查是否有cn的DNS记录。 如果没有cn的NS记录,则询问root。
因此,有了缓存,教科书式的从根上问的情况实际上很少发生。
只有当任何地方都没有缓存时,我们才会请求 root。
根镜像有什么作用?
根图像具有与根相同的功能。
根 DNS 中最重要的文件是根区域文件。 所有顶级域名记录都存储在根区域文件中。
备根从主根同步数据,根镜像从根同步数据。 最终,所有根和映像都具有相同的根区域文件。
而且最有趣的是,根镜像和根具有相同的IP。
我们知道全世界有一千多个根镜像,但大多数人不知道它们共同共享13个IP! 是的。 因为只有13根。
这是怎么做到的? 答案就是任播(Anycast,又译为pancast)技术。
如果您不关心技术细节,请直接进入本节的最后一句。
Anycast最初由RFC1546提出,主要用在DNS根服务器上。
任播是指使用IP地址来标识IP网络上提供特定服务的一组主机。 服务访问者并不关心哪个主机提供服务。 访问该地址的数据包可以通过IP网络进行路由。 “最近”的一台(最好只有一台,不要将其发送到多台)服务器。 这里的“最近”可以指路由器跳数、服务器负载、服务器吞吐量、客户端和服务器之间的往返时间(RTT,round trip time)、链路的可用带宽等特征值。
这样,一方面,用户可以就近访问;另一方面,用户也可以就近访问。 另一方面,即使有些根失败了,也没关系。
有的同学可能会想到负载均衡,是的,大致就是这个意思。
对于中国用户来说,root请求一般不会发送到美国,而是通过选播技术路由到中国的root镜像。
根 DNS 是如何管理的?
根 DNS 目前由 12 个组织管理。 根 A 是主根,由美国公司 Verisign 管理。
根 DNS 中最重要的文件,即根区域文件,由 ICANN 管理。
ICANN(互联网名称与数字地址分配机构)是一家在美国注册的非营利组织,成立于1998年。
根DNS管理的历史变化过程还是比较复杂的。 这里简单说一下。
DNS最初的技术开发者和管理者是南加州大学的Jon Postel博士。 他在互联网早期负责根DNS的管理和分配。
1988年,美国政府要求乔恩·波斯特尔采取更安全、更合理的措施,确保互联网核心资源的分配和管理7。 于是,著名的IANA(The Internet Assigned Numbers Authority,互联网号码分配机构)成立,并根据DARPA和南加州大学信息科学研究所(ISI)之间的合同进行管理。
IANA 负责管理和协调全球互联网号码和编码。 之所以需要这样的组织,是因为互联网协议的值或参数必须是全球唯一的,否则无法互连。 例如,HTTP协议默认在80端口等待用户请求。 ,而 404 编码一致表示“找不到页面”。 IANA的主要职责包括IP地址段的分配、协议代码和编号(如协议号、端口号)分配、自治系统编号(ASN)分配、DNS根区域管理(包括通用顶级域名gTLD和国家/地区名称)和地区顶级域名(ccTLD)管理)等8
1998年ICANN成立后,美国商务部以合同形式委托ICANN负责IANA的日常运营,IANA也从ISI转移到ICANN。
关于顶级域名的管理,ICANN的政策是每个顶级域名(如com、cn、org,目前有1000多个顶级域名)必须找到一个托管提供商,所有事宜相关域名将由托管服务提供商负责。
.cn域名的托管机构是中国互联网络信息中心(CNNIC),它决定.cn域名的各项政策。
.com、.net、.name、.gov 四个顶级域名均由 Verisign 托管。
威瑞信和 ICANN 曾发生过多次不愉快的纠纷。 9
2003 年,威瑞信推出了一项新服务:Site Finder。 访问未注册的 .com 或 .net 域名的用户将被定向到 Verisign 的网站。 这意味着它实际上拥有所有未注册的 .com 和 .net 域名。 几天之内,威瑞信就跻身全球前 10 名网站之列。
ICANN要求Verisign立即停止该业务,否则域名托管合同将被终止。 威瑞信屈服并停止了业务,但随后将 ICANN 告上法庭,要求法院澄清两者之间的合同以及 ICANN 是否有权干预其业务。
2006年底,他们达成庭外和解。 ICANN 同意延长 Verisign 的顶级域名托管合同,并同意提高 Verisign 向消费者收取的单一域名注册费上限,从 6 美元增至 7.85 美元。 这一收费标准至今仍在使用。 当您注册.com或.net域名时,您支付的0.18美元是ICANN收取的管理费,7.85美元是Verisign收取的托管费,其余由域名零售商支付。 费用。
虽然ICANN 运营着IANA,但它受美国政府的合同管理。 世界各国和私人纷纷批评,一致认为美国政府应该全面撤军。
2014年3月14日,美国商务部国家通信和信息管理局(NTIA)宣布愿意将IANA的管理权完全移交给ICANN,并要求ICANN制定移交计划。 NTIA特别强调,移交计划应强化多利益相关方模式,不能用政府间组织或政府主导的组织取代NTIA目前的作用。
2016 年 3 月 17 日,ICANN 向 NTIA 提交了过渡计划。 2016年6月9日,NTIA公布审核意见,表示ICANN提交的过渡计划符合此前设定的条件。
2016年8月16日,NTIA宣布不再延长现有合同。
虽然遇到了一些障碍10,但最终,2016年10月1日,ICANN与美国商务部关于IANA职能的合同到期且不再续签,ICANN成为独立的非营利组织。 IANA部门工作人员及其他相关资源已转移至ICANN新成立的子公司PTI(Public Technical Identifiers,公共技术标识符)。
ICANN 使用全球多利益相关方治理模型进行管理。 PTI董事会共有5个席位,其中3个席位由ICANN任命,2个席位由全球互联网界代表组成的提名委员会选举产生。 2017年2月,ICANN发布PTI董事选举公告。 经过半年多轮面试和背景调查,提名委员会于2017年10月26日宣布,我国北龙中国网王伟和另一位欧洲代表入选。 经过一个半月的利益冲突审查,ICANN董事会于2017年12月13日正式确认王伟当选。 11
谁在我的国家管理根映像?
从我目前查到的信息来看,我国从2003年开始就不断推出根镜像,特别是去年,根镜像的数量增长很快。
2003年,中国电信推出国内第一个根镜像节点(F根)。
2005年,I-root服务器运营组织在CNNIC建立了我国第二个根镜像(I-root)。
2006年,中国联通(原中国网通)与美国VeriSign公司合作,在中国正式开通J根镜像服务器,同时引入全球最大的两个顶级域名“.COM”和“. NET”镜像节点; 引入这些镜像的主要目的是为了提高根域名和顶级域名的解析性能。
2014年,21世纪互联与ICANN合作在中国新增L根域名服务器镜像。
2019年6月24日,工业和信息化部批准CNNIC建立6个域名根镜像服务器(F、I、K、L)。 6台域名根服务器编号为JX0001F、JX0002F、JX0003I、JX0004K、JX0005L和JX0006L12,北京互联网域名系统工程研究中心(ZDNS)获批设立L根镜像服务器JX0007L13。
2019年11月6日,工业和信息化部批准中国信息通信研究院建立L根镜像服务器,编号分别为JX0008L和JX0009L。
2019年12月5日,工业和信息化部批准中国信息通信研究院建立域名根服务器(K根镜像服务器),编号为JX0010K。
2019年12月9日,工业和信息化部批准CNNIC建立域名根服务器(J、K根镜像服务器),编号分别为JX0011J、JX0012K。
从工信部批复文件可以理解泛域名解析软件,相关单位负责根镜像的运行、维护和管理,维护国家利益和用户权益,接受工信部管理和监督检查工业和信息化部.
工业和信息化部在给CNNIC的批复文件中写道:“你们中心应严格遵守《互联网域名管理办法》、《通信网络安全保护管理办法》及相关法律、法规、行政法规和行业管理并接受我部的管理、监督和检查,建立符合我部要求并与我部指定的管理系统接口的信息管理系统,确保域名根服务器安全可靠运行,为用户提供安全、便捷的域名服务,保证服务质量,保护用户个人信息安全,维护国家利益和用户权益。”
美国可以对根DNS做什么?
虽然ICANN是一个独立的非营利组织,但如果美国政府使用强制力,A根(tap root)的内容仍然可能被篡改。
也就是说,根区域文件可以被篡改。
又会怎样被篡改呢?
我们首先看一下根区域文件是什么样的。
根区域文件可以从ICANN官网下载:
该文件保存了所有顶级域名的信息,目前大小为2.2M,两万多行。
每当顶级域名发生更改时,该文件都会更新。
我们可以看到,与cn域名解析相关的记录只有几十行。
如果删除与 cn 相关的行,它将很快同步到所有根。
那么,当所有缓存过期后,世界上就没有人可以访问.cn后缀的网站了。
如何回应?
因为我们维护根映像,所以我们控制映像中的内容。
通过我们的运营商获得中国的根,将取决于获得我们国家的根形象。
我们无法将更改同步到 cn。
就是这么简单。
您可以简单地编写一个程序,在每次同步后立即添加 cn 记录。
你也可以建立自己的主根,这与美国的根源完全不同步。 (相当于建立了新的中央政府)
当然,如果不采取行动,世界各地不受我们管理的根和根镜像仍然会受到这些删除的影响。
那么,除了中国自己之外,其他国家就无法访问.cn网站了。
不过,这些国家很快就会做出回应。 任何想要访问.cn网站的国家都会将cn记录添加回来,并拒绝同步美国删除的线路。
最终,只有美国人无法访问.cn网站。
综合以上分析,我认为美国不太可能这么做,因为此举太自卑,会让美国政府彻底丢脸,失去未来在互联网领域的任何话语权。 ICANN也将失去信誉,整个互联网世界将选出新的机构和新的主要根源。
因为互联网世界的一贯规则是:有禁令就绕过。
后记
最后我们来看看本文开头提到的两个断线事件到底发生了什么:
关于伊拉克域名事件,你可以看一下清华大学段海新教授的文章:《网络安全》,里面把整个事件解释得很清楚。 主要原因是.iq域名的前任管理员在2002年入狱,新的管理员(NCMC)直到2005年才申请。当时IANA也在考虑寻求双方一致批准新的授权。新老代理,就这样出现了。 所谓“应用和分析工作被终止”。
关于利比亚域名事件,你可以阅读这篇文章:事实是,参与运营.LY的两个组织是因所有权内讧的结果(其中一个组织关闭了.LY域名服务器的解析)。 此事件发生后,2004年10月,ICANN批准将.LY授予利比亚邮电公司,.LY事件终于尘埃落定。
本文提到的风险和应对措施主要是我个人的分析。 我们来看看行业专家是怎么说的。
中国工程院院士、清华大学计算机系主任吴建平在2019年接受采访时表示,DNS根域名服务器不是互联网的“核按钮”。 全球互联网根域名服务器运营商不可能同时关闭所有根服务器,包括影子服务器。
互联网域名系统北京工程研究中心(ZDNS)主任毛伟表示,互联网专家一直在不断完善域名根系统安全机制。 即便“根”真的被斩断,也有应急办法解决。 国内可以通过备份根区数据、搭建应急根服务器来解决; 在全球层面,可以通过根镜像、扩大IPv6环境下的根服务器数量、替代根服务器运行机制等方法来解决。
现在你对根域名服务器了解了这么多,是不是更放心了呢?
参考:
从互联网强国到互联网强国()
浅析美国网络霸权()
为什么域名根服务器只能有13个? ()
为什么有 13 个 DNS 根服务器?()
使用 Priming Queries() 初始化 DNS 解析器
薛宏:互联网全球治理新篇章()
ICANN:IANA 职能()
阮一峰:根域名知识
北龙忠旺王伟出任PTI主任,中国专家在国际互联网治理中担任要职()
工业和信息化部关于批准中国互联网络信息中心设立域名根服务器(F、I、K、L根镜像服务器)和域名根服务器运营机构的批复()
工业和信息化部关于批准互联网域名系统北京工程研究中心有限公司建立域名根服务器(L根镜像服务器)和域名根服务器运营机构的批复()
portant;box-sizing: border-box !important;">----------------------- portant;box-sizing: border-box !important;">portant;box-sizing: border-box !important;">公众号:Python知识圈 portant;box-sizing: border-box !important;">portant;box-sizing: border-box !important;">博客portant;box-sizing: border-box !important;">:www.pyzhishiquan.com portant;box-sizing: border-box !important;">portant;box-sizing: border-box !important;">知乎:Python知识圈 portant;box-sizing: border-box !important;">portant;box-sizing: border-box !important;">微信视频号:菜鸟程序员 (分享有趣的编程技巧、Python技巧) portant;box-sizing: border-box !important;">portant;box-sizing: border-box !important;">bilibili:菜鸟程序员的日常(目前原创视频:22,累计播放量:75万) portant;box-sizing: border-box !important;"> portant;box-sizing: border-box !important;"> portant;box-sizing: border-box !important;">我的微信视频号定时更新中,近期真人出镜分析讲解 Python 经典习题,后续会分享更多的干货,欢迎关注我的微信视频号。
portant;box-sizing: border-box !important;">
Python知识圈公众号的交流群已经建立,群里可以领取 Python 相关学习资料,大家可以一起学习交流,效率更高,portant;box-sizing: border-box !important;">如果是想发推文、广告、砍价小程序的敬请绕道!portant;box-sizing: border-box !important;">一定记得备注「portant;box-sizing: border-box !important;">交流学习portant;box-sizing: border-box !important;">」,不然不会通过好友portant;box-sizing: border-box !important;">。
portant;box-sizing: border-box !important;"> 扫码添加,备注:交流学习
portant;box-sizing: border-box !important;"> 往期推荐 01 02 03 portant;box-sizing: border-box !important;">
portant;">
我就知道你“在看”