经常在网上看到关于中国没有根DNS服务器,影响国家安全的论调。
首先希望各位作者,先了解一下DNS如何工作的。
我一直以为DNS是这样工作的:比如我们要解析名为A.B.C.E.F的域名。
根据RFC的定义,域是从右向左逐级下降的,也就是右边的域是高层次的,比如com,org,cn都同等的一级域。根据逐级自治的思想,我们就要从F域的DNS了解E.F是如何解析的。而F又如何查询?这就依赖于根DNS。
每个BIND这个最常见的DNS服务器软件中,有相关的配置文件,把从A-M这十三个顶级根域名服务器的地址。
因此首先bind会从A-M任意挑一个顶级域名服务器来寻找F域的DNS服务器,来解析E.F
同样找到E.F域的DNS后,就查找C.E.F直到找到A.B.C.E.F对应的IP地址为止。
因此这十三个顶级域名服务器压力是接近均衡的。
换句话说,中国有一台根服务器,和没有还是一个样,并不能真正解决国家安全问题 。
其实国家DNS安全问题,完全可以低成本解决,那就是建设国家DNS服务中心。
国家DNS服务中心的建设方式有两种:
1、自主根域名服务器方案
在每个互联网出口的路由器上,增加一根光纤通向国家DNS服务中心,为十三个顶级域名服务器做路由转向国家DNS服务中心。这样,我们就拥有自己的十三台顶级DNS了。
2、完全DNS代理服务
由于只有13个根DNS,其他如COM,ORG,等域名,还是会到境外解析。
因此可以通过DNS代理方式,只从境外取一次解析,以后定期刷新这样,就把对外的DNS流量完全掐断。
方法:在每个出口路由器上结合GFW的功能,把所有的DNS请求转发到国家DNS服务中心,而境外请求全部放行。由国家DNS服务中心解析后,再以原先的目标IP发回给请求端。
bind的配置文件中有A-M 13个根域名服务器的名字与IP,只要我军我党愿意,完全可以在出口劫持这13个根服务器,所谓影响国家安全,完全是无稽之谈。
如何劫持?在每台出口路由器上专门拉根光纤到国家安全DNS服务中心,然后在每台路由器的路由表上,为这13个地址专门做一条路由转到咱们的国家安全DNS服务中心,这样,只要在中国,只要没有指定默认海外DNS,就完全在国内了。
再换个思想,只要有DNS的包,咱们的伟大全能的GFW,可以把DNS请求转发到国家安全DNS服务中心去,这样就可以保护国家安全了,杨剑您也不必不懂装懂了