DNS域名类型:
1) 组织域,用于某些类型组织的域名,例如com(商业机构),gov(政府部门),edu(教育)
2) 地区域,用于某些地势的域名,例如cn(中国),jp(日本),hk(香港)
3) 反向域,反向解析的域名,例如 1.16.172.in-addr.arpa
DNS Domain Space , 域名空间
域名空间为一颗逻辑的倒置树,最顶层为 根域 ”.” , 下面为顶级域 ,再下面为二级域,三级域... ,分层的好处在于减少DNS服务器的压力.
当进行域名查询时也是自上而下,先找根域->顶级域->二级域所负责的DNS服务器,由该服务器给出答案
DNS查询类型:
递归查询:一次查询必须要有回应,通常是PC机向DNS服务器发出的查询UDP/53
迭代查询:需要进行多次查询,因为每次DNS服务器给的都是参考答案 TCP/53,通常为DNS服务器向根域去查询.
DNS Server 回应类型:
肯定回答:找到了域名,有结果,则是肯定回答
否定回答:没有找到域名,则是无结果,也需要缓存,减少查询压力
权威回答:查询的结果为负责该域名区域的NAME Server的回复则是权威回答
非权威回答:查询的结果为DNS Server的缓存结果,则为非权威回答
DNS解析类型:
正向解析: 域名(FQDN) -> IP
反向解析:IP->域名(FQDN),通常是基于网段做反向解析
注意:正向解析与反向解析为两颗完全不相同的解析树.
DNS服务器角色类型:
主DNS服务器,维护所负责区域的域名解析的服务器,需要上级域授权.
从DNS服务器,也称为辅助DNS,用于提供备份和分担主DNS的压力,不需要管理员维护解析库,使用区域同步机制同步主DNS的解析库.
缓存DNS服务器,没有要负责解析的区域,解析库中没有区域(除了localhost),所有的解析都去找 “根域” ,将解析后的结果缓存至本地.
转发器服务器,定义不属于本地负责的区域转发至哪一台DNS解析,而不去找 根域 ,或则定义所有的区域转发至哪一台DNS解析.这就是递归查询了,所以被转发需要支持递归.
DNS客户端的查询过程:
1. 假设Client请求www.163.com的域名,首先ClIent查自己的Host文件(/etc/hosts)看是否有定义,若有则直接返回结果。
2. Client查询自己的本地缓存,看是否有过之前的解析记录。
3. Client向/etc/resolve.conf中定义的DNS服务器发出递归查询,只发一次查询,等待DNS Server的回答。
4. DNS Server 查询自己的DNS缓存看是否有过之前的查询记录缓存。
5. DNS Server向 13组 “根域” 服务器查询域名www.163.com. ,根域发现该域名在自己的子域.com下,所以根服务器返回负责 ”com.”域的NS记录与A记录
6. DNS Server根据根域服务器返回的NS、A记录,找到 负责解析 “con.” 域的服务器并发出请求,查询www.163.com域名,负责解析.com域的DNS服务器发现163.com域是自己的子域,返回163.com. 区域的NS记录与A记录
7. DNS Server根据.com域返回的NS、A记录,找到该区域负责解析的DNS服务器并发出请求,该区域DNS服务器查找自己的解析库检查是否存在www主机,返回结果
8. 这就是迭代查询的过程,DNS Server进行多次查询,收到的都是参考答案,如果还有三级域,则继续迭代查询。
解析库:
解析库由多条资源记录(Resource Record)组成,通过这些RR记录IP与域名之间的关系,并且标明该资源的类型、用途。
(1) A:地址记录(Address),返回域名指向的IP地址。
(2) NS:域名服务器记录(Name Server),返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
(3) MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。
(4) CNAME:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转,详见下文。
(5) PTR:逆向查询记录(Pointer Record),只用于从IP地址查询域名,详见下文。
(6) SOA :开始授权记录(Star of Authority),定义该域的主DNS服务器,必须位于首部。
解析库在/etc/named.conf 、 /etc/named.rfc1912.zones中定义,存放于/var/named/中
解析库的语法格式:
Name IN type value
@ 表示为当前区域名称,所以邮箱中的@用 ’ . ’ 表示
若多条记录的name名称相同,则后续name可省略
SOA记录:
Name : 为当前区域的FQDN名
Value : 由主DNS Server的NS记录、管理员邮箱、区域传送选项 多部分组成
例如:
@ IN SOA ns1.huying.com. admin.huying.com. ( 201801 ; 同步序列号 1H ;刷新时间 30M ;重试时间 1D ;过期时间,主DNS多久之后还为回复,从DNS也放弃解析 1D ;否定答案的缓存时间 )
|
NS记录:
Name : 当前区域的名称
Value : 负责该区域的DNS Server FQDN名
NS记录需要有对应的A记录解析该DNS Server FQDN
例如:
@ IN NS ns1.huying.com. IN NS ns2.huying.com. ns1.huying.com. IN A 192.168.1.1 ns2.huying.com. IN A 192.168.1.2 |
MX记录:
Name: 当前区域的名称
Value: priority 当前区域接受邮件服务器的FQDN名
Priority 当前区域的多个时,越低越优先处理
例如:
huying.com. IN MX 10 mx1.huying.com. IN MX 20 mx2.huying.com. mx1.huying.com. IN A 192.168.1.1 mx2.huying.com. IN A 192.168.1.2 |
A记录:
Name: FQDN名
Value: IP
例如
ns1.huying.com. IN A 172.16.1.1 ns2.huying.com. IN A 172.16.1.2 |
CNAME记录:
Name: 别名的FQDN名
value: 正名的FQDN名
例如
web.huying.com IN CNAME www.huying.com |
PTR记录:
name: Network_Address.in-addr.arpa
value: FQDN
例如
1.16.172.in-addr.arpa IN PTR www.huying.com. |
DNS测试工具:dig,host,nslookup,query…
这些工具在bind-utils RPM包中都有提供
dig
dig -t querry_type name @server #-查询指定类型的记录 -t 表示查询的类型 name 为需要查询的域名 @Server 使用哪个DNS服务器进行解析 dig -x ip_addr #根据IP地址进行反向解析 dig -t AXFR name #测试全量区域传送 dig +trace name #对解析过程进行跟踪 dig +[no]recurse name #使用递归或者非递归解析 |
host
host -t type name Server #指定类型解析
nslookup
…
原文地址:http://blog.51cto.com/jying/2115483