相信大多数人对DNS的初识都和笔者一样,来自于大学时候在宿舍给笔记本联网,交完网费,学校会给你一个IP地址,然后你自己设置联网就好了。但是从专业概念来讲,DNS又是什么呢?
电脑DNS 服务器地址设置
DNS是Domain Name Service的缩写,翻译过来就是计算机域名服务器(也有扩写成Domain Name System,译为计算机域名系统)。而之所以本文称DNS 服务器为“翻译官”,是因为DNS是进行域名(domain name)和与之相对应的IP地址(IP address)转换的服务器。虽然我们每天都会用到DNS 服务器,但是却很少有人知道它,足以体现DNS容易被视而不见的特性了。
也就是说,在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,而域名解析需要由专门的域名解析服务器来完成,这就是DNS域名服务器。
说白了,DNS 服务器起到的作用是把我们输入的字符域名转换为主机的IP地址。计算机在网络上进行通讯时只能识别如“201.59.72.14”之类的IP地址,而不能认识域名。但是,我们打开浏览器在地址栏中输入字符域名后就能看到所需要的页面,就是因为有一个叫“DNS 服务器”的存在,自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。也正因此,也有人将DNS 服务器比喻成“翻译官”和“电话簿”。
就像大多数同传大神一样,DNS 服务器这个翻译官也常常躲在一个小黑屋里工作,不同于同传翻译人员使用一支笔、一个本和大脑来翻译,DNS 服务器的翻译逻辑似乎有些不同,毕竟他们只能是0和1的组合。
如果简单来讲,可以将DNS分为C/S(Client/Server,客户机/服务器)两种模式,Client扮演询问角色,由Client向Server询问Domain Name(域名),Server负责给出域名对应的真正IP地址。
具体而言,要分八步走(注,为实现冗余和负载均衡,部分地址解析结果有可能是一个,也可能是多个,本文均以一个为例)。
1、客户端发出请求:我需要访问www.112321.com,请告诉我它的IP地址。
2、本地DNS服务器(向DNS根服务器)分发需求:缓存中没有112321.com的记录,向d.root-servers.net.请求域名对应IP地址。
3、DNS根服务器给出范围:该域名由.com.cn区域管理,给你.com.cn域服务器地址ns.cernet.net.
4、本地DNS服务器(向.com.cn域服务器)分发需求:域名112321.com对应的IP地址是多少?
5、.com.cn域服务器给出范围:负责com.cn的域服务器应该知道IP地址,你去问它。
6、本地DNS服务器(向pc841.com域服务器)分发需求:请问域名112321.com对应的IP地址是多少?
7、112321.com域服务器给出答案:经查询得知,该域名对应的IP地址是123.101.57.11
8、本地DNS服务器(向网络客户端)回复答案:域名112321.com对应的IP地址是123.101.57.11
一般来讲,DNS 服务器一般会在获得域名对应IP地址之后,将该IP地址与域名对应关系记入缓存中,以备下次别的用户查询时可以直接返回结果,以加快网络访问速度。
完成以上8步,正向解析完成,除了正向解析(域名转换成IP地址的操作)之外,还有反向解析,即通过IP地址转换成域名的操作,这里再不做详尽解释。
3DNS可以帮你优化网速和查漏洞
除了基本的翻译工作之外,DNS还能为我们带来哪些优势呢?今天,笔者就向大家简单介绍三种DNS能够告诉我们的事儿。
一、检测垃圾邮件和Botnet僵尸网络
众所周知,Botnet僵尸网络就是许多台被恶意代码感染、控制的与互联网相连接的计算机。而当一个运行一个垃圾邮件的时候,会有大量的邮件被发送到一个预定的域名列表里;就导致一个已经不存在的域名,被高频率的访问。另外,在图示一圾邮件和Botnet僵尸网络,并迅速识别受损及其,解决问题。
二、优化网络速度,降低网络成本
DNS数据可以告诉我们是否出现网络堵塞,并识别网络堵塞的原因。上图是未经过滤的图片,根据颜色的不同,可以看出网络速度的不同。继续研究的话你可以调节DNS 服务器配置,改善网络速度,减少在某些应用程序上的等待时间,甚至有可能节省网络成本。
三、发现软件漏洞
正常的DNS应该是稳定的,但如果你发现Servfail响应异常,那可能意味着出现了网络漏洞。它或者意味着软件漏洞,或这意味着你的服务器配置相对较差,可能会增加你的风险。
Google DNS服务器平均每天处理超过1500亿个查询。在2014年3月17日,根据网络监测公司BGPMon数据,Google的公开DNS服务器IP 8.8.8.8被劫持到了委内瑞拉和巴西超过22分钟。类似这样的事件时有发生,我们所需要做的就是利用一切手段,防止这样的事件发生。
长久以来,DNS一直未作为分析网络问题的标准,甚至可能性。但是如今根据相关测试我们可以看出,DNS可以告诉我们的还有很多。比如检测垃圾邮件和Botnet僵尸网络;优化网络速度,降低网络成本和发现软件漏洞。
尽管DNS看起来优势多多,但是DNS域名服务器安全问题由来已久,比如2009年的519事件,因为DNSPOD用户域名相互攻击造成DNSPOD宕机,大量请求压力让运营商服务器受到了影响,导致南方六省断网、服务器崩溃。后来的DNS域名被篡改、DDOS攻击、内部威胁等问题也持续存在。
如何防止恶意攻击 保护DNS 服务器
一般来讲,只要不是网络服务供应商受到重大攻击,企业网络完全陷入瘫痪的可能性不大。而企业DNS 服务器会面临的漏洞主要包括:DNS IPv6漏洞、公用DNS服务器上的漏洞、内部威胁和社会工程学四大方面。而要提高企业DNS 服务器安全问题也十分简单。
1、控制入口
即对主要网络资源访问权限进行管控。从主力DNS 服务器接收这些区域文件的只读拷贝。比如,你可以配置企业的DNS 服务器,禁止区域传输请求,或者仅允许针对组织内特定服务器进行区域传输,以此来进行安全防范;在基于
Windows的DNS 服务器中,你也应该在DNS 服务器相关的文件系统入口处设置访问控制,这样只有需要访问的帐户才能够阅读或修改这些文件。
2、做好Plan B
几乎在所有企业级IT应用场景中冗余和备份都是不可缺少的一部分,所以做好灾难备份和恢复、做好风险评估方面就显得异常重要。此外,在管理方面,企业还需要制定相关规范,遇到问题形成快速反应机制。
3、专业支持
俗话说,网络安全工作要靠三分技术、七分管理,所谓管理就是控制入口、做好备用方案,而三分技术才是企业稳定运行的基础。这就需要企业找到专业的软硬件服务器供应商,匹配专业的技术人员,建立一个健康的IT生产环境,保证DNS 服务器及企业网络安全。
根域解析故障
对于普通消费者而言,除了遇到类似2014年1月21日中国互联网根域名服务器(DNS)故障这种所有通用顶级域名的根域解析出现异常,导致大量网站域名解析不正常,网站无法打开的情况之外,大多数时候,DNS 服务器只是躲在小黑屋中,帮助我们实现正向/反向解析的翻译官,似乎没什么大用。但是正因为大量默默无名的DNS 服务器在刻苦工作,才有了我们发达的互联网生态。