1、什么是DNS?
DNS是计算机域名系统或域名解析服务器(Domain Name Server或Domain Name System) 的缩写,它是由解析器以及域名服务组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP。
域名解析分为正向解析和反向解析:
正向解析式根据主机名称查找对应的IP地址 主机名--->IP
反向解析是根据IP地址查找对应的主机域名 IP --->主机名
全球有13台根域名服务器,主根服务器在美国。
根: .
顶级域:.com .net .org .edu .cn .uk ...
二级域:.com.cn .net.com
三级域:.sina.com.cn
DNS查询方式有两种:迭代查询和递归查询。
迭代查询的过程
A-->B A向B请求,B不知道但B说C可能知道
A-->C A又向C请求,C不知道但D可能知道
A-->D 于是A又向D请求
A<--D D将信息告诉A,最终A找到需要的信息
递归查询过程
A-->B-->C-->D A向B请求,B不知道B向C请求,C不知道向D请求
A<--B<--C<--D D将信息告诉C,C将信息告诉B,B将信息告诉A,最终A找到需要的信息
DNS服务器可以分为三种:缓存域名服务器(向其他域名服务器查询的结果缓存到本地)
主域名服务器(特定DNS区域的官方服务器)
从域名服务器(解析记录来源于主域名服务器)。
2、构建缓存域名服务器
本人的实验是在centos6.4上操作。主域名服务器IP地址192.168.0.104,从域名服务器IP地址192.168.0.106。
安装DNS服务软件,BIND域名服务:yum install -y bind
[root@server ~]# yum install -y bind
备份并清空主配置文件/etc/named.conf
[root@server ~]# cp /etc/named.conf /etc/named.conf.bak [root@server ~]# > /etc/named.conf
编辑配置主配置文件:vim /etc/named.conf
[root@server ~]# vim /etc/named.conf options { directory "/var/named"; //存放解析信息的数据库目录 }; zone "." IN { //根域解析配置 type hint; file "named.ca"; //根域数据文件 };
确认根域的区域数据文件:cat /var/named/named.ca
启动named服务:/etc/init.d/named start
在客户机中验证缓存域名服务器
C:\Users\Administrator>nslookup 默认服务器: dns1.gzgwbn.com.cn Address: 211.162.62.1 > server 192.168.0.104 默认服务器: [192.168.0.104] Address: 192.168.0.104 > www.baidu.com 服务器: [192.168.0.104] Address: 192.168.0.104 非权威应答: 名称: www.a.shifen.com Addresses: 61.135.169.105 61.135.169.125 Aliases: www.baidu.com
知识点:NS域名服务器记录,MX邮件交换记录,A正向解析,PTR反向解析,CNAME别名记录
3、构建主域名服务器
安装DNS服务软件,BIND域名服务:yum install -y bind
备份并清空主配置文件的内容
[root@server ~]# cp /etc/named.conf /etc/named.conf.bak [root@server ~]# > /etc/named.conf
编辑主配置文件:vim /etc/named.conf
[root@server ~]# vim /etc/named.conf options { directory "/var/named"; }; zone "." IN { type hint; file "named.ca"; }; zone "test.com" IN { //配置域名,正向解析 type master; //类型是主域名服务器 file "test.zone"; //解析数据文件 }; zone "0.168.192.in-addr.arpa" IN { //反向解析 type master; file "192.168.zone"; };
改变配置文件所属主:chown named /etc/named.conf
初始化解析记录:cd /var/named/;dig -t NS . > named.ca
编辑正向解析数据文件/var/named/test.zone
[root@server ~]# cd /var/named/ [root@server named]# vim test.zone $TTL 86400 @ IN SOA test.com. admin.test.com. ( 2114191601 1H 10M 7D 1D ) @ IN NS test.com. test.com. IN A 192.168.0.104 www IN A 192.168.0.2
编辑反向解析数据文件/var/named/192.168.zone
[root@server named]# vim 192.168.zone $TTL 86400 @ IN SOA test.com. admin.test.com. ( 2013081601 1H 10M 7D 1D ) @ IN NS test.com. 104 IN PTR test.com
检测文件:named-checkconf
检测正解析、反解析文件named-checkzone
[root@server named]# named-checkzone "test.com" /var/named/test.zone //正向解析文件检测 zone test.com/IN: loaded serial 20131081601 OK [root@server named]# named-checkzone "0.168.192.in-addr.arpa" /var/named/192.168.zone //反向解析文件检测 zone 0.168.192.in-addr.arpa/IN: loaded serial 2013081601 OK
生成 rndc.key文件
[root@server named]# rndc-confgen -r /dev/urandom -a //生成文件 wrote key file "/etc/rndc.key" [root@server named]# chown named:named /etc/rndc.key
启动named:/etc/init.d/named start
验证主域名服务器
[root@server named]# nslookup > server 192.168.0.104 //指定域名服务器 Default server: 192.168.0.104 Address: 192.168.0.104#53 > www.test.com //正向解析 Server: 192.168.0.104 Address: 192.168.0.104#53 Name: www.test.com Address: 192.168.0.2 > 192.168.0.104 //反向解析 Server: 192.168.0.104 Address: 192.168.0.104#53 104.0.168.192.in-addr.arpa name = test.com.0.168.192.in-addr.arpa.
配置DNS转发
[root@server named]# vim /etc/named.conf options { directory "/var/named"; //添加下面两条语句 forward first; forwarders { 8.8.8.8; }; //指定转发到什么域名服务器上 };
3、构建从域名服务器
安装DNS软件:yum install -y bind
备份并清空主配置文件的内容:cp /etc/named.conf /etc/named.conf.bak
> /etc/named.conf
编辑配置文件:vim /etc /named.conf
root@client ~]# vim /etc/named.conf options { directory "/var/named"; }; zone "." IN { type hint; file "named.ca"; }; zone "test.com" IN { type slave; //从域名服务器 file "slaves/test.zone"; //数据文件存放目录 masters { 192.168.0.104; }; //主域名服务器IP }; zone "0.168.192.in-addr.arpa" IN { type slave; file "slaves/192.168.zone"; masters { 192.168.0.104; }; };
生成rndc.key文件
[root@client slaves]# rndc-confgen -r /dev/urandom -a wrote key file "/etc/rndc.key" [root@client slaves]# chown named:named /etc/rndc.key
从域名服务器启动named: /etc/init.d/named start
查看是否成功生成文件
[root@client ~]# ll /var/named/slaves/ 总用量 8 -rw-r--r--. 1 named named 345 4月 27 11:06 192.168.zone -rw-r--r--. 1 named named 375 4月 27 10:19 test.zone
从服务器上测试
[root@client ~]# nslookup > server 192.168.0.106 Default server: 192.168.0.106 Address: 192.168.0.106#53 > www.test.com Server: 192.168.0.106 Address: 192.168.0.106#53 Name: www.test.com Address: 192.168.0.2 > 192.168.0.104 Server: 192.168.0.106 Address: 192.168.0.106#53 104.0.168.192.in-addr.arpa name = test.com.0.168.192.in-addr.arpa.
也可这样测试dig @127.0.0.1 www.test.com
4、加快主从同步
在localhost.zone中添加一行:
[root@server named]# vim test.zone //添加下面一行 ftp IN CNAME www
在主域名服务器上配置:vim /etc/named.conf #在test1.com的zone中增加两行
[root@server named]# vim /etc/named.conf zone "test.com" IN { type master; file "test.zone"; //添加下面两行 notify yes; also-notify { 192.168.0.106; }; //添加从服务器IP };
重启主域名服务:/etc/init.d/named restart
验证从服务器中的文件是否同步
[root@client ~]# cat /var/named/slaves/test.zone $ORIGIN . $TTL 86400 ; 1 day test.com IN SOA test.com. admin.test.com. ( 2013081601 ; serial 3600 ; refresh (1 hour) 600 ; retry (10 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS test.com. A 192.168.0.104 $ORIGIN test.com. ftp CNAME www //已同步 www A 192.168.0.2
同步时间 :ntpdate s1a.time.edu.cn
[root@client ~]# ntpdate s1a.time.edu.cn 27 Apr 11:22:32 ntpdate[1525]: adjust time server 202.112.10.60 offset 0.002257 sec
转载于:https://blog.51cto.com/linuxlovers/1385125