从浏览器地址栏输入网址到看到页面中间的通信过程介绍中提到DNS解析,那么,来详细说说DNS是个什么东西。
DNS的诞生
DNS全称为Domain Name Service(域名服务 ),主要功能为实现域名和IP的映射功能。(网络通讯时,需要将域名转化为IP地址)。
为什么需要将域名转化为IP地址呢?
当我们在上网的时候,通常输入的是网址,我们能记住的是域名,而网络上的计算机彼此之间只能用IP地址才能相互识别。例如访问今日头条,我们可以在浏览器的地址栏中输入网址, 也可输入IP地址,但是IP地址不好记,于是有了域名,这样我们可以很容易的记住。
另外,一个网站不止一台服务器,如果我们通过IP访问,那要记住每一台服务器,并且需要哪些内容在具体的哪些服务器才能访问到我们需要的资源,如果这样,上网就变成一件大工程。
所以,域名既方便访问网站的用户记忆又方便网站的服务器管理和应用部署,DNS作为域名和IP的翻译充当了非常重要的角色。
DNS解析过程
下面以mail.139.com为例,说明DNS查询解析过程。
用户向本地DNS服务器询问mail.139.com地址在哪,如果本地DNS服务器中有mail.139.com的IP地址缓存,那么直接返回给用户。如果没有缓存,向上一级DNS服务器询问。从域名树状结构的根部网树叶方向询问。
DNS解析过程-无缓存
DNS解析过程-已缓存
DNS查询过程是UDP协议还是TCP协议?
默认情况下使用UDP,查询的结果超过512字节,使用TCP查询
DNS查询方式
递归查询
在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
迭代查询
DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
一条DNS记录的栗子:
DNS常用查询工具
其中一个很常用的工具为nslookup。nslookup用于查询域名对应的IP地址。
1:查询域名解析为IP地址
2:查询IP地址解析为域名
另一个很常用的工具是dig。dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。
常见用法有:
1:默认提供冗长格式的信息
2:简单格式的返回信息
3: 跟踪域名解析信息