文章目录
- 一 定义
- 二 配置文件
- 三 DNS解析流程
- 四 总结
一 定义
用户在浏览器输入URL,浏览器就会向该URL对应的服务器发送请求,获得对应的IP,才能将资源返回给用户。
简单来说,DNS就是将URL转化成IP的过程。
二 配置文件
在Linux系统中如果想要 ping 通外网,比如ping www.baidu.com
,如果失败,很有可能是没有配置DNS。
一种方法是,在 /etc/sysconfig/network-scripts/ifcfg-eth0
文件中,添加参数 DNS1=223.5.5.5
;
一种方法是,在 /etc/resolv.conf
文件中,添加参数 nameserver 223.5.5.5
。
三 DNS解析流程
本文以访问www.baidu.com域名的DNS解析流程为例,进行说明。
1 )首先查询本地缓存
2)接着查询本地hosts文件是否有域名解析的IP
3)其次请求LDNS的缓存与向LDNS的查询
4)LDNS作为“中间商”,开始迭代查询,先请求根域名服务器,得到顶级域名服务器和.com
5)从顶级域名服务器得到权威域名服务器的IP,得到baidu.com
6)从权威域名服务器得到www.baidu.com
的IP资源
7)资源返回给LDNS和本地客户端,并进行缓存,以便下次查询或其他用户的相同资源查询
四 总结
1)域名解析的顺序是:本地的缓存----->本地hosts
文件----->LDNS的缓存----->LDNS查询----->根域名服务器----->顶级域名服务器----->权威域名服务器----->结果返回给本地客户端和LDNS并缓存
2)递归查询:客户端向LDNS发送DNS解析结果的请求,LDNS返回给客户端一个准确的结果,就是递归查询的过程。本文1-3都属于递归查询。
迭代查询:A向B发送获取资源的请求,B没有给A所需要的结果,反而告诉A可以向C发送请求,A则向C发送请求获取资源,以此类推,就是迭代查询。本文4-6都属于迭代查询过程。