
下面对DNS的工作流程及原理进行简要说明
DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts;若无结果,则client查看本地的DNS缓存服务器;若无结果,则查找所属域的首选DNS服务器;若此时本地首选DNS服务器仍无法解析,则会想根域名服务器进行查询或选择转发解析请求。
DNS的查询规则:递归式查询,即client向支持递归查询的DNS Server发出解析请求,则自DNS服务器不论是自身直接解析还是无法解析想根发出请求,总会由其向client返回一个结果;迭代式查询,即接收client解析请求的DNS Server,若其能够解析则直接返回结果,若其不能解析将把解析请求交给其他DNS服务器,而不是自己亲自将解析过程完成。
所谓的“根”服务器:根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。
DNS记录的类型:
A:Address 域名向ip地址转换的记录;
PTR:Printer ip地址向域名转换的记录;
NS:代表域内的dns服务器;
MX:代表域内的邮件服务器;
CNAME:域名的别名;
SOA:start of authority用于标示域内主DNS服务器。
提供DNS服务的软件:BIND即Berkeley Internet Name Domain有加州大学伯克利分校研发是当今提供dns服务应用最广的软件。
下面让我们进入正题,以下内容包括:DNS的缓存服务器、主/从服务器、子域授权、转发以及视图的配置步骤。
DNS缓存服务器
Ps:为了更好的体会和理解dns的配置文件和域解析文件,作者在此只安装bind包,以手动编辑的方式生成这几个必须的文件。
1安装bind包
yum install bind
2创建住配置文件/etc/namedconf
options {
directory "/var/named"; #告知工作目录
};
zone “” IN {
type hint; #声明根域
file "namedca"; #根信息存放文件
};
zone "localhost" IN { #本地正解定义
type master; #类型为master
file "localhostzone"; #正解文件名
};
zone "00127in-addrarpa" IN { #本地反解定义
type master;
file "namedlocal"; #反解文件名
};
chown :named /etc/namedconf
#修改属组给named
3创建3个解析文件
namedca
dig -t NS > /var/named/namedca
#向跟服务器发起查询并重定向到目标文件
localhostzone
vim localhost zone
$TTL 86400
#默认的ttl值
@ IN SOA localhost adminlocalhost (
#主DNS服务器localhost
2011081601
#时间+序列号01
1H
#刷新时间:每隔多久来master查询更新
10M
#重试时间间隔
7D
&nDNS(Domain Name System)“域名系统”,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,提供的服务是用来将主机名和域名转换为IP地址。这是互联网上最广泛使用的协议之一,开发与 1980 年代
DNS使用UDP作为传输层协议,但在某些情况下可以切换到TCP。 因此,使用UDP时,DNS消息的大小限制为512字节。 基本DNS消息以固定的12字节标头开头,后跟四个可变长度的部分:
DNS的开发是为了适应80年代的速度和流量,因为只有少数参与研究和开发的精英才能访问互联网。然而,自从速度,流量以及更重要的是互联网结构的方式以来,已经发生了很多变化。我们已经从集中式服务器架构走了很长一段路 - 互联网现在已经分发并服务于全球受众。
从上面的DNS消息结构中可以看出,当前表单中的DNS消息没有足够的空间来添加更多信息。在此背景下,增强DNS协议以满足新的要求变得至关重要。因此,提出了DNS的扩展机制,即EDNS。在较高的层面上,EDNS允许我们克服DNS标头中几个标志字段,返回码和标签类型的大小限制。它还允许将DNS消息大小从512字节扩展(当UDP用作传输协议时),而无需切换到TCP。
这个增强版的DNS如何使内容交付网络能够为最终用户提供高性能?
内容传送网络(CDN)确保最终用户从地理位置靠近它们的服务器提供服务。 这通常以两种方式完成 -
Catchpoint中的DNS体验测试可用于了解属于第一类的CDN使用的DNS解析过程。 此测试类型还有助于监视CDN网络上DNS服务器的性能和可用性。
随着公共DNS递归解析器(如Google DNS和Open DNS)以及使用集中式DNS解析器基础结构的ISP的出现,最终用户和递归解析器在拓扑上接近的假设不再有效。 例如,Open DNS解析器在印度尚未出现,因此如果最终用户使用Open DNS解析器,则可以在新加坡( >
第一个过程,客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二个过程,当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
第三个过程,如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
第四个过程,本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五个过程,重复第四步,直到找到正确的记录。
第六个过程,本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
扩展资料:
当一个用户在地址栏输入>
第一个过程,浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。
第二个过程,如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查 *** 作系统缓存中有没有对应的已解析过的结果。而 *** 作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。
第三个过程,如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。
第四个过程,如果LDNS仍然没有命中,就直接跳到Root Server 域名服务器请求解析。
第五个过程,根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如com cn org等)地址。
第六个过程,此时LDNS再发送请求给上一步返回的gTLD。
第七个过程,接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器。
第八个过程,Name Server根据映射关系表找到目标ip,返回给LDNS。
第九个过程,LDNS缓存这个域名和对应的ip。
第十个过程,LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束。
参考资料:
DNS解析过程:
1客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
2当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
3如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
4本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
5重复第四步,直到找到正确的纪录。
6本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。那么DNS如何解析呢,其解析过程有哪些呢?下面让我们举一个例子演示整个解析过程:
假定域名为mxyzcom的主机想知道另一个主机yabccom的IP地址。例如,主机mxyzcom打算发送邮件给yabccom。这时就必须知道主机yabccom的IP地址。下面是上a的几个查询步骤:
1、主机mabccom先向本地服务器dnsxyzcom进行递归查询。
2、本地服务器采用迭代查询。它先向一个根域名服务器查询。
3、根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器dnscom的IP地址。
4、本地域名服务器向顶级域名服务器dnscom进行查询。
5、顶级域名服务器dnscom告诉本地域名服务器,下一步应查询的权限服务器dnsabccom的IP地址。
6、本地域名服务器向权限域名服务器dnsabccom进行查询。
7、权限域名服务器dnsabccom告诉本地域名服务器,所查询的主机的IP地址。
8、本地域名服务器最后把查询结果告诉mxyzcom。
为了提高DNS查询效率,并减轻服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
例如,在上面的解析过程中,如果在mxyzcom的主机上不久前已经有用户查询过yabccom的IP地址,那么本地域名服务器就不必向根域名服务器重新查询yabccom的IP地址,而是直接把告诉缓存中存放的上次查询结果(即yabccom的IP地址)告诉用户。
由于名字到地址的绑定并不经常改变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并处理超过合理时间的项。当域名服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新到授权管理该项的域名服务器绑定信息。当权限服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的正确性。dns
是域名系统
(domain
name
system)
的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在internet上域名与ip地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,dns就是进行域名解析的服务器。
dns
命名用于
internet
等
tcp/ip
网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入
dns
名称时,dns
服务可以将此名称解析为与之相关的其他信息,如
ip
地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的ip地址,这样才能上网。其实,域名的最终指向是ip。
对于如何设置dns,这个是要准确的填写具体的dns服务器的ip的,不同的城市,不同的网络运营商,dns服务器地址也不一样的,你得致电当地的网络运营商才可以了解到最准确的信息
方法和详细的 *** 作步骤如下:
1、第一步,找到计算机右下角的红色箭头所示的“网络连接”图标,见下图,转到下面的步骤。
2、第二步,执行完上面的 *** 作之后,打开红色箭头指示的“打开网络和共享中心”选项,见下图,转到下面的步骤。
3、第三步,执行完上面的 *** 作之后,在出现的界面上单击“本地连接”选项,见下图,转到下面的步骤。
4、第四步,执行完上面的 *** 作之后,单击鼠标以打开“属性”选项,见下图,转到下面的步骤。
5、第五步,执行完上面的 *** 作之后,在红色框中选择“协议版本4”这一项,然后双击以打开,见下图,转到下面的步骤。
6、第六步,执行完上面的 *** 作之后,在下面的红色框中选择“首选DNS服务器”选项,然后填写DNS地址,再单击“确定”按钮即可,见下图。这样,就解决了这个问题了。
DNS(DomainNameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。解析通常需要遍历多个名称服务器,找到所需要的信息。
然而,一些解析器的功能更简单地只用一个名称服务器进行通信。
这些简单的解析器依赖于一个递归名称服务器(称为“存根解析器”),为他们寻找信息的执行工作。
查询时先查计算机上设置的DNS服务器,每条记录都有一定的生存期,在生存期内,记录将被服务器缓存下来,不需要再次递归查询,直接返回
超过生存期,DNS服务器将向上级DNS服务器进行递归查询,直到顶级根域名服务器
并不是所有记录都存在于同一个服务器上,而是分别存在于各个DNS服务器上,每个服务器负责解析一定的域名,经过一级一级的查询,最终查到添加IP记录的DNS服务商,返回IP地址更多追问追答 追问
我还是不太明白。
难道顶级服务器上就有全部域名吗?还是说DNS服务器在自己数据不全面的情况下,向高一级服务器发出申请,高级服务器再向辖下所有服务器发出指令查询,如仍没有再向更高级申请,直至顶级服务器?
我还是不太明白。
难道顶级服务器上就有全部域名吗?还是说DNS服务器在自己数据不全面的情况下,向高一级服务器发出申请,高级服务器再向辖下所有服务器发出指令查询,如仍没有再向更高级申请,直至顶级服务器?
追答
查询示意图
追问
呃这个的意思是根服务器、顶级服务器根据域名的各部分来分析得出域名被保存在哪台域服务器上,然后让发出申请的服务器去访问相应的域服务器来得到对应IP,最后对新得到的数据进行缓存。
我理解的对吧?
追答
意思差不多就是这样,每个DNS保存IP对应列表或者域名对应解析的其他DNS服务器
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)