Antech 2020-02-19
负责解析域名,将域名解析成IP地址。
因特网采用了层次树状结构的命名方法。
域名的结构由标号序列组成,各标号之间用点隔开:
国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
通用顶级域名 gTLD:最早的顶级域名是:
.com (公司和企业);
.net (网络服务机构);
.org (非赢利性组织);
.edu (美国专用的教育机构);
.gov (美国专用的政府部门);
.mil (美国专用的军事部门);
.int (国际组织);
新增的有:
.aero (航空运输企业);
.biz (公司和企业);
.cat (加泰隆人的语言和文化团体);
.coop (合作团体);
.info (各种情况);
.jobs (人力资源管理者);
.mobi (移动产品与服务的用户和提供者);
.museum (博物馆);
.name (个人);
.pro (有证书的专业人员);
.travel (旅游业);
基础结构域名(infrastructure domain):这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。
比如域名:www.cnblogs.com 。该域名由三部分组成:三级域名www;二级域名cnblogs;顶级域名com;每部分之间用点隔开。
需要注意的是:
为了保证域名的唯一性,需要相关机构管理,我们想要申请域名则必须花钱购买。在购买域名时只需要选择相应的顶级域名和二级域名,若这两部分组成的域名全球唯一,那么在此基础上加上三级域名、四级域名组成的域名也都是全球唯一。
比如购买了域名:cnblogs.com,在此域名基础上派生出www.cnblogs.com 、mail.cnblogs.com等都是免费的,只要你有服务器派生出多少个域名都只用缴纳cnblogs.com一个域名的费用。并且由于cnblogs.com的全球唯一性,所以其派生出的域名都是全球唯一的。
域名服务器的作用为,把网站域名解析成对应的IP地址。
每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
域名服务器有以下四种类型 :
关系为:
根域名服务器:
根域名服务器是最重要的域名服务器。根域名服务器并不直接把域名直接转换成 IP 地址,而是存储着所有的顶级域名服务器的域名及其 IP 地址。在使用迭代查询时,根域名服务器把下一步应当查找的顶级域名服务器的 IP 地址告诉本地域名服务器。
当本地域名服务器无法解析特定的域名时,首先求助于根域名服务器。
比如某本地域名服务器负责abc.com区域的域名解析,当本地用户输入abc.cn时,该本地域名服务器无法对其进行解析,于是第一时间求助于根域名服务器,询问负责.cn的顶级域名服务器的IP地址。
在因特网上共有13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。
根域名服务器共有 13 套装置,它由分布在世界各地的许多台作为根域名服务器的机器组成。目的是为了方便用户,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。
这些根域名服务器相应的域名分别是:
a.rootservers.net;
b.rootservers.net;
…
m.rootservers.net;
顶级域名服务器(即 TLD 服务器)
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
比如顶级域名服务器.CN负责所有以.CN结尾的域名的解析。
当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
权限域名服务器
负责一个区的域名服务器。
比如:在顶级域名服务器.com负责下的权限域名服务器abc.com,负责的是所有以abc.com结尾的域名的解析。
当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
比如:在权限域名服务器abc.com负责下的用户查询域名xyz.com,该权限域名服务器无法告诉客户最终结果,而是告诉客户权限域名服务器xyz.com的IP地址。
本地域名服务器(默认域名服务器)
如图:根DNS的IP地址为100,里面存储着顶级域名服务器:com、net、edu、cn等的IP地址;顶级域名服务器com中存储着域名www.baidu.com对应的IP地址;顶级域名服务器net中存储着www.inhe.net对应的IP地址。
当指定DNS服务器IP地址为192的用户输入www.baidu.com域名时,IP地址为192的本地域名服务器没有查询到域名的信息,于是求助于IP地址为101的顶级域名服务器com。经查询,该顶级域名服务器(com)正好存储有该网址对应的IP地址,于是把域名解析出的IP地址告诉本地域名服务器,本地域名服务器再告诉用户。于是用户得以通过IP地址该网站。
当该用户输入www.inhe.net域名时,先在用户指定的本地域名服务器中查询,发现没有该域名的信息。于是本地域名服务器求助于顶级域名服务器com,com也没找到域名信息。于是顶级域名服务器com求助于根DNS服务器,根DNS服务器找到顶级域名服务器net的IP地址并把它告诉com,于是com通过IP地址102找到顶级域名服务器net,net找到www.inhe.net对应的IP地址后再告诉顶级域名服务器com,com再告诉本地域名服务器,本地域名服务器再告诉用户。最后用户得以通过该网站的IP地址访问该网站。
可见,顶级域名服务器com不知道的域名可以求助于根DNS服务器,根DNS服务器会告诉它去哪找相应域名,最后总能得到域名解析结果。所以,只要用户指定了一处DNS服务器,无论是88.88.88.88还是22.22.22.22,能把全球的域名解析出来。
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
递归查询(较少用):
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
迭代查询:
域名服务器的高速缓存
自己的DNS服务器相当于负责区域更小的本地DNS服务器。
适用场景
提供内网网站的域名解析服务。
比如学校内网中可能存在许多的网站,这些网站仅供内部使用,并不在互联网上开放,域名可能与互联网中的部分网站冲突。这时可以再内网中安装一个DNS服务器,提供内网网站的域名解析服务。
并且内网的DNS服务器也知道互联网中的根域名服务器地址,只要内网DNS服务器能够访问互联网,当内网用户访问外网时也能提供相应的域名解析服务。
降低到Internet的域名解析流量。
即使无内部网站,假如校园内网2000人使用,每人访问百度时都要发送一个数据包给外网的DNS服务器进行域名解析,造成的网络流量是不可忽视的,若安装了内网DNS服务器只要有一个人访问百度,发送了一个数据包给外网的DNS服务器解析出来的IP地址会在内网DNS服务器上缓存一段时间,该段时间内内网的其余用户访问百度时,内网DNS服务器都能直接告诉它们缓存的IP地址,由此节省了重复域名解析造成的大量网络流量。
存在域环境。
查看域名地址
可通过以下命令在命令行窗口查看域名地址:以搜狐网为例
nslookup www.sohu.com
“非权威应答”表示,该域名的解析是借助外网的其他DNS服务器的。