DNS协议详解
DNS概述
DNS(DomainNameSystem,域名系统),是互联网的核心技术之一,为应用层协议,运行在UDP之上,使用53端口。万维网DNS上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住IP。通过域名,最终得到该
域名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS的域名空间结构
-
根DNS服务器
有400多个根域名服务器遍及全世界,这些根域名服务器由13个不同的组织管理。根域名服务器提供TLD服务器的IP地址。
-
顶级域DNS服务器
对于每个顶级域名比如com、org、net、edu和gov和所有的国家级域名uk、fr、ca和jp都有TLD服务器或服务器集群。TDL服务器提供了权威DNS服务器的IP地址。
-
权威DNS服务器
在因特网上具有公共可访问的主机,如Web服务器和邮件服务器,这些主机的组织机构必须提供可供访问的DNS记录,这些记录将这些主机的名字映射为IP地址。⼀个组织机构的权威DNS服务器收藏了这些DNS记录
DNS查询步骤
1、在浏览器中输入www.baidu.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(http://www.baidu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找http://www.baidu.com域服务器,重复上面的动作,进行查询,直至找到www.baidu.com主机。
如图:
6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
DNS攻击
DNS
攻击主要有下⾯这几种⽅式:
第⼀种是Dos
攻击,这种攻击的主要形式是使重要的DNS服务器比如TLD
服务器或者根域名服务器过载,从而无法响应权威服务器的请求,使DNS
查询不起作用。
第⼆种攻击形式是DNS
欺骗,通过改变DNS
资源内容,比如伪装⼀个官⽅的DNS
服务器,回复假的资源记录,从而导致主机在尝试与另⼀台机器连接时,连接至错误的IP地址。
第三种攻击形式是DNS
隧道,这种攻击使用其他网络协议通过DNS
查询和响应建⽴隧道。攻击者可以使用SSH
、TCP
或者HTTP
将恶意软件或者被盗信息传递到DNS
查询中,这种⽅式使防火墙无法检测到,从而形成DNS
攻击。
第四种攻击形式是DNS
劫持,在DNS
劫持中,攻击者将查询重定向到其他域名服务器。这可以通过恶意软件或未经授权的DNS服务器修改来完成。尽管结果类似于DNS
欺骗,但这是完全不同的攻击,因为它的⽬标是名称服务器上网站的DNS
记录,而不是解析程序的缓存。
第五种攻击形式是DDoS
攻击,也叫做分布式拒绝服务带宽洪泛攻击,这种攻击形式相当于是Dos
攻击的升级版
DNS防护
DNS
缓存的工作流程
在浏览器向外部发出请求之前,计算机会拦截每个请求并在DNS
缓存数据库中查找域名,该数据库包含有最近的域名列表,以及DNS
首次发出请求时DNS
为它们计算的地址。
DNS防火墙
有⼀些攻击是针对服务器进行的,这就需要DNS
防火墙的登场了,DNS防火墙是⼀种可以为DNS服务器提供许多安全和性能服务的工具。DNS
防火墙位于用户的DNS
解析器和他们尝试访问的网站或服务的权威名称服务器之间。防火墙提供限速访问,以关闭试图淹没服务器的攻击者。如果服务器确实由于攻击或任何其他原因而导致停机,则DNS防火墙可以通过提供来自缓存的DNS
响应来使操作员的站点或服务正常运行。