首页 > 编程知识 正文

dns解析不正常怎么办,dns协议的主要功能

时间:2023-05-05 19:05:57 阅读:167973 作者:3830

1、什么是DNS协议? 1DNS协议是用于将域名解析为IP地址的协议,当然也是将IP地址变换为域名的协议。

2DNS协议基于UDP和TCP协议端口号53,其中用户到服务器的通信采用UDP,DNS服务器通信采用TCP

三大运营商、互联网机构等向公众提供免费DNS服务。 例如谷歌的8.8.8.8 8.8.4.4阿里巴巴223.5.5.5 223.6.6.6

DNS服务器down下降时,只能通过IP地址访问服务。

5从以下部分了解DNS协议。

域名服务器域名查询2、域名结构如Linux目录结构,现代互联网采用分层树结构命名方法,与互联网连接的主机和路由器有一个唯一的分层结构名称,称为域名

例如xxx.yyy.zzz.com

右侧的com是顶级域名,从左到右依次是二级域名、三级域名、四级域名

域名排名:域名可以划分为单独的子域,子域可以继续划分为子域的子域,从而形成顶级域、第二域、三域等

其中,顶级域名分为国家顶级域名、通用顶级域名、反向域名。

国家顶级域名:中国:cn,美国:us,英国uk .通用顶级域名: com公司企业edu教育机构gov政府部门int国际组织mil军事部门net网络org非营利组织.反向域名: PTR查询3、域名服务器主要分为根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器。

首先举个例子来看看各服务器之间的联系。

当APP应用程序通过DNS查询主机名(例如www.google.com上的ip )时,查询过程大致如下: 首先联系其中一个根服务器,根服务器根据顶级域名com,对命名空间为com的顶级域服务器的ip进行响应。 然后,APP应用程序向com顶级域服务器发出请求,com顶级域服务器将响应命名空间为google.com的权威DNS服务器的ip地址。 最后,APP应用程序请求命名空间为google.com的权威DNS服务器,该权威DNS服务器将响应主机名为www.google.com的ip。 实际上,除了上图的分层结构中所示的DNS外,还有与我们接触更密切的DNS服务器。 这些是本地DNS服务器,我们经常在计算机上配置的DNS服务器通常就是这样。 一般由一家公司、一所大学或某个居民区提供。 例如,谷歌提供的DNS服务器8.8.8.8; 例如,经常被恶意攻击的114.114.114.114等。 根域名服务器

根服务器主要用于管理internet的主目录。

所有根服务器由美国政府认可的互联网域名和号码分配机构ICANN统一管理,并负责管理全球互联网域名根服务器、域名体系和IP地址等。

世界上有13台根服务器。 一个是根服务器架构的主根服务器,位于美国。 剩下的12台都是辅助根服务器,其中9台位于美国、欧洲2台,英国和瑞典,亚洲1台,日本。 据说主根服务器系统有更高级的隐藏父服务器,当然美国也有,世界上所有的顶级域名都由该父服务器决定。

中国还没有自己的根服务器。 都是根服务器镜像(5个) )。

顶级域名服务器

负责所有二级域名的管理

权限域名服务器

负责区的管理。 如果权限域名服务器无法回答最后一个查询,它会告诉查询请求的DNS客户端进程下一个要查找的权限域名服务器。

本地域名服务器

可以将DNS客户端进程视为接收到主机发送的域名后,首先向该域名服务发送查询请求的缺省域名服务

题外话:

美国管理着域名解析的根服务器,并管理着所有对应的域名和IP地址。 这对其他国家来说显然有致命的危险。 如果有一天美国屏蔽了某个国家的域名,它的IP地址就无法解析,这些域名所指的网站就会从互联网上消失。 因此,如果“. cn”从域名系统中删除,取消分配给中国国内使用的IP地址,中国将成为国际骨干网的观众。

所以,从国家互联网的安全角度来看,需要根服务器。 中国政府不顾屏蔽海外网站,为了我们整个国家的国防安全,为了在国际互联网上的发言权,中国互联网信息中心CNNIC已经向ICANN申请获得根服务器,使中国的网站有了保障。

4、域名查询方式分为递归查询和迭代查询,在理解递归查询和迭代查询之前,必须了解“递归”和“迭代”的区别。 从C的角度理解递归和迭代的区别,递归是函数自己调用自己,迭代是函数内部循环调用他人。 其次,列举递归和迭代的c程序:

递归程序: f(n )=f(n-1 ) n,f ) )1)=1,通过c递归实现如下

#includeiostreamintf(intn ) if ) n==1)返回1; ELSEreturnf(n-1 ) n; //递归过程}迭代程序: f(n )=1)2) 3…n

,我们用C++迭代实现如下

#include<iostream> int f(int n) { int i,sum=0; for(i=1;i<=n;i++) { sum+=i;//迭代过程、 } return sum; }

递归查询就好比是我问A同学一个问题,他不知道,于是他就去问B同学,如果B知道,就告诉A,A再告诉我结果,如果B也不知道,那么就继续向C问,知道A知道答案,告诉我,最终也是A和我直接交互。
如这一张图:

迭代查询就好比我问A同学问题,A不知道,但是A告诉我,B知道,你去问B吧,于是B告诉了我答案,这就是与上面递归的区别。如下图所示:

查询过程中,递归查询和迭代查询可能会都使用,客户和服务器之间采用递归查询,服务器之间采用迭代查询,可能会多次迭代。
迭代查询的逻辑顺序按照域名系统的域名结构中的层次去查询
如下所示:

5、总结一下DNS查询过程

1)当客户机提出查询请求时,首先在本地计算机的缓存中查找,如果在本地无法查询信息,则将查询请求发给DNS服务器
2)首先客户机将域名查询请求发送到本地DNS服务器,当本地DNS服务器接到查询后,首先在该服务器管理的区域的记录中查找,如果找到该记录,则进行此记录进行解析,如果没有区域信息可以满足查询要求,服务器在本地缓存中查找
3) 如果本地服务器不能在本地找到客户机查询的信息,将客户机请求发送到根域名DNS服务器
4) 根域名服务器负责解析客户机请求的根域名部分,它将包含下一级域名信息的DNS服务器地址地址,返回给客户机的DNS服务器地址
5) 客户机的DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域名的DNS服务器地址
6) 按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应IP地址信息
7) 客户机的本地DNS服务器将递归查询结构返回客户机
8) 客户机利用从本地DNS服务器查询得到的IP访问目标主机,就完成了一个解析过程
9) 同时客户机本地DNS服务器更新其缓存表,客户机也更新期缓存表,方便以后查询
如下图所示:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。