域名解析系统(名称解析)
在互联网中通过IP地址进行通讯
- IP地址用数字表示,记忆起来太困难(eg:192.168.1.1)
- 域名则方便使用,同时便于管理
DNS可通过域名解析出IP,也可以通过IP解析出域名。
一般来说,通过域名来访问Internet上的某台主机时,需要使用DNS服务来获取该主机的IP地址。但如果我们通过主机名来访问本地局域网上的机器,则可以通过本地静态文件来获得目标主机的IP地址。Linux将目标主机名及其对应的IP地址存储在/etc/hosts配置文件中。当需要查询主机名对应的IP地址时,程序将首先检查这个文件,静态IP和域名对应,默认优先级高于公网DNS服务,并且比公网DNS服务解析速度快。如果程序在/etc/hosts文件中未找到其目标主机对应的IP地址,将求助于DNS服务。
那么为什么不将所有的IP地址写入hosts文件?
现在IPV4,可用地址数量2^32,大概是42亿多的IP地址,若将所有的IP和域名对应写入文件中,大概需要80GB左右的空间。纯文本文件打开的速度受大小影响非常严重,打开会非常的慢,并且基本不可能进行正常的数据解析。可以通过修改/etc/hosts.conf文件来自定义系统解析主机名的方法和顺序(一般先访问本地文件/etc/hosts,再访问DNS服务)
DNS服务器基本作用
- 客户机向DNS服务器发送域名查询请求
- DNS服务器告知客户机Web服务器的地址
- 客户机与Web服务器通讯
域名空间结构:
三级域+二级域+一级域 = 全球唯一域名
抢注域名即如此,只能一方申请。一般大公司会将一级域名注册多个
eg:www.baidu.com www.baidu.cn…防止一级域输错进入到不同的网站
防范钓鱼网站,要仔细订正其二级域名和一级域名…
DNS服务器具体域名解析过程:
本地域名服务器会将查询到的IP和对应的域名进行本地缓存,下次再次访问则不需要进行DNS解析(一般缓存时间为3天)
客户机向本地域名服务器发起的查询为递归查询:本地域名服务器要么做出查询成功响应,要么做出查询失败响应,不可以进行模糊响应。即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,允许本地域名服务器向其他域名服务器请求,总之本地域名服务器向客户机返回出正确的IP地址即可。(客户机和DNS服务器之间的查询)
迭代查询:本地域名服务器向根DNS服务器发出请求,其将注册.cn的DNS服务器地址返回给本地域名服务器。然后本地域名服务器再向注册.cn的DNS服务器请求,其再将com.cn返回…从一级域开始解析,进行相似(最优化)查询,直到最终访问到正确的IP.这种DNS服务器之间的查询即为迭代查询。
从查询内容上分为:
- 正向查询由域名查找IP地址
- 反向查询由IP地址查找域名