文章目录
- 一、DNS协议背景
- 二、DNS协议概述
- 三、DNS工作原理
- 四、DNS常用的记录及作用
一、DNS协议背景
在Internet网中连接着数量众多的主机,要让这些主机进行通信,需要有一套名字标识体系,让主机之间能够彼此找到对方,我们可以用多种方式进行主机标识,如使用主机名标识一台主机,当然,我们更多是用IP地址来标识计算机,主机在互联网上靠IP地址进行位置标识。
在internet的前身ARPAnet的年代,整个网络中只有几百台主机,所有主机信息以及主机名与地址的映射记录都存放在一个名为HOSTS.TXT的文件中。HOSTS.TXT从一台名为SRI-NIC的主机上分发到整个网络,这台主机由斯坦福研究院的网络信息中心负责维护。ARPAnet的管理员们通过电子邮件的方式将变更信息通知NIC,同时定期FTP到SRI-NIC.上,获得最新的HOSTS.TXT文件。
例如:在IE里面输入http://www.sangfor.com.cn或者1 13.105.88.225都能访问深信服官网。
在20世纪70年代束,整个ARPAnet只有200台主机。但是到了80年代,ARPAnet 上主机数量飞速增长,到80年代末期主机总数增加到10万台,这种人工更新的方式显然不再适用了。频繁更新HOSTS.TXT造成了网络流量和处理器负载增加,并且名字冲突和数据一致性维护越来越困难。为了解决这一问题,网络管理者们希望找到一种合理的方法来解决主机信息的维护问题,既能分散管理,又能及时进行全网更新和同步,并且采用层次化的名字空间,保证主机名的全网唯一性。1984年, 南加州大学信息科学所的Paul Mockapnris发布了描述DNS (英文全称为Domain Name System,中文意思是域名系统)的RFC 882和RFC 883,就是最初的DNS规范,DNS系统诞生了。
二、DNS协议概述
DNS (Domain Name System,域名系统)是互联网上是一种层次结构的基于域的命名方式和实现这种命名方式的分布式数据库,其中记录了各种主机域名与IP地址的对应关系,能够使用户更加方便的访问网站。用户可以直接输入域名登录网站,DNS会将域名解析成IP地址,然后用户根据这个IP地址找到相应的网站,从而访问到域名对应的网站,通过主机名获取到主机名对应IP地址的过程叫作域名解析。
DNS协议建立在UDP协议之上,在某些情况下可以切换到TCP,使用端口号53,是一种客户/服务器服务模式。
域:①域是一个逻辑上的概念,在初始划分互联网的时候,Internet组织将世界上的计算机划分为了若干个大类,如com、gov、 org、 net、 edu、 cn、 us等。②每一个大类我们称之为一个域。③在每个大类里面划分出比较小一点的,成为子域,域是可以嵌套的,大域包含小域,小域可以包含更小的域。
域名:在每个域里面都有很多主机,每个主机都有一个主机名,我们在这个主机名后面冠上主机所在域的名称成为该主机在Internet网络上的域名。
域名结构:域名是一个树状层次结构,联机分布式数据库系统,最高的根域名服务器维护最高级别域名服务器记录,后者维护下一级域名服务器的记录。
域名服务器:负责名字到地址的解析。
域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
根据域名结果可以把域名服务器划分为以下四种类型:
(1)根域名服务器;(2)顶级域名服务器;(3)权威域名服务器;(4)本地域名服务器。
每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为zone (区域)。
如果根据DNS服务器管理的区域地址数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:
①主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。
②从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都一样的。关键区别在于,从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。 构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
③缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
三、DNS工作原理
DNS的工作模式:DNS查询以各种不同的方式进行解析,客户机可通过使用从以前查询获得的缓存信息就地应答查询,DNS服务器也可使用其自身的资源记录信息缓存来应答查询。但更多是使用下列两种方式:
①递归解析:DNS服务器收到一个域名解析请求时,如果所要检索的资源记录不在本地,DNS服务器将和自己的上一层服务器交互,获得最终的答案,并将其返回给客户。
②迭代解析:DNS服务器收到解析请求,首先在本地的数据库中查找是否有相应的资源记录,如果没有,则向客户提供另外一个DNS服务器的地址,客户负责把解析请求发送给新的DNS服务器地址。
DNS域名解析的过程图示:
工作原理示例:
1.当在浏览器中输入URL时,浏览器会先检查自己的缓存是否有域名IP的映射关
系,有则直接使用IP进行通信;
2.如浏览器没有缓存,则操作系统检查本地Hosts文件是否有域名IP的映射关系,
有则使用IP进行通信;
3.如果hosts没有这个域名的映射,则查找本地DNS解析器缓存是否有映射关系,有
则直接返回完成域名解析;
4.如果还未找到映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,也就是常称的本地DNS服务器,如果服务器已缓存了映射关系,则使用这个IP地址映射返回完成域名解析,此时解析不具有权威性;
5.如果本地DNS服务器缓存已经失效,进行递归查询。
四、DNS常用的记录及作用
DNS记录类型
域名和IP之间的对应关系,称为“记录”(record) 。根据记录使用的目的不同,又分为不同的类型,常见的DNS记录类型如下:
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录;
A:地址记录(Address) , 返回域名指向的IP地址。
NS:域名服务器记录(Name Server),返回保存 下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。
CNAME:规范名称记录(CanonicalName),返回另一个域名,即当前查询的域名是另一个域名的跳转。
PTR:逆向查询记录(Pointer Record), 只用于从IP地址查询域名。
资源记录定义的格式:
记录一条域名信息映射关系,称之为资源记录(RR) 。当我们查询域名www.sangfor.com的时候,查询结果得到的资源记录结构体中有如下数据:
①TTL,生存周期,是递归服务器会在缓存中保存该资源记录的时长,即客户端的到解析结果的缓存时长,可从全局继承。
②网络/协议类型,它的代表的标识是IN,IN就是internet,目 前DNS系统主要支持的协议是IN。
③type, 就是资源记录类型,一般的网站都是都是A记录(IPv4的主机地址) 。
④rdata是 资源记录数据,就是域名关联的信息数据。
1、SOA记录
name:当前区域的名字,例如"sangfor.com.";
value:有多部分组成
①当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
②录前区域管理员的邮箱地址;但地址中不能使用@符号,一 般用.替换,例如admin.sangfor.com;
③主从服务协调属性的定义以及否定的答案的统一的TTL
例如:sangfor.com. 86400 IN SOA ns.sangfor.com. nsadmin.sangfor.com. (2020032201;序列号2H;刷新时间10M;重试时间1W;过期时间1D;否定答案的TTL值)
2、NS记录
name:当前区域的名字
value:当前区域的某DNS服务器的名字,例如ns.sangfor.com.
注意:一个区域可以有多个NS记录。
例如:
sangfor.com. IN NS ns1.sangfor.com.
sangfor.com. IN NS ns2 .sangfor.com.
注意:①相邻的两个资源记录的name相同时,后续的可省略。②对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录。
3、MX记录
name:当前区域的名字
value:当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高。
例如:
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录。
4、CNAME记录
name:别名的FQDN
value:正工名字的FQDN
例如:web.sangfor .com. IN CNAME www.sangfor .com
5、PTR记录
name:IP,有特定格式,把IP地址反过来写,1.2.3.4, 要写作4.3.2.1; 而有特定后缀: in-addr.arpa., 所以完整写法为: 4.3.2.1.in-addra.arpa.
value:FQDN
例如:4.3.2. 1.in-addr.arpa. IN PTR www.sangfor .com
简写成:4 IN PTR www.sangfor.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写。