一、配置基本的DNS 服务器(包含正向解析和反向解析)
域名:abc.com
服务器IP:10.1.2.11
1. 编辑主配置文件/etc/named.conf
----------------------------------------------------
options {
listen-on port 53 { any; }; <-- 改为any,监听所有本地IP地址
listen-on-v6 port 53 { ::1; };
directory "/var/named";
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";
allow-query { any; }; <-- 允许任何人查询
recursion yes;
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
----------------------------------------------------
2. 配置区域声明文件/etc/named.rfc1912.zones,添加一个域及其反向解析域
----------------------------------------------------
zone "abc.com" IN {
type master;
file "data/master.abc.com.zone";
};
zone "2.1.10.in-addr.arpa" IN {
type master;
file "data/master.1.1.10.in-addr.arpa.zone";
};
----------------------------------------------------
3. 配置区域数据库文件
正向解析域 /var/named/data/master.abc.com.zone
----------------------------------------------------
$TTL 3600
@ IN SOA dns.abc.com. root.abc.com. (
2014051901 <-- 版本号,下面是各种时间,如果不做主从结构,这些可以任意写
30 <-- slave 主动联系master的间隔
60 <-- slave 从master更新失败的重试间隔
90 <-- 在无法联系master的情况下多久slave停止服务
3600 ) <-- 对否定回答的缓存时间
IN NS dns.abc.com. <-- 指定本域中权威DNS服务器
dns IN A 10.1.1.1 <-- dns 服务器的地址
mail IN A 10.1.1.1 <-- A记录就是主机的IP地址Address
host1 IN A 10.1.1.11
----------------------------------------------------
反向解析域 /var/named/data/master.1.1.10.in-addr.arpa.zone
----------------------------------------------------
$TTL 86400
@ IN SOA dns.abc.com. root.abc.com. (
2014051901
30
60
90
3600 )
IN NS dns.abc.com. <-- 指定本域中权威DNS服务器
11 IN PTR host1.abc.com.
----------------------------------------------------
4. 启动服务 service named start
第一次启动该服务的时,会创建文件/etc/rndc.key,大概需时1分半钟,如果不想等待,可以使用下面的技巧绕过去:
[root@mob ~]# mv /dev/random /dev/random.orig <-- 备份原来的random 文件
[root@mob ~]# cp -a /dev/urandom /dev/random <-- 复制一份urandom 来做random
[root@mob ~]# service named start <-- 然后再次启动DNS 服务器,会很快完成
[root@mob ~]# mv -f /dev/random.orig /dev/random <-- 恢复random
5. 测试
把系统的域名服务器改为刚刚创建的域名服务器
vi /etc/resolv.conf
nameserver 10.1.1.1
用命令nslookup 测试
nslookup dns.abc.com
、配置DNS转发:
我们配置的DNS是只能解析我们定义的zone的,我们没有定义的是不能解析的。
配置DNS转发就可以解析其他互联网上的域名了,前提是这个域名在互联网中的确在使用,也就是说这个域名已经被某个DNS服务器解析了。
vim /etc/named.conf //在options{} 里面增加
forward first;
forwarders { 8.8.8.8; };
这两行就是用来配置转发的,该DNS服务器不能解析的域名会转发到8.8.8.8这个DNS服务器上去解析。