DNS介绍
Domian Name Service
这是一种协议规范,属于C/S架构,在C/S架构下我们需要套接字的方式来访问这个服务,所以,服务器端必须要拥有一个服务器端口;
所以,DNS服务使用的端口为 53/tcp 和 53/udp;其中 53/tcp 端口在主从服务器进行解析库同步的时候使用,53/udp 端口在做USL解释的时候使用;
现有DNS架构介绍
现在又DNS架构由美国 IANA 组织来进行维护,IANA 组织同时也维护IP地址;
本地域名--hosts文件
在网络发展之初,我们的网站地址与 域名 之间的对应关系都存放在本地;这时候的网站主机并不多,这时候,添加一台主机,我们只需要将该主机和域名对应关系添加到本地hosts文件即可;
windows的hosts文件:
C:WindowsSystem32driversetchosts
1.2.3.4 www.test.com
添加这个对应关系在最后后面即可
linux的hosts文件:
/etc/hosts
同windows配置
这样windows和linux就可以实现本地解析了;
现有dns架构构成过程
但是,随着互联网中网站服务器的添加,本地hosts添加的数量越来越多,这时候本地再来维护这个庞大的解析库关系,就变得很困难,并且查找起来也异常困难;
此时,IANA机构提供了一台性能强大的公网服务器,来维护这个数据库,这时候,主机要做域名解析就可以直接找到这台服务器,从它上面获取解析结果;
但是,数量依然在不停的增加,查找这些解析库成为了一个比较困难的问题;这时候我们IANA机构就引入了分布式的想法,将解析任务交给了它的下级服务器,而这些服务器就是我们的顶级域名服务器;这些服务器每一台服务器负责一个域名区域;
而客户解析,因为查找麻烦的原因,也不自己来查找域名,而是将这个工作交给了固定的DNS服务器,而自己直接找DNS服务器那去解析结果;
这种架构,就是我们现有的解析架构了;
dns树形结构介绍
根据刚才的描述,我们有了各自的顶级域名服务器
顶级域名(top level domain-tld)在最初的时候只有7个,包括:
.com .edu .mil .gov .net .org .int
而随着时间的推移,IANA开放了所有顶级域名服务器;一般情况下,顶级域名服务器在现有的互联网环境下可以更具三点来划分,包括组织域、国家域、反向域;
在根域名下就是我们的顶级域名服务器;此时,引入了一个概念--域domian;
每一个域名管理一个区域内部的服务器;
所有的域名都是在根下(.),之后则是顶级域名,由根域名服务器进行管理,之后则是一级域名服务器,由顶级域名服务器进行管理;
公司内部的DNS服务器,则向上级域名服务器进行注册,则此域名服务器,就能解析所有在该区域内的主机(例如.agongsi下的ns1 ns2 www三个主机)
DNS解析过程
我们在了解域名结构后,之后我们就需要知道在互联网上如何进行域名解析;
域名查找方式
默认情况下我们更具区域来进行域名解析;PC在请求域名的时候会直接找到自己的DNS服务器,再由该DNS服务区代理PC去进行这个地址的解析;
首先就会来到根域名服务器,来进行查找,根域名服务器则会告诉DNS服务器该域名所在的顶级域名区域,例如 .com;
收到该回复后,DNS服务器则会再去询问顶级域名服务器。这时候,.com 就会回复它的下级域名服务器,例如 .agongsi 的域名给DNS服务器;
这时候,DNS就去询问 .agongsi 这个区域的负责人,也就是 ns 服务器,这时候就能回复得到对应的IP地址;
最后,将这个IP地址放回给PC;
递归查找:
其中,PC只需要指定dns服务器,向该dns服务器发起解析请求,就能得到解析结果,这个过程我们叫做递归查找;
迭代查找
其中,DNS服务器依次去查找了根域名服务器、顶级域名服务器、公司域名服务器;最后才能得到正确的解析结果,这个过程我们叫做迭代查找;
可知,迭代查找是非常消耗资源的;
【注意:除了查找DNS外,都有的过程中都会进行DNS解析名称的缓存,这个我们之后再说】
使用互联网DNS解析域名
此时,我们要注意一个问题,再上图中,PC所连接的DNS也是公司内部的DNS服务器,也就是说,这台DNS服务器除了为PC做解析以外,同时也可以承当为互联网上其他PC解析本地服务器的责任;
同理,为了方便我们上网,我们内部并不需要去搭建DNS服务器,可以直接指定互联网上的DNS服务器,让运营商的DNS服务器来为我们进行解析也可以;
【注意,这里只有一个问题,就是权限问题,我们不可能让每个人公司都去提供一个类似于8.8.8.8的DNS服务器,用来给别人进行解析,所以,我们就需要对DNS做权限管理,这个问题我们之后再说明】
解析类型
常见的解析类型由两种,这个在两个不同的区域来实现解析的;所以,在配置的时候,我们使用两个zone来配置;
正向解析
Name --> IP 将域名解析为IP地址
反向解析
IP --> Name 将IP解析为 name ;这个技术是以线索提示的方式来实现,这是一种较为复杂的问题,在互联网上大多数的域名都无法行进行反向解析;但是,方向解析是很重要的,例如:它可以用来验证对方有些服务器是否为来及邮件服务器;
DNS服务器的类型
根据DNS服务器的解析过程,我们由多种DNS服务器,主要包括主备dns服务器,缓存服务器,以及DNS转发器;
主DNS服务器/(从)辅助DNS服务器
缓存DNS服务器
转发器
本地DNS服务器直接指定互联网dns服务器,帮助进行DNS条目的解析;
由图可知,转换器上需要指定公网DNS,这时候所有的DNS请求都会由公网DNS为我们解析;