DNS的主要缺陷
近日有关DNS最大的消息,莫过于ICANN正式批准正式支撑包含汉语、阿拉伯文等在内的非拉丁语,来之不易。
80年底初创造DNS的重要原因是随着互联网上主机数量的不断上升,通过本地的hosts.txt文件找到对方越来越艰苦,也越来越不可靠 。DNS成功解决了这一问题,总体看很硬朗,规模利用的扩大性也很好,也很容易延伸到一些新的领域(如IPv6, E.164)。
作为互联网要害基础设施的DNS,目前仍然存在4个方面的重要问题:
技术方面:RFC1035规定DNS协议基于UDP,最长只能是512字节,全球最多只能有13台根服务器,IP分片难以处理,DNSSEC和IPv6也难以支撑等。解决的方案提出了两个,一是虽然做了ENDS0的扩大但实际利用的很少,二是勉励基于TCP的DNS但可能会带来更大的问题。其他的问题还有缓冲区投毒,无法知道非法的gTLD和ccTLD而导致的根服务器污染,UDP的诱骗攻击,DNSSEC中的根密钥管理和更新问题等,与IPv6共存时DNS串行解析增长的新延迟,利用类似字符进行网络钓鱼等。
实现方面:常用的名字服务器软件(BIND和Windows)历史上有一些可以被利用的安全漏洞,可用来做投毒、中间人攻击和DOS攻击等,尤其是在递归解析时。另外,由于无效TLD、重复解析和源地址弊病(如RFC1918)等,根服务器上75%-98%的流量实际上是没必要的,缺乏缓存、UDP缺乏循环监测机制和anycast以及超额安排DNS,都污染了DNS。另外,WEB浏览器也爱好为利用增长一些没法解析的名字上去。
运营方面:如不合格的代理机构,网络的差别性,开放的解析软件,没有SOA,名字服务器复杂的相互依附,TTL的设置,名字空间的随便扩大,把DNS当作负载均衡技术用等。
注册方面:市场的混乱,无需多言。