DNS系列一:DNS查询原理

时间:2022-05-06 12:18:13 其他范文 收藏本文 下载本文

DNS系列一:DNS查询原理((共10篇))由网友“POTATO”投稿提供,下面给大家分享DNS系列一:DNS查询原理,欢迎阅读!

DNS系列一:DNS查询原理

篇1:DNS系列一:DNS查询原理

网络通讯大部分都是基于TCP/IP,而TCP/IP通讯则是基于IP地址,但是在现实网络访问中有谁愿意用IP地址访问呢,因为IP地址我们记忆起来不方便,为了解决这个问题,因此有了DNS。

DNS:域名系统 用户在访问互联网时通过输入www.luwenju.com 其实输入的是一个计算机名,用户计算机把它交给DNS服务器,服务器在接到请求后会回应用户计算机一个IP地址,用户计算机在通过DNS服务器返回的IP地址访问互联网。如下图所示

上图中,DNS客户机查询DNS服务器,要求获得某台计算机的IP,由于DNS服务器能够根据自己DNS数据库中对应查询,所以它将自己资源记录中的www.luwenju.com=192.168.1.100返回给客户机。

客户机把所要访问的计算机名交给DNS服务器,然后服务器开始查询。DNS服务器查询有四种:1、递归查询 2、迭代查询 3、转发器 4、私有根

下面分别这4中查询方法

1、递归查询:

当DNS客户机发送给DNS服务器要求解析某个计算机名时,DNS服务器首先查找自己的数据库,如果数据库中有对应的域名和IP的映射信息,则把该域名所对应的IP地址返回给客户机。如果服务器在自己的数据库中没有发现该资源记录,则宣告查询失败

首先DNS客户机向DNS服务器发起查询请求,然后DNS服务器开始检查资源记录,如果找到该资源记录,则把它返回给客户机,

如找不到,可以通过转发器和根提示来查找该记录。如果DNS服务器通过任何方法都没找到该记录,则宣告查询失败。

2、迭代查询:

迭代查询指的是一台DNS服务器发往令外一台DNS服务器的查询

① 客户机向本地DNS服务器发起请求,问www.luwenju.com的IP地址是多少?

② 本地DNS服务器收到DNS客户机的迭代查询,根服务器作出相应,提供靠近所提交域名的DNS服务器的IP地址

③ 本地DNS服务器向靠近所提交的DNS服务器发起迭代查询,以此类推,直到本地DNS服务器收到所要查询的资源记录

④ DNS服务器收到资源记录后发送给本地DNS服务器

⑤ 本地DNS服务器将资源记录回应给DNS客户机

3、转发器

转发器通过内部DNS服务器把用户的发来的请求(内部DNS服务器无法解析的请求)转发给外部网络上的DNS服务器进行解析

①客户机向本地DNS服务器发起DNS请求:www.luwenju.com的IP是?

②本地DNS服务器自己的资源记录中没有该记录,由于配置了转发功能,把DNS客户机发的请求转发给了外网的DNS服务器

③外网DNS服务器把资源记录返回给本地DNS服务器

④本地DNS服务器把该记录回应给客户机

4、私有根

(待续)

篇2:如何查询DNS服务器?

查询DNS地址方法如下:

第一步、进入电脑桌面--开始 找到运行在运行对话框中输入 CMD 命令之后回车确认进入,进入CMD命令如下图:

第二步、再在CMD命令框中输入“ ipconfig /all ”命令,回车确认即可,

如何查询DNS服务器?

在DNS Servers这一项对应的后面就是DNS服务器地址,排在第一的就是首选,下面的就是备用的。dns错误怎么办 如下图:

DNS查询结果

篇3:学DNS系列(八)DNS客户端查询过程

DNS客户端的注册信息在DNS服务器中是以记录的方式体现出来的,那么客户端就可以用一些方式进行查询各类记录,相对应的,服务器会对这些查询进行响应,我们称之为解析,至于DNS内部的工作机制,我们不得而知,但可以通过一些命令和方法间接地了解DNS查询过程。为了更好的描述这个问题,我做了一张简单的TOPO图,其中DNS1为DNS服务器,主机XP3是一个DNS客户端。拓扑图如下:

在客户端向DNS服务器提交一个查询消息中,通常都会包含3条基本信息,1、需要制定查询的 DNS域名;2、指定查询请求的基本类型;3、DNS域名的指定类别。对于windows系统的DNS服务器而言, 第三条即DNS域名的指定类别总是Internet,即我们常说的IN类别,这个关键字无论是在正向还是反向区 域的DNS文件中都可以看的到,我们以正向查找区域的DNS文件为例,如下图:

所以 ,通常我们在提交一个查询时只需要包含DN S域名和查询请求的类型这两部分内容就可以了,通过一个 实例来讲解吧。在a.com区域内存在2条A记录,如下图:

那么我们在XP3上查询DNS1的A记录,

为了更好的理解整个过程,我们依然会使用wireshark来进行辅 助分析。整个过程如下图:

在上图中用到几个命令 ,如nslookup、set 等,这些命令在DNS应用和排错中用的很普遍。所以后面 会单独有一节来讲这部分内容。我们再来看看wireshark都发生了什么,整个过程经历了2个步骤。如下 图:

数据包1的分析过程:

数据包2的分析过程:

上面是查询A记录的过程分析,同理,在查询NS记录或者PTR指针记录时也是类似的过程,只是查询的类型和结果不同而已,这里不再熬述。

DNS客户端在第一次查询某条记录时,会按照上述的过程 进行,当再次查询时则会首先使用本地缓存信息来解析查询请求,如果有对应的记录则完成此次解析, 否则就会向自身的DNS服务器发起查询。而这样的本地解析依据来源于2个地方,如下:

1、即为本地预先配置的主机名到地址的映射关系,也就是我们常提的HOSTS文件。

2、以及系统保存在查询缓存中的记录。

其实,从上面不难看出,客户端解析的过程也就是记录匹配的过程,如果有匹配的选项,则会返回相应信息给客户端,反之则提示无法找到相应记录。

但对于互联网上的DNS的查询和解析,就比这个复杂许多,下节会讨论有关迭代和递归查询的内容,敬请期待!

谢谢!

出处:jeffyyko.blog.51cto.com/28563/206891

篇4:dns工作原理详解

计算机在网络上进行通讯时只能识别如“201.51.0.73”之类的IP地址,而不能认识如www.ccidnet.com之类的域名,但是,当打开浏览器,在地址栏中输入如www.ccidnet.com的域名后,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页,

什么是DNS

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它主要是用来通过用户亲切而友好的名称(如www.ccidnet.com)代替枯燥而难记的IP地址(如“210.51.0.73”)以定位相应的计算机和相应服务。因此,要想让亲切而友好的名称能被网络所认识,则需要在名称和IP地址之间有一位“翻译官”,它能将相关的域名翻译成网络能接受的相应IP地址。DNS就是这样的一位“翻译官”,它的工作原理可用图1来表示。

图1

如何建立DNS

在校园网内部使用DNS,可以建立内部的DNS服务,使我们的校园网络的应用更加具有人性化。

1、欲实现的目标

某学校由于工作的需要,想配置一名为sjsgz.net的域,如图2所示。

图2

在这个域中,为了使用户在浏览器地址栏中键入相应的主机名就会找到相应的服务,为此,需要设置相应的DNS服务器。

2、DNS服务的安装

我们从guanli.sjsgz.net开始,准备在这台计算机上安装DNS服务器服务。安装DNS的步骤如下:

(1)选“开始→设置→控制面板”,打开“添加/删除程序”。

(2)单击“添加/删除Windows组件”,等待Windows组件向导启动。

(3)单击[下一步]按钮弹出Windows组件清单。

(4)单击[网络服务],然后再单击[详细情况]按钮。

(5)单击“DNS(域名系统)”旁的复选框。

(6)单击[确定]按钮返回“Windows组件”对话框。

(7)单击[下一步]安装相应的服务,然后逐一单击[完成]和[关闭]按钮即可完成。

不需要重新启动计算机,单击“开始→程序→管理工具→DNS”,出现如图3所示的窗口,此时可以在左边的窗口中看到代表你的服务器的图标(guanli)。

3、创建“sjsgz.net”区域

(1)用鼠标单击图3中“guanli”旁边的“+”号,然后用鼠标右键单击“guanli”,选“新建区域”以进入新建区域向导中,

(2)当向导提示到要让选择“区域类型”时,此处应该选“标准主要区域”,而在“正向或反向搜索区域中”应选“正向搜索区域”,单击“正向搜索区域”旁边的“+”号,用鼠标右键单击“正向搜索区域”,单击[下一步]按钮。

(3)屏幕出现询问“区域名”,则在“名称”后的文字框中输入“sjsgz.net”,接着向导进入到“区域文件”提示窗口中,默认的,系统会自动选中“创建新文件,文件名为”一项,并在其后的文字框中自动填有“sjsgz.net.dns”的名字(如图4所示),单击[下一步]按钮,然后单击[完成]即可完成区域创建,此时在DNS管理器的左边的“guanli→正向搜索区域”里可以看到“sjsgz.net”区域(如图3所示)。

图3

注意:创建正向搜索区域的目的是为了将主机名翻译为IP地址,你也可以创建反向搜索区域,便于将IP地址翻译成相应的主机名,创建方法和正向搜索区域的创建相似。

4、创建主机

下面我们将以创建图2中Web服务器(www.sjsgz.net)主机为例说明如何创建主机。

(1)在图3所示窗口中的“sjsgz.net”区域上单击右键,选“新建主机”,在其后的对话框中的“名称”栏中输入主机名“www”,在“IP地址”栏输入“10.88.56.2”。

(2)单击[添加主机]按钮,即成功地创建了主机地址记录www.sjsgz.net,在“新建主机”窗口再选“完成”便可回到DNS管理器中。

(3)上述记录建好以后,就可以在DNS管理器中看到相关的DNS映射记录表(如图4所示),这样,就在“www.sisgz.net”与“10.88.56.2”之间建立了映射关系。

图4

5、测试配置

DNS服务器配置完以后,如何检测它是否配置正确呢?可以用一个称作“Nslookup”的诊断程序来进行检测。下面我们就用这个命令对“guanli.sjsgz.net”DNS服务器进行测试。

(1)在命令提示符下输入:Nslookup,启动该程序。此时系统会响应它当前翻译名字所使用的DNS服务器的IP地址。

(2)然后在命令提示符下输入:ls - d sjsgz.net。这个命令的功能是让DNS服务器列出它所知道的有关sjsgz.net的每一条信息。

(3)在命令提示符下输入:Exit,即可退出Nslookup命令。

注意:在安装“DNS服务器”之前,必须用静态的IP地址配置计算机。

在校园网中安装、配置DNS服务器的目的是为了更好地应用网络为教育教学服务、更好地提供一个具有人性化的应用环境。但是有一点需要注意的是,为了配置DNS的动态更新功能,必须配置DNS和DHCP服务器。

篇5:dns欺骗演示及简单原理

实验前的准备:

1.一台linux系统的计算机(安装好了dnsspoof,当然安装好了Dsniff就已经安装了)

2.一台server 系统的计算机(搭建一个web服务器)

3.一台xp系统的计算机(安装sniffer的xp系统)

注:当然你可能没有这么多计算机,但不要紧,用虚拟机就可以了

这是我的Server 2003上的web,及其ip地址

这是linux上用来做dns欺骗的指向文件,

就是这行 192.168.137.100  *.*.com

意思是所有*.*.com网站的ip地址指向192.168.137.100这个ip地址。也就是只要你输入的域名

是*.*.com这个格式的都会解析成192.168.137.100这个ip地址。(www.baidu.com也不例外)

下面启动欺骗程序。

下面是在xp上的测试结果

下面是Sniffer抓包和mac地址和ip地址的映射,

看清楚了,Source=Station 000C2939DAA0 ,源mac成了192.168.137.200的mac了,

也就是说ip地址为192.168.137.200的主机冒充ip地址为58.20.127.238的dns服务器。

打开一个网站,电脑要知道这个域名对应的ip地址,就要通过dns服务器,我们这个台

xp它知道了dns服务器的ip是58.20.127.238 ,就直接通信吗??不是的,它会在局域网

内发送arp广播问“ip地址是58.20.1227.238这个地址所对应的mac地址”这时局域网内所有的

的pc都可以收到,而我这台linux主机就开了个玩笑“ip地址为58.20.127.238所对应的

mac地址是000C2939DAA0”它把自己的mac地址告诉了xp主机,xp主机收到了应答就开始通信。

xp主机就会问dns主机“www.******.com域名所对应的ip地址是多少”,这时候我的linux主机就

开始不负责任了随便告诉它一个ip地址(这里是可以手工指定),也就是说当你要访问www.qq.com

这个网站时,我可以让他出现百度的页面。

篇6:DNS服务器工作原理

DNS服务器工作原理

DNS分为Client和Server,Client扮演发问的角色,也就是问 Server 一个Domain Name,而Server必须要回答此Domain Name的真正IP地址,DNS是怎么来作名称解析的?

DNS的工作原理

DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP地址,而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。

DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。

在每一个名称服务器中都有一个快取缓存区(Cache),这个快取缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录在快取缓存区中,这样当下一次还有另外一个客户端到次服务器上去查询相同的名称时,服务器就不用在到别台主机上去寻找,而直接可以从缓存区中找到该笔名称记录资料,传回给客户端,加速客户端对名称查询的速度。例如:

当DNS客户端向指定的DNS服务器查询网际网路上的某一台主机名称 DNS服务器会在该资料库中找寻用户所指定的名称 如果没有,该服务器会先在自己的快取缓存区中查询有无该笔纪录,如果找到该笔名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端,如果名称服务器在资料记录查不到且快取缓存区中也没有时,服务器首先会才会向别的名称服务器查询所要的名称。例如:

DNS客户端向指定的DNS服务器查询网际网路上某台主机名称,当DNS服务器在该资料记录找不到用户所指定的名称时,会转向该服务器的快取缓存区找寻是否有该资料,当快取缓存区也找不到时,会向最接近的名称服务器去要求帮忙找寻该名称的IP地址 ,在另一台服务器上也有相同的动作的查询,当查询到后会回复原本要求查询的服务器,该DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机名称及对应IP地址记录到快取缓存区中,最后在将所查询到的结果回复给客户端 。

范例

我们举例说明,假设我们要查询网际网路上的一个名称为www.test.com.cn,从此名称我们知道此部主机在中国CN,而且要找的组织名称test.com.cn此网域下的www主机,以下为名称解析过程的每一步骤。

《Step 1》在DNS的客户端(Reslover)键入查询主机的指令,如:

c:pingwww.test.com.cn

pingingwww.test.com.cn【192.72.80.36】with 32bytes of data

reply from 192.72.80.36 bytes time <10ms ttl 253

《Step 2》而被指定的DNS服务器先行查询是否属于该网域下的主机名称,如果查出改主机名称并不属于该网域范围,之后会再查询快取缓存区的纪录资料,查是否有此机名称,

《Step 3》查询后发现缓存区中没有此纪录资料,会取得一台根网域的其中一台服务器,发出说要找www.test.com.cn的Request。

《Step 4》在根网域中,向Root Name Server询问,Root Name Server记录了各Top Domain分别是由哪些DNS Server负责,所以他会响应最接近的Name Server为控制CN网域的DNS伺服主机。

《Step 5》Root Name Server已告诉Local DNS Server哪部Name Server负责.cn这个Domain,然后Local DNS再向负责发出找寻www.test.com.cn的名称Request。

《Step 6》在.cn这个网域中,被指定的DNS服务器在本机上没有找到此名称的的纪录,所以会响应原本发出查询要求的DNS服务器说最近的服务器在哪里?他会回应最近的主机为控制com.cn网域的DNS伺服主机。

《Step 7》原本被查询的DNS服务器主机,收到继续查询的IP位置后,会再向com.cn的网域的DNS Server发出寻找www.test.com.cn名称搜寻的要求。

《Step 8》com.cn的网域中,被指定的DNS Server在本机上没有找到此名称的记录,所以会回复查询要求的DNS Server告诉他最接近的服务器在哪里?他就回应最接近为控制test.com.cn的网域的DNS主机。

《Step 9》原本被查询的DNS Server,在接收到应继续查询的位置,在向test.com.cn网域的DNS Server发出寻找www.test.com.cn的要求,最后会在test.com.cn的网域的DNS Server找到www.test.com.cn此主机的IP。

《Step 10》所以原本发出查询要求的DNS服务器,再接收到查询结果的IP位置后,响应回给原查询名称的DNS客户端。

两种真正DNS的查询模式

有两种询问原理,分为Recursive和Interactive两种。前者是由DNS代理去问,问的方法是用Interactive方式,后者是由本机直接做Interactive式的询问。由上例可以看出,我们一般查询名称的过程中,实际上这两种查询模式都是交互存在着的。

递归式(Recursive):DNS客户端向DNS Server的查询模式,这种方式是将要查询的封包送出去问,就等待正确名称的正确响应,这种方式只处理响应回来的封包是否是正确响应或是说是找不到该名称的错误讯息。

交谈式(Interactive):DNS Server间的查询模式,由Client端或是DNS Server上所发出去问,这种方式送封包出去问,所响应回来的资料不一定是最后正确的名称位置,但也不是如上所说的响应回来是错误讯息,他响应回来告诉你最接近的IP位置,然后再到此最接近的IP上去寻找所要解析的名称,反复动作直到找到正确位置。

篇7:学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程

上节中提到了一些有关递归查询的内容,但说的很少,也很笼统,本节将会从原理和实例两方面入手分析DNS的递归以及迭代查询,

在此之前,我们需要了解一些背景知识,以便于更好的理解今天的主题内容。

在互联网中,一个域名的顺利解析离不开两类域名服务器,只有由这两类域名服务器可以提供“权威性”的域名解析。

第一类就是国际域名管理机构,也就InterNIC,主要负责国际域名的注册和解析,第二类就是国内域名注册管理机构,在中国就是CNNIC了,主要负责国内域名注册和解析,当然,尽管分为国际和国内,但两者一主一辅,相互同步信息,毕竟最终的目的是在全球任何一个有网络的地方都可以顺利访问任何一个有效合法的域名,其间的联系就可见一斑了。

有的朋友可能会有这个疑问,域名服务器不是有很多吗?为什么说只有2类呢?是的,ISP何其多 ?当我们输入某一网址(或域名),系统将这个域名发送至需要将其当前已配置的DNS服务器,以便转换 为IP地址进行访问,通常会是当地的公共DNS服务器(内网环境可能直接提交到防火墙或路由器上做进一 步转发处理)。公网DNS服务器收到此请求后,并非立刻处理,比如转发至上一级的DNS服务器(在第一节讲过DNS有着很严格的逻辑层次关系),而是首先会查看自己的DNS缓存,如果有这个域名对应的IP,则直接返回给用户,系统收到这个IP后交给浏览器做进一步处理。在这个轮回的过程中,客户端所得到 的DNS的回复就是“非权威的性”的,也就是说这个结果并不是来自这个域名所直接授权的DNS服务器,而是该记录的副本。简单的说,“非权威性”的应答是从别的 DNS服务器上复制过来的,与之对应的,就是“权威性”应答则是由域名所在的服务器作出的应答,听起来似乎不易理解,我们来看一个例子。

我所在地是深圳,这里的公共DNS服务器是202.96.134.133, 我们来检测一下。

如下图:

这里用到了nslookup命令,用来查询当前本机解析域名所依赖的DNS服务器,从上图中文名可以得知 当前默认的DNS解析服务器是 ns.szptt.net.cn,对应的IP地址为202.96.134.133,也就是说在这台机子上运行的网络程序,如果需要用到DNS域名解析的,都会将请求到这个服务器上,寻求解析。

当然,如果你是在内网,或是其他类型的局域网,在解析时候可能无法顺利得到上图的结果,多半是代理或防火墙的缘故。建议ADSL用户可以自测一下,加深印象。现在,我们来解析一个网站的别名记录,以 此来了解一下何为“非授权记录”

以网易为例吧。如下图:

依照上图步骤就完成了一次CNAME记录的查询,通过这次小测试,希望大家注意一下几点:

1、查询的命令不仅这一种,我们还可以用命令nslookup -qt=cname www.163.com ,返回的结果是一样的 ,

2、查询的对象需要是一个完整的URL地址,而并非域名,如果想查询对象写出163.com,则默认值返回163.com这个域的ns记录。

如下图:

163.com的子域名还有很多,不同的子域名可能对应不用的NS服务器,这样做的目的是可以更快的相 应客户请求,这就用到的服务器的均衡负载技术了。所以网易的NS服务器也肯定不只这一个。可以用命 令来证实,如下图:

从上图可知,网易的NS服务器至少有2台。

以上所有的信息都是“非权威性”的回应,换句话说,这些记录都保存在深圳的这台DNS服务器上,刚才查询的所有结果均来源于此,自然都是副本信息。

那如何才能找到最原始的解析记录呢?要想揭开这个疑难,我们需要对DNS的查询原理有一定的认识。下面是是DNS查询的大致步骤:

1>首先,客户端提出域名解析请求(无论 以何种形式或方法),并将该请求发或转发给本地的DNS服务器。

2>接着,本地DNS服务器 收到请求后就去查询自己的缓存,如果有该条记录,则会将查询的结果返回给客户端。(也就是我们看 到的““非权威性”的应答”)。

请注意,下面就开始递归查询了:

反之,如果DNS服务器本地没有搜索到相应的记录,则会把请求转发到根DNS(13台根DNS服务器的IP信息默认均存储在DNS服务器中,当需要时就会去有选择性的连接)。

3>然后,根DNS 服务器收到请求后会判断这个域名是谁来授权管理,并会返回一个负责该域名子域的DNS服务器地址。比如,查询ent.163.com的IP,根DNS服务器就会在负责.com顶级域名的DNS服务器中选一个(并非随机,而是根据空间、地址、管辖区域等条件进行筛选),返回给本地DNS服务器。可以说根域对顶级域名有绝对管理权,自然也知道他们的全部信息,因为在DNS系统中,上一级对下一级有管理权限,毫无疑问,根DNS是最高一级了。

4>本地DNS服务器收到这个地址后,就开始联系对方并将此请求发给他。负责.com域名的某台服务器收到此请求后,如果自己无法解析,就会返回一个管理.com的下一级的DNS服务器地址给本地DNS服务器,也就是负责管理163.com的DNS。

5>当本地DNS服务器收到这个地址后,就会重复上面的动作,继续往下联系。

6>不断重复这样的轮回过程,直到有一台 DNS服务器可以顺利解析出这个地址为止。在这个过程中,客户端一直处理等待状态,他不需要做任何事 也做不了什么。

7>直到本地DNS服务器获得IP时,才会把这个IP返回给客户端,到此在本地的DNS服务器取得IP地址后,递归查询就算完成了。本地DNS服务器同时会将这条记录写入自己的缓存,以备后用。

到此,整个解析过程完成。

客户端拿到这个地址后,就可以顺利往下进行了。但假设客户端请求的域名根本不存在,解析自然不成功,DNS服务器会返回此域名不可达,在客户端的体现就是网页无法浏览或网络程序无法连接等等。

下节中,我将以图解的方式将这个过程体现 出来,便于大家形象化的理解递归查询的过程,谢谢。

敬请期待!

出处:jeffyyko.blog.51cto.com/28563/215293

篇8:DNS攻击原理与防范

随着网络的逐步普及,网络安全已成为INTERNET路上事实上的焦点,它关系着INTERNET的进一步发展和普及,甚至关系着INTERNET的生存,可喜的是我们那些互联网专家们并没有令广大INTERNET用户失望,网络安全技术也不断出现,使广大网民和企业有了更多的放心,下面就网络安全中的主要技术作一简介,希望能为网民和企业在网络安全方面提供一个网络安全方案参考。

DNS的工作原理

DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。

DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。

在每一个名称服务器中都有一个快取缓存区(Cache),这个快取缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录在快取缓存区中,这样当下一次还有另外一个客户端到次服务器上去查询相同的名称 时,服务器就不用在到别台主机上去寻找,而直接可以从缓存区中找到该笔名称记录资料,传回给客户端,加速客户端对名称查询的速度。例如:

当DNS客户端向指定的DNS服务器查询网际网路上的某一台主机名称 DNS服务器会在该资料库中找寻用户所指定的名称 如果没有,该服务器会先在自己的快取缓存区中查询有无该笔纪录,如果找到该笔名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端 ,如果名称服务器在资料记录查不到且快取缓存区中也没有时,服务器首先会才会向别的名称服务器查询所要的名称。例如:

DNS客户端向指定的DNS服务器查询网际网路上某台主机名称,当DNS服务器在该资料记录找不到用户所指定的名称时,会转向该服务器的快取缓存区找寻是否有该资料 ,当快取缓存区也找不到时,会向最接近的名称服务器去要求帮忙找寻该名称的IP地址 ,在另一台服务器上也有相同的动作的查询,当查询到后会回复原本要求查询的服务器,该DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机名称及对应IP地址记录到快取缓存区中 ,最后在将所查询到的结果回复给客户端

常见的DNS攻击包括:

1) 域名劫持

通过采用 手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到 可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了 所指向的内容。

这显然是DNS服务提供商的责任,用户束手无策。

2) 缓存投毒

利用控制DNS缓存服务器,把原本准备访问某网站的用户在不知不觉中带到 指向的其他网站上。其实现方式有多种,比如可以通过利用网民ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的响应结果;或者, 通过利用用户权威域名服务器上的漏洞,如当用户权威域名服务器同时可以被当作缓存服务器使用, 可以实现缓存投毒,将错误的域名纪录存入缓存中,从而使所有使用该缓存服务器的用户得到错误的DNS解析结果。

最近发现的DNS重大缺陷,就是这种方式的。只所以说是“重大”缺陷,据报道是因为是协议自身的设计实现问题造成的,几乎所有的DNS软件都存在这样的问题。

3)DDOS攻击

一种攻击针对DNS服务器软件本身,通常利用BIND软件程序中的漏洞,导致DNS服务器崩溃或拒绝服务;另一种攻击的目标不是DNS服务器,而是利用DNS服务器作为中间的“攻击放大器”,去攻击其它互联网上的主机,导致被攻击主机拒绝服务。

4) DNS欺骗

DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。

原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理,

DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。

现在的Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,就是BIND会缓存(Cache)所有已经查询过的结果,这个问题就引起了下面的几个问题的存在.

DNS欺骗

在DNS的缓存还没有过期之前,如果在DNS的缓存中已经存在的记录,一旦有客户查询,DNS服务器将会直接返回缓存中的记录

防止DNS被攻击的若干防范性措施

互联网上的DNS放大攻击(DNS amplification attacks)急剧增长。这种攻击是一种数据包的大量变体能够产生针对一个目标的大量的虚假的通讯。这种虚假通讯的数量有多大?每秒钟达数GB,足以阻止任何人进入互联网。

与老式的“smurf attacks”攻击非常相似,DNS放大攻击使用针对无辜的第三方的欺骗性的数据包来放大通讯量,其目的是耗尽受害者的全部带宽。但是,“smurf attacks”攻击是向一个网络广播地址发送数据包以达到放大通讯的目的。DNS放大攻击不包括广播地址。相反,这种攻击向互联网上的一系列无辜的第三方DNS服务器发送小的和欺骗性的询问信息。这些DNS服务器随后将向表面上是提出查询的那台服务器发回大量的回复,导致通讯量的放大并且最终把攻击目标淹没。因为DNS是以无状态的UDP数据包为基础的,采取这种欺骗方式是司空见惯的。

这种攻击主要依靠对DNS实施60个字节左右的查询,回复最多可达512个字节,从而使通讯量放大8.5倍。这对于攻击者来说是不错的,但是,仍没有达到攻击者希望得到了淹没的水平。最近,攻击者采用了一些更新的技术把目前的DNS放大攻击提高了好几倍。

当前许多DNS服务器支持EDNS。EDNS是DNS的一套扩大机制,RFC 2671对次有介绍。一些选择能够让DNS回复超过512字节并且仍然使用UDP,如果要求者指出它能够处理这样大的DNS查询的话。攻击者已经利用这种方法产生了大量的通讯。通过发送一个60个字节的查询来获取一个大约4000个字节的记录,攻击者能够把通讯量放大66倍。一些这种性质的攻击已经产生了每秒钟许多GB的通讯量,对于某些目标的攻击甚至超过了每秒钟10GB的通讯量。

要实现这种攻击,攻击者首先要找到几台代表互联网上的某个人实施循环查询工作的第三方DNS服务器(大多数DNS服务器都有这种设置)。由于支持循环查询,攻击者可以向一台DNS服务器发送一个查询,这台DNS服务器随后把这个查询(以循环的方式)发送给攻击者选择的一台DNS服务器。接下来,攻击者向这些服务器发送一个DNS记录查询,这个记录是攻击者在自己的DNS服务器上控制的。由于这些服务器被设置为循环查询,这些第三方服务器就向攻击者发回这些请求。攻击者在DNS服务器上存储了一个4000个字节的文本用于进行这种DNS放大攻击。

现在,由于攻击者已经向第三方DNS服务器的缓存中加入了大量的记录,攻击者接下来向这些服务器发送DNS查询信息(带有启用大量回复的EDNS选项),并采取欺骗手段让那些DNS服务器认为这个查询信息是从攻击者希望攻击的那个IP地址发出来的。这些第三方DNS服务器于是就用这个4000个字节的文本记录进行回复,用大量的UDP数据包淹没受害者。攻击者向第三方DNS服务器发出数百万小的和欺骗性的查询信息,这些DNS服务器将用大量的DNS回复数据包淹没那个受害者。

如何防御这种大规模攻击呢?首先,保证你拥有足够的带宽承受小规模的洪水般的攻击。一个单一的T1线路对于重要的互联网连接是不够的,因为任何恶意的脚本少年都可以消耗掉你的带宽。如果你的连接不是执行重要任务的,一条T1线路就够了。否则,你就需要更多的带宽以便承受小规模的洪水般的攻击。不过,几乎任何人都无法承受每秒钟数GB的DNS放大攻击。

因此,你要保证手边有能够与你的ISP随时取得联系的应急电话号码。这样,一旦发生这种攻击,你可以马上与ISP联系,让他们在上游过滤掉这种攻击。要识别这种攻击,你要查看包含DNS回复的大量通讯(源UDP端口53),特别是要查看那些拥有大量DNS记录的端口。一些ISP已经在其整个网络上部署了传感器以便检测各种类型的早期大量通讯。这样,你的ISP很可能在你发现这种攻击之前就发现和避免了这种攻击。你要问一下你的ISP是否拥有这个能力。

篇9:DNS优化的原理和方法

而整个WPO其实是对浏览器(browser)的加载(load)和解析(parse)过程中的一些消耗行为进行优化, 而load和parse在整个浏览器工作过程中又互相纠结互相作用.

在这篇文字中讨论的更多是FE们能够伸手处理或者通过达成共识的方法来进行快速推动Tech们协助的一些事情.

OK, 我们慢慢把浏览器的工作过程掰细了看吧.

首先, 我们先整一个浏览器如何找到一个网站的简易工作原理 – DNS查询:

首先当用户在浏览器的地址栏中敲入了网站的网址 ( 比如: alibaba.com ) ,这时浏览器会首先通过访问的域名来定位到IP (DNS) 从而找到去哪里获取资源, 这时, 浏览器会依次进行如下查找:

1. 浏览器缓存 :

浏览器首先会在自己的缓存中查找有没有对应的域名 – IP匹配, 如果好运的话, 这里就可以直接尝试去访问资源了, 如果运气平平则往下走吧.

2. 系统缓存 :

浏览器缓存中没有命中, 浏览器会告诉操作系统:”嘿, 我在我自己口袋里没找到, 可能丢了, 我得去你那看看”, 然后, 一个系统进程(?)调取系统中的DNS缓存进行查询, 重复上一条的运气判断…

3. 路由器缓存 :

走到这, 运气还真不太好啊, 操作系统也没辙了, 那怎么办呢, 向路由去要要看吧… 重复运气判断…

4. ISP DNS缓存 :

好吧, 真不知道说运气好还是运气不好了, 不废话, 去ISP (网络提供商) 的DNS缓存服务器中寻找了, 一般情况下, 在ISP端的缓存中都能找到相应的缓存记录了, 不该这么背了, 或者… 您的ISP有够菜…

5. 递归搜索…

最无奈的情况发生了, 在前面都没有办法命中的DNS缓存的情况下, ISP的DNS服务器开始从root域名服务器开始进行递归, 顺序是从.com顶级域名服务器到alibaba的域名服务器, 再没找到…好吧, 您认为您要去的网站真的公开存在么…?

要强调的是, 不只是对网站第一次的域名访问需要做这样一次查询工作, 在对页面中的资源引用的域名解析时一样会有这样的一系列工作. 最明显的就是启用全新域名来做静态资源存储服务时, 基本上上述的1 – 5个步骤都得走上几遍. 才能让新域名在各DNS缓存服务器上留下记录.

在这个话题上, 关于DNS的类似系统级的解决方案不是FE能够控制得了的, 我们q可以在涉及到DNS时有些小Tips来从中做些事情.

好吧, 第一项.DNS相关的优化:

常规实践 : DNS解析的复杂性决定了不当的使用多域名获取资源会造成不必要的性能开销. 在WPO中, 很多优化工作是很艺术的, 在DNS和HTTP这两方面优化是就可以看到这个神奇的艺术性:

DNS的优化, 当然是尽可能少的造成DNS查询开销, 而在HTTP优化的策略中有一项优化措施是避免单域名下连接数的缺陷来进行资源多通道下载, 实施的细节会在 中详细介绍, 在这里只是简单的提一下, 静态资源多域名服务可以绕过浏览器单域名载入资源时并行连接数的限制, DNS优化需要我们尽可能少的域名解析, HTTP优化时需要我们适当的使用多域名服务, 那怎么样让两个优化实践都能够比较好的实施呢? [todo]

优雅降级 : 在某些现代浏览器 ( Google Chrome, Firefox 3.5+ ) 中, 已经能够支持DNS的预取了, 怎么个预取呢? 就是在浏览器加载网页时, 对网页中的或者的href属性中的域名进行后台的预解析(上文中的 1- 5步), 并且将解析结果缓存在浏览器端, 当用户在真正点击链接时, 省去在当下的DNS解析消耗, 把这个消耗过程转嫁到用户无法感知的浏览过程中去.

第一, 现代浏览器已经支持且默认打开了DNS Prefetch的功能. 当然也可以通过浏览器的配置来管理该功能:

用Firefox3.5+可以这样: 浏览器默认就打开了HTTP协议下的DNS预取功能, 默认关闭HTTPS协议下的DNS预取功能, 可通过 about:config 的 network.dns.disablePrefetch 和network.dns.disablePrefetchFromHTTPS <两个选项来控制两种协议下的预取功能.>

Chrome管理DNS Prefetch方法暂时缺少.

第二, 可以通过用meta信息来告知浏览器, 我这页面要做DNS预取:

第三,可以使用link标签来强制对DNS做预取:

[todo DEMO]

篇10:DNS扫盲系列之三:有关智能DNS(BIND+VIEW)

DNS扫盲系列之三:有关智能DNS(BIND+VIEW)

前言:

智能DNS即为BIND+VIEW的功能实现,在国内,最早把智能DNS投向市场的是偶(怎么给人不谦虚的感觉呢)。我想BIND9.X引入VIEW(视图)功能并不是针对中国的,但是这个功能正好能解决我国网络运营商之间的互联互通问题,可谓天上的馅饼。本文结合自己这几年来架设维护智能DNS的经验体会随便写些东西,希望对大家有所帮助。时间仓促加之知识有限,难免错误之处,大家一块讨论吧。

智能DNS的前提:

使用智能DNS有个前提假设,就是各个网络运营商都有自用的公网DNS为自己的用户提供域名解析服务。如果不是这样的,那智能DNS就没有存在的必要了(原因将在下面讨论)。所幸的是目前情况基本满足这个条件,网通,电信,教育网等都自成体系。

智能DNS的功能:

智能DNS最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名(域名记录)分别解析成不同的地址。如访问者是网通用户,智能DNS服务器会把你域名对应的网通IP地址解析给这个访问者。如果用户是电信用户,智能DNS服务器会把您域名对应的电信IP地址解析给这个访问者。由此我们可以让网通、电信、教育网、移动、国外用户智能的选择访问你的服务器。

智能DNS的原理:

以ABC.COM域名为例。用户访问WWW.ABC.COM时的工作过程如图所示。这里省略了与本文讨论无关的细节,目的是化繁为简。

1. 网通用户向本地DNS请求解析WWW.ABC.COM,

2. 本地DNS向ABC.COM的权威DNS(这里的权威DNS一定是智能DNS)。

3. 智能DNS根据请求者(这里是本地DNS)的IP地址在自己的ACL里面进行匹配,然后把匹配的结果返回给本地DNS。

4. 本地DNS把结果告诉用户,并把结果缓存起来。

5. 用户访问网通线路上的网站服务器。

智能DNS特别关注:

这里有几点重要问题,值得单独列出,不然在使用智能DNS的过程中碰到就诧异了。

1. 智能DNS判断用户来源的依据是“本地DNS”而非是用户自身的IP地址。

2. 由上延伸,如果电信用户使用了网通DNS,通过智能DNS将会匹配到网通的解析结果。

3. 本地DNS一般情况下不会亲自向智能DNS请求解析,这是由本地DNS的网络拓扑决定的,详情见另一篇帖子《扫盲系列之:有关公网DNS》 /net/201210/161839.html

智能DNS面临的问题:

1. 各网络运营商的IP地址收集困难,有其是象“长城宽带”、“广电网”等这样的小运营商他们的用户使用的DNS五花八门,根本不适于使用智能 DNS。所以说智能DNS并不是把运营商划分的越细越好。总之结合自己的能力就好。

2. 各大网络运营商相互渗透的情况(幸好是个别现象,但要引起重视),比如广东电信的公网DNS的后台有数目不详的服务器架设到网通的线路上 了。这样造成的后果就是明明使用的是电信DNS,但有时候解析到网通的结果。

3. 众所周知的网络攻击事件越来越多的落到了DNS上面,这个事情很无奈。

最后,关于架设智能DNS技术细节这里就不讨论了,相信很容易就能在网上找到。

欺骗的后果作文

WIN技巧:内网用户建个人服务器很简单

详解SQL Server中数据库快照工作原理综合教程

WIN技巧:如何用ADSI实现自动化的活动目录操作

新手部署DNS服务器须知服务器教程

计算机四级考试复习题及答案

屏蔽泵故障分析及处理论文

TCP/IP详解之IP协议ARP协议和RARP协议

大学计算机实验心得体会怎么写

评论《如何说相声》系列八

DNS系列一:DNS查询原理
《DNS系列一:DNS查询原理.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【DNS系列一:DNS查询原理(共10篇)】相关文章:

计算机实验总结2022-12-31

Windows下DNS和活动目录关系浅析2022-10-25

计算机实验与传统实验形式之比较2022-05-06

操作系统实习报告2022-09-25

让“自我介绍”无懈可击的4个技巧2023-09-09

Web-based DNS Randomness Test:DNS安全检测2023-05-21

Windows NT4.0 OS repair网络服务器2022-04-30

摄像头不能与数码相机共用故障的分析处理2022-08-10

活动目录方案2023-03-13

合理维护网络服务器安全的七个小技巧2022-12-07

点击下载本文文档