DNS服务基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS服务基础相关的知识,希望对你有一定的参考价值。
DNS服务基础(一)
一、DNS简介
DNS(Domain Name System,域名系统),它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS使用TCP和UDP(无连接协议)口53,主要使用UDP,TCP协议使用服务器之间备份。对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
二、DNS域名结构
1、DNS数据库中的名称形成一个分层树状结构称为域命名空间。域名空间常见组织方式:根域-->顶级域-->第二层域-->子域-->主机。域名只是逻辑概念,并不代表计算机所在的物理地点。顶级域名TLD(Top Level Domain)已有265个,分为三大类:
1)、国家顶级域名nTLD:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国等;
2)、通用顶级域名gTLD:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门);
3)、基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
结构示意图如下:
2、全球共有十三组根域名服务器,其中10个在美国,另外3个分别在日本、荷兰和瑞典。
名称 管理单位及设置地点 IP地址
A (INTERNIC.NET) (美国,弗吉尼亚州) 198.41.0.4
B (美国信息科学研究所) (美国,加利弗尼亚州) 128.9.0.107
C (PSINet公司) (美国,弗吉尼亚州) 192.33.4.12
D (马里兰大学) (美国马里兰州) 128.8.10.90
E (美国航空航天管理局) (美国加利弗尼亚州) 192.203.230.10
F (因特网软件联盟) (美国加利弗尼亚州) 192.5.5.241
G (美国国防部网络信息中心) (美国弗吉尼亚州) 192.112.36.4
H (美国陆军研究所) (美国马里兰州) 128.63.2.53
I (Autonomica公司) (瑞典,斯德哥尔摩) 192.36.148.17
J (VeriSign公司) (美国,弗吉尼亚州) 192.58.128.30
K (RIPE NCC) (英国,伦敦) 193.0.14.129
L (IANA) (美国,弗吉尼亚州) 198.32.64.12
M (WIDE Project) (日本,东京) 202.12.27.33
3、DNS服务器以下几种类型
主DNS服务器:可创建区域的DNS服务器,区域数据也称为正本区域数据。在一个DNS服务网络中,可以建立多个主DNS服务器,这样可以提供DNS服务的容错性。
辅助DNS服务器:不创建区域,它的区域数据是从主DNS服务器复制来的,因此,区域数据只能读不能修改,也称为副本区域数据。当启动辅助DNS服务器时,辅助DNS服务器会和建立联系的主DNS服务器联系,并从主DNS服务器中复制数据。辅助DNS服务器在工作时,它会定期地更新副本区域数据,以尽可能地保证副本和正本区域数据的一致性。辅助DNS服务器除了可以从主DNS服务器复制数据外,还可以从其他辅助DNS服务器复制区域数据。在一个区域中设置多个辅助DNS服务器可以提供容错,分担主DNS服务器的负担,同时可以加快DNS解析的速度。
Cache-Only服务器(缓存服务器):Cache-Only服务器上不存在任何区域数据,它只帮助DNS客户机向其他DNS服务器进行查询,然后将查询到的数据存储在一份高速缓存Cache中,响应客户机的查询请求。Cache-Only 服务器只负责查询数据,当客户机查询数据时,如果Cache中存在数据,则Cache可以将结果快速反馈给客户机。
DNS转发服务器:DNS转发服务器是一种特殊类型的DNS服务器。在一个DNS网络中,如果客户机向指定的DNS服务器解析的域名不成功,DNS服务器就可以将客户机的解析请求发送给一台DNS转发服务器,顾名思义,DNS转发服务器就是将域名请求转发给其他DNS服务器。
4、DNS解析类型
术语:FQDN(full qualified domain name)完整主机名。由主机名与域名组成。如:www.163.com,www是主机名,163.com是域名
正向解析:FQDN解析为IP。
反向解析:解析IP为FQDN。
转发:将特定网络内容或者所有内容转发给特定DNS服务器解析。
子域授权:授权一个子域。
三、DNS查询类型以及工作原理
1、DNS查询类型
递归查询:DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
迭代查询:DNS服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
以上2种查询类型工作过程如下图:
2、根据上图,简述正向解析工作流程(也有反向解析)
1)、客户端发起一个DNS查询请求,如此浏览器地址栏输入www.163.com敲回车之后,浏览器并真正发起DNS请求,而是先查询本机的DNS缓存中是否有该域名对应的地址,有的话直接访问该地址,没有的话查询本机的hosts文件,如果本机的hosts文件中有该域名对应的地址,那么此刻客户端是不会发起dns请求的,但是通常情况下本地的host文件是空的,就继续第二部操作;
2)、经历是前面两次本机内部的查询之后发现并没有该域名对应的IP地址,于是客户端正式向本地的DNS服务器发起DNS查询请求;
3)、本地的DNS服务器收到这个查询请求后,会查询自己的缓存中以及自己的资源记录中是否有该域名对应的IP地址,如果在自己的缓存中以及本机的资源记录(下面阐述)中依然找不到该对应的IP地址,此时本地DNS服务器会把请求发送给根服务器(13组服务器)中的一台;
4)、其中一台根服务器收到这个请求后,会发送一个回复说,.com的域名解析服务我已经委派给.com这台域名服务器了,给你这个.com这台域服务器的地址,你去哪里查询吧,此时本地DNS服务器就进入了迭代查询;
5)、本地DNS服务器收到这个参考答案后,就会将它收到来自客户端的DNS请求再次发往.com域名服务器;
6)、负责.com域名解析服务器收到这个请求后,会回复说163.com的主区域服务器应该会知道答案,给你163.com主区域服务器的地址,你去它那里查询吧;
7)、本地DNS服务器收到这个参考答案后,就会将它收到来自客户端的DNS请求再次发往163.com主区域服务器,当163.com这个主区域服务器收到这个DNS请求后,查询自己的缓存以及自己的资源记录,终于找到本区域内有一个www的主机。于是将www.163.com对应的ip地址回复给本地DNS服务器;
8)、此时本地DNS服务器收到这个回复后,会将这条记录回复给客户端,同时将该记录写入到自己的缓存中,以便备查。
四、区域解析库与资源记录
1、区域解析库由多个资源记录(Resource Record,简称RR)组成。
2、资源记录类型以及应用
1)、资源记录常见类型:
SOA(Start Of Authority,起始授权机构),一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录。
A(internet Address,主机),FQDN解析为IPv4。
AAAA(主机),FQDN解析为IPv6。
NS(Name Server,名称服务器),标明当前区域的DNS服务器。
MX(Mail eXchanger,邮件交换器),邮件 Exchange Server DNS 名称的首选项值。
CNAME(Canonical Name,别名记录),规范名称
PTR(pointer,DNS反向),是一个指针记录,用于将一个IP地址映射到对应的主机名,也可以看成是A记录的反向,通过IP访问域名,原来是通过域名访问IP。
2)、资源记录定义的格式:
语法:name(名称) [TTL](时间) IN(互联网) rr_type(类型) value
注意以下几点:
(1) TTL可从全局继承;
(2) @可用于引用当前区域的名字;
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应;
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机而已;
举例:
SOA:
name: 当前区域的名字,例如“baidu.com.”;
value: 有多部分组成(主名称服务器 DNS 名称、 序列号、刷新间隔、重试间隔、过期时间、最小 TTL)
(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2) 录前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如ex.baidu.com;
(3) (主从服务协调属性的定义以及否定的答案的统一的TTL)
例如:
baidu.com. 86400 IN SOA ns.baidu.com. nsadmin.baidu.com. (
2016082601 ;序列号
1H ;刷新时间
20M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
A:
name: 某主机的FQDN,例如www.baidu.com.
value: 主机名对应主机的IP地址;
例如:
www.baidu.com. IN A 3.3.3.3
www.baidu.com. IN A 3.3.3.3
mx1.baidu.com. IN A 3.3.3.3
mx2.baidu.com. IN A 3.3.3.3
注意:避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址;
*.baidu.com. IN A 3.3.3.4
baidu.com. IN A 3.3.3.4
NS:
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如ns.baidu.com.;
例如:
baidu.com. IN NS ns1.baidu.com.
baidu.com. IN NS ns2.baidu.com.
注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略;
(2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;
(3)一个区域可以有多个NS记录
MX:
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名;一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高;
例如:
baidu.com. IN MX 10 mx1.baidu.com.
IN MX 20 mx2.baidu.com.
注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录;
CNAME:
name: 别名的FQDN
value: 正工名字的FQDN;
例如:
web.baidu.com. IN CNAME www.baidu.com.
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.baidu.com
简写成:4 IN PTR www.baidu.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写;
本文出自 “一万小时定律” 博客,请务必保留此出处http://daisywei.blog.51cto.com/7837970/1842906
以上是关于DNS服务基础的主要内容,如果未能解决你的问题,请参考以下文章