什么是DNS根服务器,真的只有13台么?

什么是DNS?

三个英语首字母的缩写,Domain Name System。用来把google.com或者bing.com这样的网址转换成IP地址。比如下面这样

那这些信息是谁给的呢?是DNS服务器。上面这张图倒数第三行有个 127.0.0.53#53,就是这里给的,我的是Ubuntu,开启了systemd-resolved服务。

大部分人用的是运营商提供的,比如中国电信,中国联通,都有自己的DNS。

DNS的工作流程

  1. 在浏览器里输入google.com的时候,会到本地运营商那里去查询。
  2. 如果运营商那里没有,会再去上一级查询
  3. 最后查到了DNS root servers,如果有google.com的记录,返回
  4. 如果DNS root servers没有记录,那怎么办?会根据你的后缀名,比如.com, .org, .net去TDL(顶级域名商Top-Level domain)的域名服务器里查查

一般情况下,第一步就结束了,后面几步根本用不上。

第4步,注册域名是要交钱的,每年几十上百的,顶级域名商是要提供DNS服务的,如果这都不提供,那这生意就别做了。基本上用不到第4步。

为什么只有13个呢?

我认为一个可信的答案是,没人知道为什么是13个,大概是设计者当年的生日吧,或者前期就找了13台电脑。

我知道有人分析过为什么是13个,从IP包或者UDP包的大小上来分析,算个除法,只能容纳13台服务器,那明显是瞎扯,强行向里凑数,而且把bit和byte都算错了,512byte / 32bit 是不可能等于13整数外加96byte的。

不过这个解释流传太广了,感觉像真的一样。实际上没法自圆其说。

这13个服务器的命名是这样的a.root-servers.net, b.root-servers.net, c.root-servers.net …… m.root-servers.net

网上传的这13个服务器分布在哪里哪里非常机密的地方更是搞笑,实际上这13个root-servers分布在12个地方,有个叫VeriSign. Inc有两个,这个公司还是.com, .net, .gov, .edu等一些顶级域名的运营商。

根服务器里是什么?

前面渲染的这么NB,那肯定存的也是NB东西了?哈哈,恰恰相反,只存了一个2M大小的文本文件,文本文件里记录了2000来个顶级域。

顶级域看起来很高大上的叫法,实际上我们天天使用,分为通用顶级域和国家顶级域。

通用的就是像.com, .net, .edu这些。

国家顶级域就是.cn是中国,.sb是所罗门群岛国家及地区顶级域, .us是美国的。还有一些非英文字母的域名,比如 .中国 .台湾 .香港这些都是国家顶级域名。

任何人都可以下载下来,网址在这里:

Root Zone File 下载地址

怎么感觉没什么技术含量?

确实没技术含量,就是一些文本文件,记录了一些信息,能有什么技术含量呢?所以,本质上,能做根服务器,靠的不是技术,而是良心。

就像中央银行一样,在二战时期,波兰把黄金存到了英国的金库里,最近,2019年了,才运回去,人家英国认账。

同样是存黄金,西班牙把500多吨黄金存到苏联,斯大林问,你们黄金送来了?我怎么没收到呢?

存黄金和存Root Zone File 一样,信誉是最重要的,你只要保证不改动这个文件,就能和那13个根服务器一样。所以,现在有1000多个根服务器在运行。

如果有人改了呢?

只要是正常人,肯定会觉得,攻击这种最基础的服务,肯定会发出“始作俑者,其无后乎?”的感慨。因为你篡改攻击了根服务器的文件,肯定会导致大面积的网络故障。

直到,2010年3月份,真有个国家故意污染了根域,只是我忘记了是哪个国家了,而且不止一次,直接导致欧美,智利这些“没见识到世间险恶的国家”大面积断网,智利的网直接闪崩了,达成了facebook,youtube和 twitter同时在多个国家下线的壮举。刚开始以为是故障,后来多次警告以后,某些国家仍“不要,停!不要停!”,导致该国的根域被撤销路由通告。

后记

我记忆之中,只有这一次对根服务器的攻击算是取得了巨大的成功。最后导致该国的根域镜像被撤销路由通告。就好像斯大林骗了西班牙500吨黄金一样,你只能骗这一次了。

再后来,没人肯把黄金存到苏联,都存到英国和美国,斯大林认为这是英国和美国的阴谋。这么说来,13台根服务器好像也是欧美的阴谋吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注