
1攻击者选定一个域作为目标,比如someoneexample。
2 在目标域内,攻击者 *** 纵僵尸网络产生大量随机域名。这些随机域名的头部都是些诸如asdfghjk、zxcvbnm之类的无意义的字符,制造出来的域名形如:asdfghjksomeoneexample和zxcvbnmsomeoneexample。
3然后向递归域名服务器发起大量针对这些无意义域名的查询请求。
4递归域名服务器转而将请求发送到someoneexample的权威服务器以查询这些域名。
5 权威域名服务器返回‘请求的域名不存在’的响应(NXDOMAIN)。
6 递归服务器中继转发这一响应给原始请求者,并缓存下域名不存在的记录。
7 请求,响应,缓存,再来一遍。反反复复无穷尽。
大多数情况下,运营权威域名服务器的机构(本例中是为someoneexample提供权威域名解析的)似乎是攻击者的目标。比如说,我们观察到的某些被攻击的域名就是国内博彩网站使用的(也许是有人因为损失惨重而对庄家进行报复?)无论如何,递归服务器终归是无辜中箭,连带崩溃。他们确实是目标么?
比如之前,Infoblox的客户遭受攻击的域中有部分在攻击过后神秘消失了一天或两天,表明这些域并没有被使用(事实上很可能是被“试探性抢注”了)。攻击者可能故意将这些域注册到慢速或停止响应的域名服务器上,这样域内的域名解析就会无限漫长,比如com、top、cn等等域名。当然,抛开目标问题不谈,攻击背后的机制也同样迷雾重重。
DNS解析流程分为 递归查询 和 迭代查询 ,递归查询是以本地名称服务器为中心查询, 递归查询是默认方式,迭代查询是以DNS客户端,也就是客户机器为中心查询。 其实DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。
“递归解析”(或叫“递归查询”,其实意思是一样的)是最常见, 也是默认的解析方式 。在这种解析方式中,如果客户端配置的本地名称服务器, (又称Local DNS, 可以是默认的运营商提供的Local DNS 或者自己设置的DNS) 不能解析的话,则后面的查询全由本地名称服务器代替DNS客户端进行查询,直到本地名称服务器从权威名称服务器得到了正确的解析结果,然后由本地名称服务器告诉DNS客户端查询的结果。
下图是windows下默认获取的运营商Local DNS或者 自己设置的Local DNS
在这个查询过程中,一直是以本地名称服务器(Local DNS)为中心的,DNS客户端只是发出原始的域名查询请求报文,然后就一直处于等待状态的,直到本地名称服务器发来了最终的查询结果。此时的本地名称服务器就相当于中介代理的作用。如果考虑了本地名称服务器的缓存技术(也就是在DNS服务器上对一定数量的以前查询记录保存一定时间,这样后面查询同样的域名信息时就可直接从缓存中调出来,以加速查询效率)的话,则递归解析的基本流程如下:
(1)客户端向本机配置的本地名称服务器(在此仅以首选DNS服务器为例进行介绍,所配置其它备用DNS服务器的解析流程完全一样)发出DNS域名查询请求。
(2)本地名称服务器收到请求后,先查询本地的缓存,如果有该域名的记录项,则本地名称服务器就直接把查询的结果返回给客户端;如果本地缓存中没有该域名的记录,则本地名称服务器再以DNS客户端的角色发送与前面一样的DNS域名查询请求发给 根名称服务器 。
(3)根名称服务器收到DNS请求后,把所查询得到的所请求的DNS域名中 顶级域名所对应的顶级名称服务器 地址返回给本地名称服务器。
(4)本地名称服务器根据根名称服务器所返回的顶级名称服务器地址,向对应的顶级名称服务器发送与前面一样的DNS域名查询请求。
(5)对应的顶级名称服务器在收到DNS查询请求后,也是先查询自己的缓存,如果有所请求的DNS域名的记录项,则相接把对应的记录项返回给本地名称服务器,然后再由本地名称服务器返回给DNS客户端,否则向本地名称服务器返回所请求的DNS域名中的二级域名所对应的二级名称服务器地址。
然后本地名称服务器继续按照前面介绍的方法一次次地向三级、四级名称服务器查询,直到最终的对应域名所在区域的 权威名称服务器 返回到最终的记录给本地名称服务器。然后再由本地名称服务器返回给DNS客户,同时本地名称服务器会缓存本次查询得到的记录项。
DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。
DNS递归名称解析 : 在DNS递归名称解析中,当所配置的本地名称服务器解析不了时,后面的查询工作是由本地名称服务器替代DNS客户端进行的(以“本地名称服务器”为中心),只需要本地名称服务器向DNS客户端返回最终的查询结果即可。
DNS迭代名称解析 :(或者叫“迭代查询”)的所有查询工作全部是DNS客户端自己进行(以“DNS客户端”自己为中心)。在条件之一满足时就会采用迭代名称解析方式:
通过看看他们的不同:
权威 DNS 是特定域名记录(例如“examplecom”)在域名注册商处所设置的 DNS 服务器,用于特定域名本身的管理(增加、删除、修改等)。
权威 DNS 服务器只对自己所拥有的域名进行域名解析,对于不是自己的域名则拒绝访问。比如,向“examplecom”的权威 DNS 服务器查询“testcom”的域名肯定会查询失败。
递归 DNS(也称本地 DNS 或者缓存 DNS)用于域名查询。递归 DNS 会迭代权威服务器返回的应答,直至最终查询到的 IP 地址,将其返回给客户端,并将请求结果缓存到本地。
对用户发出的域名解析请求,递归 DNS 必须给出一个最终的 IP 地址结果。完整的递归DNS 查询流程需要 DNS 服务器从根域名 “” 服务器,顶级域名服务器(例如“com”),一级域名服务器(例如“examplecom”)等一级一级递归查询,直到最终找到权威服务器取得结果,并返回给客户。同时,递归服务器根据域名 TTL,缓存查询结果,便于相同域名重复查询。
递归 DNS 服务器大多数在运营商端,负责网络接入终端的 DNS 查询,即网络访问设备上配置的 DNS 服务器 IP。
递归 DNS 的访问过程如下图所示(递归 DNS 在图中表示为 Local DNS):
>默认情况下,DNS服务器使用递归方式来解析名字。递归的含义就是DNS服务器作为DNS客户端向其他DNS服务器查询此解析请求,直到获得解析结果,在此过程中,原DNS客户端则等待DNS服务器的回复。
如果你禁止DNS服务器使用递归方式,则DNS服务器工作在迭代方式,即向原DNS客户端返回一个参考答复,其中包含有利于客户端解析请求的信息(例如根提示信息等),而不再进行其他 *** 作;原DNS客户端根据DNS服务器返回的参考信息再决定处理方式。但是在实际网络环境中,禁用DNS服务器的递归查询往往会让DNS服务器对无法进行本地解析的客户端请求返回一个服务器失败的参考答复,此时,客户端则会认为解析失败。
所以递归和迭代的不同之处就是当DNS服务器没有在本地完成客户端的请求解析时,由谁扮演DNS客户端的角色向其他DNS服务器发起解析请求。
域名解析耗时就是将域名解析获得对应IP地址,并返回给客户端这个过程所消耗的时间。
当我们对某个域名发起访问,并不是直接就能对响应站点发起访问的,需要借助DNS获取域名与IP地址对应关系,在取得解析记录之后,才能发起访问。
解析过程的具体流程大致如下:
(1)客户端对某个域名发起访问。
(2)浏览器会首先对浏览器、系统缓存以及本机HOSTS文件等本地信息进行查询,如果有结果直接告知客户端,解析过程结束。
(3)如果本地没有结果,浏览器就会请求递归服务器,递归服务器有结果就会告知客户端,解析过程借宿。
(4)如果递归服务器没有结果,就会委托递归服务器进行全球递归查询,首先请求根域名。
(5)根域名告知递归服务器域名所在的顶级域名服务器,递归服务器对顶级服务器发起请求。
(6)顶级服务器告知递归服务器域名所在的权威域名服务器,权威域名服务器将解析记录告知递归服务器。
(7)递归服务器将结果再告知客户端,解析过程结束。
流程图如下所示:
由此可见,影响域名解析耗时的因素有以下几点:
(1)本地缓存
如果本地缓存中有域名和IP地址的对应关系,就会直接在本机获取结果,无需进行全球递归查询,这样解析用时就大大缩短,但缓存对于解析安全有较大影响;
(2)递归服务器
一般而言,我们无法决定用户使用何种DNS Server,大部分初级用户使用的是本地ISP自动获取的DNS Server,部分用户则使用第三方DNS Server比如Open DNS或者Google DNS。
不过你可以建议你的用户使用Google DNS (8888 和8844),该DNS Server会比电信或网通自动获取的DNS Server快许多。
(3)权威域名服务器
权威域名服务器时影响域名解析耗时的关键,一般的解析服务器都是单节点单线路,如果域名距离较远,可能就会因为跨域跨网造成较大的延迟,如果域名的访问量大,还会造成线路的拥堵。所以为了减少解析时间,建议选择性能较好,多节点,多线路的权威域名服务器。
1 递归查询 : 一般客户机和服务器之间属 递归查询 ,即当客户机向 DNS 服务器发 出请求后,若 DNS 服务器本身不能解析,则会向另外的 DNS 服务 器发出查询请求,得到结果后转交给客户机; 2迭代查询(反复查询): 一般 DNS 服务器之间属迭代查询,如:若 DNS 2不能响应 DNS 1的请求,则它会将 DNS 3的IP给 DNS 2,以便其再向 DNS 3发出请求; 举例:比如学生问老师一个问题,王老师告诉他答案这之间的叫 递归 查询。这期间也许王老师也不会,这时王老师问张老师, 这之间的查询叫迭代查询!1、什么是CDN
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
举个例子,某个网站的服务器在北京,如果深圳的用户想要获取服务器上的数据,就需要跨越很远的距离,由于传输速度和路由转发等因素,就会导致访问速度非常缓慢。但如果我们在深圳建立一个CDN服务器,上面缓存了一些服务器数据,那么深圳用户只需要访问这个CND的服务器就能获取相关的内容,这样速度就提升了很多。
2、什么是DNS
“DNS即域名服务器,是进行域名和与之相对应的IP地址转换的服务器,DNS中保存了一张域名和与之相对应的IP地址的表,以解析消息的域名。”
例如,我们要访问>
3、两者有什么区别
简单的CDN实际上是一个就近访问的功能,但现在有一个问题是,我们如何直到用户所在的位置并为其分配最佳的CDN节点呢。这就需要用DNS服务进行定位了。
当我们使用DNS服务时,可以根据用户使用的递归服务器进行定位。但你给我们看到用户使用的是深圳的递归服务器,那么就认为该用户来自深圳,然后调度服务器就让该客户去访问深圳的CDN服务器。
但这种调度方式可能存在一个问题,就是用户的实际IP与递归服务器并不一致。比如我是北京联通的用户却使用了深圳电信的递归服务器,那么调度服务器为我分配深圳电信的CDN服务器,就会产生错误的调度。
根服务器就是整个互联网世界的地址登记表,就像在现实世界中只有通过地址才能找到朋友的家,虚拟世界里必须通过根服务器才能访问入网的各类网站和设备。
根服务器主要用来管理互联网的主目录,所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。
根服务器的地理分布
根服务器全世界只有13台。这13台根域名服务器中名字分别为“A”至“M”,1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。
这13台根服务器可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信。由于根服务器中有经美国政府批准的260个左右的互联网后缀(如com、net等)和一些国家的指定符(如法国的fr、挪威的no等),美国政府对其管理拥有很大发言权。
我的理解就是公共dns就是我们自己电脑上的
域名dns就是网站服务器上面的,
服务器上面的只是把我们的网址解析给服务器,
我们电脑上的就是把网址解析给自己的电脑
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)