1. 安装软件
yum install bind
yum install bind-chroot
yum install caching-nameserver
2、名词解释
正向解析:从域名到ip地址的解析过程。
反向解析:从ip地址到域名的解析过程。
DNS缓存: DNS服务器在解析客户机的请求时,如果本地没有该DNS的信息,则可以会询问其他DNS服务器,当其他域名服务器返回查询记过时,该DNS服务器就会将结果记录在本地的缓存中,成为DNS缓存。
区(zone):是DNS名称空间的一个连续部分,其中包一组存储在DNS服务器上的资源记录。
资源记录:DNS服务器的信息数据,按照类进行存储,能够即系客户端的DNS请求
区文件:包含区资源记录的文件,选择DNS服务器为授权服务器,管理该区域。
3、配置文件
主配置文件:
vi /var/named/chroot/etc/named/caching-nameserver.conf
options {
listen-on port 53 { 127.0.0.1; }; ---监听端口已经监听的地址
listen-on-v6 port 53 { ::1; };
directory "/var/named"; ---区域文件存储目录,即bind服务器的工作目录
dump-file "/var/named/data/cache_dump.db"; --缓存保存
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { localhost; }; -----允许本机发起查询 any :允许任何人向你发起查询
allow-query-cache { localhost; }; ---允许那些查询有缓存
};
logging {
channel default_debug {
file "data/named.run"; ---日志的保存路径
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; }; ---匹配客户端的地址 ,改成any
match-destinations { localhost; }; --- 改成any
recursion yes; ---允许递归,如果不递归,那么在找不到匹配的 域名解析是后,就会显示找不到,直接告诉你结果
include "/etc/named.rfc1912.zones"; ---此文件主要定义了根区域,localdomain区域,localhost区域,及反向解析区域/
};
说明:根区域是互联网中所有域名的开始,使用句点(.)表示,缓存服务器只有能够访问DNS根服务器才能担供正常的域名解析服务。
因此,在缓存域名服务器的named. caching-nameserver.conf文件中加载的named.rfc1912.zones文件对根区域进行了设置.
此文件中的type hint表示此区域类型是根区域;file "named.ca"设置区域文件名称,该文件保存在bind工作目录/var/named/中
[root@rac1 etc]# vi /var/named/chroot/etc/named/named.rfc1912.zones
zone "." IN {
type hint;
file "named.ca"; ---用来指定具体存放DNS记录的文件
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN { ---定义一个IP为127.0.0.*的反向域区
type master;
file "named.local";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
-----自定义一个域名 test.com
zone "test.com" IN {
type master;
file "test.com.zone";
allow-update { none; };
};
指定一个域名为test.com的正向区域
在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master: 表示定义的是主域名服务器
slave : 表示定义的是辅助域名服务器
hint: 表示是互联网中根域名服务器
设置 test.com的域名
cd /var/named/chroot/var/named
[root@rac1 named]# vi test.com.zone
$TTL 86400
@ IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS @
IN A127.0.0.1
IN AAAA ::1
@ IN NS www.test.com.
www IN A 1.1.1.1
上面的IN表示后面的数据使用的是INTERNET标准
[zone] IN SOA [主机名] [管理员email]
SOA表示授权开始
serial :本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
refresh:以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
retry:上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
expiry:过期时间,上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
minimum:缓存时间 没有指定生存期的数据,可以保存在数据库中的时间,及TTL
NS:表示是这个主机是一个域名服务器,
A:定义了一条A记录,即主机名到IP地址的对应记录
MX 定义了一邮件记录
CNAME:定义了对应主机的一个别名
PTR: Pointer的简写
通过测试域名解析到ip地址:
[root@rac1 named]# host www.test.com
www.test.com has address 1.1.1.1