文章目录
什么是 DNS
DNS(Name)是“ Name ”的英文缩写。它是组织成域层次结构的计算机和网络服务命名系统。它用于 TCP/IP 网络。它提供的服务是主机名和域名的转换。适用于 IP 地址。
例如,如果要访问某个域名,首先必须通过DNS查出其IP地址为119.147.15.13。
DNS 的工作原理
当 DNS 客户端需要在查询程序中使用名称时,它会查询本地 DNS 服务器来解析该名称。客户端发送的每条查询消息包含3条信息,用于指定服务器应该回答的问题。
对于 DNS 服务器,应始终将其指定为类别。例如,指定的名称可以是计算机的完全限定域名,并且指定的查询类型用于按该名称搜索地址资源记录。
DNS 查询可以通过多种不同的方式解决。客户端有时还可以使用从先前查询获得的缓存信息来就地回答查询。 DNS 服务器可以使用自己的资源记录信息缓存来回答查询,也可以代表请求客户端查询或联系其他 DNS 服务器以完全解析名称,然后将答案返回给客户端。这个过程称为递归。
或者,客户端本身可以尝试联系其他 DNS 服务器来解析名称。如果客户端这样做,它将根据服务器的响应使用独立的附加查询。这个过程称为迭代,即DNS服务器之间的交互查询是迭代查询。
DNS查询流程如下:
在浏览器中输入www..com域名。操作系统首先会检查其本地的hosts文件是否有这个URL映射关系。如果有,就会先调用IP地址映射来完成域名解析。如果hosts中没有该域名的映射,则搜索本地DNS解析器缓存,查看是否存在该URL的映射关系。如果有则直接返回完成域名解析。如果主机与本地DNS解析器缓存之间没有对应的URL映射关系,则首先查找TCP/ip参数中设置的首选DNS服务器。这里我们称之为本地DNS服务器。当本服务器收到查询时,如果查询的域名包含在本地配置区资源中,则将解析结果返回给客户端,完成域名解析。这个决议具有权威性。如果要查询的域名没有被本地DNS服务器区域解析,但服务器缓存了URL映射关系,则调用该IP地址映射来完成域名解析。这个决议并不具有权威性。如果本地DNS服务器的本地区域文件和缓存解析无效,则根据本地DNS服务器的设置(是否设置转发器)进行查询。如果不使用转发模式,本地DNS会将请求发送到13台根DNS服务器。收到请求后,会判断谁授权管理这个域名(.com),并返回一个负责顶级域名服务器的IP。本地DNS服务器收到IP信息后,会联系负责.com域的服务器。负责.com域的服务器收到请求后,如果无法解析,就会寻找管理.com域的下级DNS服务器地址,交给本地DNS服务器。当本地DNS服务器收到这个地址后,就会寻找域服务器,重复上述动作,进行查询,直到找到www..com主机。如果采用转发方式,DNS服务器会将请求转发给上级DNS服务器,由上级DNS服务器进行解析。如果上层服务器无法解析,则要么查找根DNS,要么将请求转发给上层服务器。这个循环。无论本地DNS服务器是使用转发还是root提示,最终结果都会返回到本地DNS服务器,然后DNS服务器返回给客户端。
客户端向本地DNS服务器的查询是递归查询,而DNS服务器之间的交互查询是迭代查询。域名级别
如上图所示,域名的层次结构表示为:
主机名。二级域名。顶级域名。根域名为host.sld.tld.root
例如,真实域名是,缩写为.由于根域名 .root 对于所有域名都是相同的,因此通常被省略。
根域名以下的级别称为“顶级域名”(top-level,缩写为TLD),如.com、.net;下一级称为“子级域名”(-level,缩写为SLD),如.,这一级域名是用户可以注册的;下一级是主机名(host),比如里面的www,也称为“三级域名”,是用户给自己域中的服务器分配的名称,可以任意分配由用户。
分层查询
DNS服务器根据域名的级别进行分层查询。
需要明确的是,每一级域名都有自己的NS记录,NS记录指向该级域名的域名服务器。这些服务器知道较低级别域名的各种记录。
所谓“分层查询”,就是从根域名开始,依次查询各级域名的NS记录,直到找到最终的IP地址。流程大致如下。
从“根域名服务器”查找“顶级域名服务器”的NS记录和A记录(IP地址)
从“顶级域名服务器”中查找“二级域名服务器”的NS记录和A记录(IP地址)
从“二级域名服务器”中查找“主机名”的IP地址
如果你仔细看上面的过程,可能会发现其中并没有提到DNS服务器是如何知道“根域名服务器”的IP地址的。答案是“根域名服务器”的NS记录和IP地址一般不会改变,因此内置于DNS服务器中。
以下是内置根名称服务器 IP 地址的示例。
在上面的列表中,列出了13条根域名(.root)的NS记录及其IP地址(即A记录)。
另外,可以看到所有记录的TTL值都是秒,相当于1000小时。也就是说,根域名服务器列表每1000小时才查询一次。
目前,全球共有十三组根域名服务器,从A.ROOT-.NET到M.ROOT-.NET。
DNS 记录的类型
域名和IP的对应关系称为“记录”()。根据使用场景,“记录”可以分为不同的类型(type)。我们之前已经看到有A记录和NS记录。
常见的 DNS 记录类型如下。
A:地址记录(),返回域名指向的IP地址。
NS:域名服务器记录(Name),返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
MX:邮件记录(Mail),返回接收电子邮件的服务器地址。
CNAME:规范名称记录(Name),返回另一个域名,即当前查询的域名是跳转到另一个域名。
PTR:反向查询记录( ),仅用于从IP地址查询域名
DNS工具dig命令
$ dig +short math.stackexchange.com
151.101.129.69
151.101.65.69
151.101.193.69
151.101.1.69
主机命令
host命令可以看作是dig命令的简化版本,返回当前请求的域名的各种记录。
$ host github.com
github.com has address 192.30.252.121
github.com mail is handled by 5 ALT2.ASPMX.L.GOOGLE.COM.
github.com mail is handled by 10 ALT4.ASPMX.L.GOOGLE.COM.
github.com mail is handled by 10 ALT3.ASPMX.L.GOOGLE.COM.
github.com mail is handled by 5 ALT1.ASPMX.L.GOOGLE.COM.
github.com mail is handled by 1 ASPMX.L.GOOGLE.COM.
$ host facebook.github.com
facebook.github.com is an alias for github.map.fastly.net.
github.map.fastly.net has address 103.245.222.133
命令
命令用于交互查询域名记录。
$ nslookup
> facebook.github.io
Server: 192.168.1.253
Address: 192.168.1.253#53
Non-authoritative answer:
facebook.github.io canonical name = github.map.fastly.net.
Name: github.map.fastly.net
Address: 103.245.222.133
>
whois命令
whois命令用于检查域名的注册状态。
$ whois github.com
扫一扫在手机端查看
-
Tags : 上游dns什么意思
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。