【本文导航】
DNS域名系统
DNS域名系统
DNS解析类型
DNS查询类型
DNS服务器类型
资源记录
SOA记录
NS记录
MX记录
A记录与泛域名
PTR记录
CNAME记录
AAAA记录
子域
区域传送
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP。
【域名】是由点号". "将各级域的名称(lables)隔开组成(如www.178linux.com)。各lables由“数字”“字母”“-”其中的一种或多种组成。各lable长度应该在63个字符之内, 而且总长度应该不超过25563个字符,且域名最多不能超过127层。
一个【全域名】(FQDN),即完整的完全合格域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。
常见域:
根域:用“.”表示;
顶级域(一级域):常见顶级域有com、edu、mil、gov、net、org、int等;
二级域:如178linux、google等;
三级域:如www、bbs等;
全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统,由CANN(互联网名称与数字地址分配机构)负责管理。
根据DNS的查询类型非为正向解析与反向解析
通过主机名,查询得到该主机名对应的IP地址的过程叫做【正向解析】(FQDN –> IP)。
反过来,如果是通过主机IP查询得到域名的过程叫【反向解析】(IP –> FQDN),反向解析的作用为服务器的身份验证,一般用在邮箱系统上面。
正反向解析是两个不同的名称空间,是两棵不同的解析树,理论上不能运行在同一服务上(现在技术允许,只需配置不同查询数据库)。
DNS一次完整的查询请求流程:
客户端 –>hosts文件 –>本地DNS服务器缓存–> DNS 服务器递归 (recursion) –> 服务器缓存 –> 迭代(iteration) –> 根–> 顶级域名DNS–>二级域名DNS…
【递归查询】是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。即上图右边部分客服机向DNS服务器查询的过程。
【迭代查询】又称重指引,当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。即上图左边部分DNS服务器帮忙客服机查询的过程。
【主DNS服务器】:用来管理和维护所负责解析的域内解析库的服务器,正常情况下,一个域只有一个主DNS服务器。
【从DNS服务器】:从主服务器或从服务器“复制”(区域传输)解析,主要起到分流作用,从服务器可以有多个。
【缓存DNS服务器】(转发器):本身不提供DNS解析,仅提供DNS信息查询和缓存操作。
区域解析库由多个资源记录组成(Resource Record, RR),主要类型有A, AAAA, PTR, SOA, NS, CNAME, MX。
(linux.com.区域的部分资源记录文件)
SOA: Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录;
A:——internet Address,将FQDN映射为IP
AAAA:—将FQDN映射为IP IPv6
PTR:—-PoinTeR,将IP映射为FQDN
NS:—–Name Server,专用于标明当前区域的DNS服务器
CNAME:–Canonical Name,别名记录
MX:—–Mail eXchanger,邮件交换器
资源记录【语法】: name [TTL] IN RR_type value
(1) TTL可从全局继承;
(2) @可用于引用当前区域的名字;
(3) 同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮询方式响应;
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义,此仅表示通过多个不同的名字可以找到同一个主机;
name: 当前区域的名字,也可简写为@,例如“linux.com”
value: 有多部分组成
(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2) 当前区域管理员的邮箱地址;地址中不能使用@符号,用“.”替换例如jev.linux.com.
(3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
例如:
linux.com 86400 IN SOA dns1.linux.com. jev.linux.com. ( 2 ;serial number,序列号,十进制数字,不能超过10位,通常使用日期 86400 ;refresh time,刷新时间,每隔多久跟主服务器同步检查一次 3600 ;retry time,重试时间,应该小于refresh time 604800;expire time,过期时间 7200 ;negat answer ttl,否定答案的TTL值 )
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
注意:一个区域可以有多个NS记录;
例如:
linux.com. 86400 IN NS dns1 linux.com. NS dns2
注意:
(1)相邻的两个资源记录的name相同时,后续的可省略;
(2)对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;
name: 当前区域的名字;
value: 当前区域的某邮件服务器(smtp服务器)的主机名;
一个区域内, MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高;
例如:
linux.com. 86400 IN MX 0 mailsrv1 linux.com. MX 8 mailsrv2
注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录;
name: 某主机的FQDN,例如www.magedu.com.
value: 主机名对应主机的IP地址;
例如:
www.linux.com. 86400 IN A 1.1.1.1 bbs.linux.com. A 2.2.2.2 mx.linux.com. A 3.3.3.3
如果有多条,且域名与IP存在一定对应关系,可以通过下面方式写A记录:
$GENERATE 1-254 HOST$ A 1.2.3.$
即:HOST1 A 1.2.3.1、HOST2 A 1.2.3.2 . . . HOST254 A 1.2.3.254
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址:
*.linux.com. A 1.1.1.1
即:只要用户输入的后缀是.linu.com.,不管前面是什么,都解析为1.1.1.1
name: IP,有特定格式,把IP地址反过来写, 1.2.3.4,要写作4.3.2.1;而有特定后缀: in-addr.arpa.,所以完整写法为: 4.3.2.1.in-addr.arpa.
value: FQDN
例如:
4.3.2.1.in-addr.arpa. 86400 IN PTR www.linux.com.
如1.2为网络地址,可简写成:
4.3 86400 IN PTR www.linux.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写;
【CNAME】别名记录
name: 别名的FQDN
value: 真正名字的FQDN
例如:
www.linux.com. 86400 IN CNAME websrv
【AAAA记录】
name: FQDN
value: IPv6
例如
www.linux.com. 86400 IN AAAA fe80::20c:29ff:fe29:b0bf
子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权;如:
根域对com子域的授权
com域对linux.com子域的授权
辅助DNS服务器跟主服务器从主DNS服务器或其他辅助DNS服务器请求传输数据的过程;分为完全区域传送、增量区域传送;完全区域传送(AXFR),即每次同步传送区域所有数据;增量区域传送(IXFR),即每次只传送区域中改变的部分数据。
【相关链接】:DNS域名解析系统搭建
原创文章,作者:Jev Tse,如若转载,请注明出处:http://www.178linux.com/64885
评论列表(1条)
条理清晰,知识点全面,很优秀的文章,标题有问题哦,DNS,nds?细心点哦