DNS
一、概述
DNS,域名系统,能将域名和IP地址相互映射的一种分布式数据库,使用的是TCP和UDP的53端口。有了DNS之后,访问互联网就不用记住IP地址,只要记住域名就行。说到域名,先来了解一下,什么是域名?
-
域名的组成
如:www.baidu.com这个就是一个域名,但是从严格意义来说baidu.com才是域名(全球唯一的),www是主机名,也就是服务器的名字,它们两个合在一起(主机名.域名)叫做完全限定域名(FQDN),一个域名下可以有多个主机,也就是说当我们买了一个域名(例如baidu.com)之后,我们部署多台服务器的时候就不用再买域名了(例如www.baidu.com,pan.baidu.com等)。
我们来看一下它的结构,它的结构是一个树形的结构,如图:
例如:www.baidu.com. ,我们平时用的都是www.baidu.com,为什么后面还有个“.”?那是根域,平时浏览器都自动给我们加上去了。
- “.”:根域
- “com”:顶级域名
- “baidu”:一级域名
- “www”:主机名
这就是上面说的FQDN,FQDN=主机名.DNS后缀
二、DNS的解析种类
- 按查询的方式来分:
- 递归查询:客户机与本地DNS服务器之间的查询,其实也就是你问什么,它给你回复什么就是递归查询
- 迭代查询:本地服务器与根服务器等其他服务器的解析过程
当我们输入www.baidu.com按下回车的时候,浏览器先看自己的缓存里有没有这条信息的缓存,没有它就找本地的HOST文件,也没有,它就问本地的DNS服务器,这里说的本地不是说同一个局域网的,而是直接和客户机直接联系的DNS服务器, 如果本地的DNS服务器有这条记录的缓存,那么直接就会发给客户机,如果没有,会看本地区域的解析文件,如果还是没有,那么就会发给转发器(如果有转发器),转发器上解析不了,最后发个根服务器,这样看可能有点乱,总结一下:
客户机请求域名的顺序:1、DNS缓存---2、本地host文件---3、找本地DNS服务器
服务器对域名的请求处理顺序:1、DNS服务器高速缓存---2、本地解析文件---3、转发器(如果有)---4、根
来看图更容易理解:
-
- 本地DNS服务器往根DNS服务器发送询问信息:你好,请问一下www.baidu.com怎么走
- 根DNS服务会回复本地DNS服务器:我不知道,你去问一下.comDNS服务器吧
- 本地DNS服务器拿到.comDNS服务器的地址之后就往.com服务器发送询问信息:你好,请问一下www.baidu.com怎么走
- .comDNS服务器回复本地DNS服务器:我不知道,你去问一下baidu.comDNS服务器吧
- 本地DNS服务器拿到baidu.comDNS服务器的地址之后就往baidu.comDNS服务器发送询问信息:你好,请问一下www.baidu.com怎么走
- baidu.com服务器一看是它管理区域范围的,就给本地DNS服务器返回IP地址:www.baidu.com的IP地址是100.1.1.1
- 本地DNS服务器收到后回复给客户机:我太难了!累死我了,我要把它就下来,以后你问我,我就不用这么费劲了,www.baidu.com的IP地址是100.1.1.1
当公司内部自己部署了一台DNS服务来转发的请求的话,那么这台DNS服务器就是转发器:
- 按查询的内容来分:
- 正向解析:域名-----》IP地址
- 反向解析:IP地址--》域名