DNS: Domain Name Service,协议(C/S, 53/udp, 53/tcp);应用层协议;
DNS基本原理
1当客户机Client需要访问某个域名时,会首先查看本地hosts文件查询相关记录,如果有则直接解析。
2如果在本机hosts文件中没有找到相关记录,则将请求发送至本地DNS域名服务器。
3本地DNS服务器接收到请求后会先查询本地缓存localCache如果缓存中有该项记录则直接返回结果。
4如果本地DNS服务器在LocalCache中未查询到相关信息则本地域名服务器就会直接把请求发送给根域名服务器。
5根服务器通过请求返回给给本地DNS服务器一个根子域负责相关域的服务器地址。
6本地DNS服务器给根子域的DNS服务器发送请求,相关域服务器在返回给本地DNS一个相关子域服务器然后层层迭代查询。最终得到记录
7本地DNS 服务器把返回的发送给客户端,并保存在本地缓存中以备下一次使用。
8域名解析完成
DNS服务器的类型:
主DNS服务器
辅助DNS服务器
缓存DNS服务器
转发器
主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;
从DNS服务器:从主DNS服务器或其它的从DNS服务器那里“复制”(区域传递)一份解析库;
序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列递增;
刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;
重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;
过期时长:从服务器始终联系不到主服务器时,多久多后放弃从服务器角度,停止提供服务;
通知机制:即使刷新时间没到,依然会回提示辅助DNS有数据更新;
区域传送:
全量传送:传送整个解析库
增量传送:传递解析库变化的那部分内容
一次完整的查询请求经过的流程:
Client --> hosts文件 --> DNS Service
Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) -->
SOA:Start OfAuthority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录;
A:internet Address,作用,FQDN --> IP
AAAA: FQDN --> 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) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机而已;
安装环境 centos6.6 主DNS:server 辅助DNS:server2 子域DNS:centos6
BIND的安装配置:
dns服务,程序包名bind,程序名named
程序包:
bind 提供服务
bind-libs 提供库文件
bind-utils 测试服务器工具
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones,
/etc/rndc.key
解析库文件:/var/named/ZONE_NAME.ZONE
根区域文件:/var/named/named.ca
配置缓存服务器:
修改主配置文件:/etc/named.conf
[root@server named]# vim /etc/named.conf zone "yangbb123.com." IN { type master; file "yangbb123.com.zone"; }; zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.zone"; }; #添加此两个zone
编辑正向解析配置文件:
[root@server named]# vim /var/named/yangbb123.com.zone $TTL 1D @ IN SOA ns1.yangbb123.com. admin.yangbb123.com. ( 2015092604 #序列号 2H #刷新时间 5M #重试时间 2D #过期时间 1D #否认最小TTL时间 ) @ IN NS ns1 @ IN NS ns2 @ IN MX 10 mail ns1 IN A 192.168.1.121 ns2 IN A 192.168.1.122 www IN A 192.168.1.121 www IN A 192.168.1.122 mail IN A 192.168.1.121 ftp IN A 192.168.1.121 web IN CNAME www
编辑反向解析配置文件:
[root@server named]# vim 192.168.1.zone $TTL 1D @ IN SOA ns1.yangbb123.com. admin.yangbb123.com.( 2015092601 2H 5M 2D 1D ) @ IN NS ns1.yangbb123.com. @ IN NS ns2.yangbb123.com. 121 IN PTR ns1.yangbb123.com. 122 IN PTR ns2.yangbb123.com. 121 IN PTR www.yangbb123.com. 121 IN PTR mmai.yangbb123.com 121 IN PTR ftp.yangbb123.com.
查看两个配置文件的权限是否为640以及属主:属组--root:named
通过命令来检查是否有语法错误:
[root@server named]# named-checkconf #检查主配置文件 [root@server named]# named-checkzone yangbb123.com yangbb123.com.zone #检查区域文件语法 zone yangbb123.com/IN: tech.yangbb123.com/NS 'dns.tech.yangbb123.com' (out of zone) has no addresses records (A or AAAA) zone yangbb123.com/IN: loaded serial 2015092604 OK
没有问题,就重启服务 services named restart
dig [-t type] name [@SERVER] [query options]
查询选项:
+[no]trace:跟踪解析过程
+[no]recurse:进行递归解析
[root@server named]# dig -t NS yangbb123.com @192.168.1.121 #DNS的解析 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t NS yangbb123.com @192.168.1.121 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6725 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2 ;; QUESTION SECTION: ;yangbb123.com. IN NS ;; ANSWER SECTION: yangbb123.com. 86400 IN NS ns2.yangbb123.com. yangbb123.com. 86400 IN NS ns1.yangbb123.com. ;; ADDITIONAL SECTION: ns1.yangbb123.com. 86400 IN A 192.168.1.121 ns2.yangbb123.com. 86400 IN A 192.168.1.122
[root@server named]# dig -x 192.168.1.121 @192.168.1.121 #反向解析正常 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 192.168.1.121 @192.168.1.121 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50583 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;121.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 121.1.168.192.in-addr.arpa. 86400 IN PTR ns1.yangbb123.com. 121.1.168.192.in-addr.arpa. 86400 IN PTR www.yangbb123.com. 121.1.168.192.in-addr.arpa. 86400 IN PTR mmai.yangbb123.com.1.168.192.in-addr.arpa. 121.1.168.192.in-addr.arpa. 86400 IN PTR ftp.yangbb123.com. ;; AUTHORITY SECTION: 1.168.192.in-addr.arpa. 86400 IN NS ns1.yangbb123.com. 1.168.192.in-addr.arpa. 86400 IN NS ns2.yangbb123.com.
此次DNS的正向和方向都解析都在正常,后续会有DNS的主从以及子域授权的配置。