DNS基本工作原理,以及正反向解析和主从同步
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析. (C/S架构, 53端口/udp,53/tcp),应用层协议.
DNS查询类型:
递归查询:只发出一次请求就能得到最终结果的查询
迭代查询:查询时得到的是参考性答案,也可能是最终答案;
名称服务器:域内负责解析域内的名称的主机
根服务器:全球共13组根服务器
解析类型:
正向解析:FQDNàIP
反向解析:IPàFQDN
正反向解析是两个不同的名称空间,是两个不同的解析树
注:FQDN :fullqualified domain name:完全合格域名 如:www.magedu.com
DNS服务器的类型:(主DNS服务器, 从DNS服务器, 缓存DNS服务器, 转发器)
主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;
从DNS服务器:从主DNS服务器或其它的从DNS服务器那里“复制”(区域传递)一份解析库;
序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列递增;
刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;
重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;
过期时长:从服务器始终联系不到主服务器时,多久多后放弃从服务器角度,停止提供服务;
区域传送:
全量传送:传送整个解析库
增量传送:传递解析库变化的那部分内容
通知机制:主服务器发生改变后可以发生通知给从服务器;
缓存DNS服务器
DNS的工作原理及过程:
1、客户机提出域名解析请求,首先查看hosts文件,如果hosts文件中没有配置并将该请求发送给本地的域名服务器。
2、当本地的域名服务器收到请求后,先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
3、如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
4、本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
5、重复第四步,直到找到正确的纪录。
6、本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
解析库中资源记录: resource record:RR
资源记录的记录类型概念:
SOA:start of authority:起始授权记录:定义一个区域解析库有且仅能有一个SOA记录,必须出现在解析库第一条,当前区域解析库由谁负责;
A:insernet address:作用,将FQDN解析为IP地址
AAAA:将FQDN解析为IPv6地址;
PTR:pointer:指针,实现IP解析为FQDN
NS:name server:专用于当前区域的DNS服务器,解析的是局域网IP和电脑名称
CNAME: canonlical name,别名记录;
MX:mail exchanger:邮件交换器
资源记录定义的格式:
语法:name [TTL可缓存时长] IN rr-type资源记录类型 value结果
注意:
1,TTL可从全局继承;
2,@可用于引用当前区域的名字:
3,同一个名字可以有多个不同的值,单需要通过多条记录来实现;此时DNS服务器轮询响应;
4,同一个值也可能有多个不同的名字,通过多个不同的名字指向同一个值定义;仅表示通过多个不同的名字可以找到同一个主机;
SOA:
name: 当前区域的名字:“magedu.com.";
value:有多部分组成
1,当前区域的主DNS服务器的FQDN,可以使用当前区域的名字;
2,当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用点号替代,如:linedu.magedu.com而不是linedu@magedu.com
3,使用(主从服务器协调属性的定义,以及否定答案的同一的TTL值)
magedu.com 86400 IN SOA ns.magedu.com. nsadmin.magedu.com.(
201504201 ;(版本序列号)
2H ;刷新时间
10M : 10分钟重试时间
1W :1周,过期时间
1D :否定答案的TTL值
)
NS:
name:当前区域的名字
value:当前区域的某DNS的名字:ns.magedu.com. :一个区域可以有多个NS记录;
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
注意:
1,相邻的两个资源记录的name相同时,后续的可省略
2,对于NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;
3,一个区域可以有多个NS记录:
MX:
name:当前区域的名字
value:当前区域的某邮件服务器的(smtp服务器)的主机名
一个区域内,MX记录可以有多个,但每个记录的value之前应该一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:
1,对于MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录;
A:
name: 某主机的FQDN: www.magedu.com.
value:此主机对应的IP地址;
如: www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 1.1.1.2
注意:
1,可使用泛域名解析
*.magedu.com. IN A 1.1.1.4
magedu.com. IN A 1.1.1.4
避免用户写错名称时给错误答案,可以通过泛域名解析进行解析到某特定地址;
AAAA:
name:FQDN
value:IPV6
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.magedu.com
可简写为: 4 INPTR www.magedu.com
注意:网络地址以及后缀可省略;主机地址依然需要反着写
CNAME:
name:别名的FQDN
value:正式名字的FQDN
web.magedu.com. IN CNAME www.magedu.com. :前面是后面的别名
BIND应用:
BIND:定义一个服务器;定义解析库,资源记录组成;
RR类型:资源解析类型: A,PTR,NS,MX,CNAME,SOA,AAAA
语法格式: name TTL IN rr-type value
子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库中进行授权;
BIND的安装配置:
DNS服务,程序包叫bind,程序名叫named
yum list all bind*
bind:工作方式:
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf,/etc/named.rfc1912.zones, /etc/rndc.key
解析库文件:默认为空,
bind数据文件: /var/named/zone_name.zone
注意:
1,一台物理服务器可同时为多个区域提供解析:/var/named/named.ca
2,必须要有根区域文件;
3,应该有两个甚至更多(如果包括ipv6的)实现本地localhost和本地回环地址(127.0.0.1)的解析库;/var/named/named.localhost ; named.loopback
rndc:remote name domain controller:远程名称域控制器,清理缓存,查看解析状态等;,默认与bind安装在同一主机,且只能127.0.0.1来链接named进程;提供辅助性的管理功能;默认953/tcp端口;
正向解析服务器配置:
1,先配置为缓存名称服务器
缓存名称服务器配置:
vim /etc/named.conf
主DNS服务器:
1,在缓存基础上加入zone的定义:
在主配置文件中定义区域如下:
type{master(主)|slave(从)|hint(根)|forward(转发)}
vim /etc/named.rfc1912.zones:
检查语法错误:#named-checkconf
2,定义区域解析库文件;
cd /var/named
vimmagedu.com.zone
named-checkzone "magedu.com" /var/named/magedu.com.zone:检查区域以及配置文件是否有语法错误
ps aux |grep named
ll /etc/named.conf -l
chmod 640magedu.com.zone
chwon :namedmagedu.com.zone
service namedrestart
rndc status
service named reload :重载配置文件
或者:rndcreload
vim /etc/resolv.conf:默认解析服务器IP配置,如果不想写@192.168.1.12,就将此文件内容中IP替换为192.168.1.12
dig -t Awww.magedu.com @192.168.1.12
测试命令:dig,dig用于测试DNS系统,不会查询hosts文件进行解析;
dig -t [type] name [@server] [query options]
query options:
查询选项:
+[no]trace:跟踪解析过程;dig -tA www.baidu.com +trace
+[no]recurse:进行递归解析
测试反向解析:
dig -x ip @server
模拟区域传送:
dig -t axfr zone_name @server
dig -t axfr magedu.com @192.168.1.12 :通过服务器全量传送
dig -t axfr 1.168.192.in-addr.arpa @192.168.1.12 :通过服务器全量传送
dig -t ixfr :增量传送
反向区域配置:
区域名称:网络地址的反写,.in-addr.arpa.
192.168.1.-->1.168.192.in-addr.arpa.
1,定义区域:
vim/etc/named.rfc1912.zones
2,区域解析库文件:
注意:不需要MX,A,AAAA记录:
cd /var/named/
named-checkzone “1.168.192.in-addr.arpa" 1.168.192.zone
named-checkconf
serive namedreload
tail /var/log/messages
dig -x 192.168.1.12 @192.168.1.12
DNS服务器主从复制:
配置从服务器:只需配置区域配置文件即可:
yuminstall bind -y
1,配置为缓存服务器:
vim /etc/named.conf
listen-on port 53 {127.0.0.1 ; }; 修改为listen-on port 53 { 172.16.1.11; 127.0.0.1; };
allow-query { any;}; local改为any
2,配置为正向的从名称服务器:
vim/etc/named.rfc1912..zones
zone"zone_name" IN {
type slave;
masters {172.16.100.11; };
file"slaves/magedu.com.zone";
};
主从复制:
1,应该是一台独立的名称服务器;
2,主服务器的区域解析库文件中必须有一条NS记录是指向从服务器的
3,从服务器只需定义区域,而无需提供解析库文件;解析库文件应该放置于/var/named/slaves;
4,主服务器的允许从服务器做区域传送
5,主从服务器时间应该同步:可通过NTP进行
6,bind程序的版本应该保持一致,即使不一致,应该从高主低
反向从服务器:
在从服务器172.16.100.12上编辑:
vim /etc/named.rfc1912.zones
zone"100.16.127..in-add.arpa" IN{
type slave;
masters{172.16.100.11; };
file"slaves/172.16.100.zone";
};
named-checkconf
rndc reload
rndc: remote name domaincontroller:远程名称域控制器,清理缓存,查看解析状态等;,默认与bind安装在同一主机,且只能127.0.0.1来链接named进程;提供辅助性的管理功能;
rndc --> 953/tcp
rndc command
command:
reload:通知named重新读取主配置文件和区域解析库文件;
reload zone:只重读区域解析库文件
retransfer zone:手动启动区域传送,不过序列号是否增加
notify zone :重新对区域传送发通知;
reconfig:重装主配置文件;
querylog:开启或关闭查询日志:
trace :增加调试级别
trace level:指定调试级别;
rndc querylog
rndc status
rndc querylog
rndc status
tail /var/log/messages
rndc tarce 5 :指定级别为5
rndc tarce 0 :关闭调试;生成环境应该关闭;
本文出自 “前进的轨迹” 博客,请务必保留此出处http://lisoy79.blog.51cto.com/10836537/1735611
原文:http://lisoy79.blog.51cto.com/10836537/1735611