一     什么是DNS?

DNS(Domain Name System).域名解析系统,因特网上负责把域名解析和通用IP相互映射。

二     DNS相关概念

域名(domain names): 是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的标识符。

域名的构成:以hello.liuliancao.com为例,此时由点号分开了三个段,分别为hello,liuliancao,com成为三个标号(label),标号形成的后缀形成域,hello.liuliancao.com是最底层的域,

第二级域为liuliancao.com,顶级域为com。

常见的顶级域TLDs有(以功能命名)com,gov,edu…(以地区命名)cn,tw,hk,反向域IP->FQDN了解即可。

FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。如www.liuliancao.com主机名为www域为liuliancao.com

所以主机名(host)+域名(domain)=FQDN

DNS相关原理_Internet看上面的图,假设有一个FQDN为www.liuliancao.com,其站内有ns服务器,那么当用户要访问www.liuliancao.com时,用户启动name resolver(dns客户端软件,服务端叫做ns),向自己已经知道的dns服务器(设为A)发送解析请求;A查看这个域名是否在自己的子域中,是则返回响应的请求,如ip地址,不是则查看自己的缓存中是否有对应的内容,有则返回一个非权威绑定信息(non-authoritive)(缓存可能过期,所以存在生存周期TTL),用户如果要求权威信息,则根据用户要求进行某种类型的解析,或者递归,或者迭代。最终用户收到答复信息,客户端name reslover通常也有缓存功能,方便网络浏览。

递归一种情况

用户向A发出请求,A向根发送解析请求,根去com域查询解析,com域找到liuliancao的ns,最终ns层层返回权威答案给用户。

迭代的一种情况

用户发送请求给A,A无法解析,返回根域信息,用户发送请求给根,根返回com域信息,用户发送请求给liuliancao.com这个域的ns服务器收到请求,返回自己的权威信息。

ZONE:区域,是域的区域实体,后面的定义和配置会更深刻地体会到

主从DNS服务器master/slave:通常会有多台DNS服务器,那么为了节省带宽等,只需设置一台主服务器,更新信息,其他的从服务器只需要从主服务器定时备份及时更新即可。至于当用户访问到该DNS服务器时,会多个dns服务器会轮流为用户服务,如果访问多次的话。

开启端口53/udp 请求时  53/tcp主从数据交换  953/tcp

三     早期我们通过加入/etc/hosts来实现范围解析,后来提供服务器记录这些信息,然而随着网络的爆炸式扩大,/etc/hosts的内容也越来越多,所以需要有类似IANA组织管理DNS,其重要性不再多说。最后发展为现在的分布式数据库。所以DNS其实归根结底是管理着一大堆数据信息,是一个大的数据库,那么这些数据库的条目是怎样的呢?这些条目被称为资源记录,RR(Resource Record),资源记录的类型与格式:

一般格式为:

$TTL 600可以写在前面,统一TTL

NAME  [TTL]  IN  RRT   VALUE

RRT:

①SOA(Start Of Authority,起始授权记录)通常用在一个区域zone定义的开头

格式为:

ZONENAME[TTL]     INSOA FQDN   ADMIN_MAILBOX(

Serial序列号

Refresh从服务器向主服务器更新请求的间隔

Retry从服务器更新失败的重试时间

Expire指定时间内,从服务器认为主服务器失效(挂掉)的时间

Cache TTL从服务器的资源记录缓存时间

)

Eg.其中@代指域名,邮箱的@由于有特殊意义,改为点

@600 IN  SOA ns1.liuliancao.com.   admin.liuliancao.com(

20150525序列号在此

1H表示1小时刷新一次

5M表示5分钟重试

1W表示1周过期

1D缓存周期为1天

)

②  NS(Name Server),指定负责解析的服务器,很重要

一般NS会加上A的记录,两台NS不建议在一个网段

NS:Name Server  Zone Name-->FQDN  还需要ip

liuliancao.com. 600 IN NS  ns1.liuliancao.com.

liuliancao.com. 600 IN NS  ns2.liuliancao.com.

③A      正向IPv4解析     AAAA为IPv6

ns1.liuliancao.com. 600 IN  A  1.1.1.2

ns2.liuliancao.com. 600 IN  A  2.1.1.2

④MX(Mail  eXchanger,邮件交换)ZONENAME->FQDN

通常邮件还需要指定优先级(0-99数字越小,优先级越高),为邮件服务器指定ip地址

ZONE NAME   TTL  IN MX    pri(优先级)   VALUE

Eg.

liuliancao.com.   600 IN    MX 10    mail.liuliancao.com.

mail.liuliancao.com. 600 IN A      1.1.1.3

⑤PTR(Pointer)反向指针记录   IPv4->FQDN,和A相反

通常反向区域文件的写法为(正向区域必须有个SOA,反向区域也是)

177.168.192.in-addr.arpa. IN SOA(第一条必须)

其中前面是倒过来写的一个区域,192.168.177.0/24的区域,以及一个特定的后缀.in-addr.arpa.,整个可以倒过来为arpa.addr-in.192.168.177

然后就是IPv4>FQDN的解析

10      IN  PTR www.liuliancao.com

⑥CNAME(Canonical Name,正式名称)

这里通常为正式名称指定别名alias

Alias      IN CNAMECname

Eg.

www.liuliancao2.com.INCNAMEwww.liuliancao.com.

四  关于DNSSEC   DNS安全保证

措施1:DNSSEC可鉴别报文来源和数据完整性,防止报文被改动

措施2:采用公钥加密,上层机构有各部分的公钥,用公钥解密后再检查措施1,防止被监听,提供机密性。