CentOS6 配置DNS服务器
yum安装bind
- #yum update
- #yum -y install bind* caching-nameserver
- # rpm -qa bind*
bind-dyndb-ldap-0.1.0-0.9.b.el6.x86_64
bind-libs-9.7.0-5.P2.el6_0.1.x86_64
bind-sdb-9.7.0-5.P2.el6_0.1.x86_64
bind-utils-9.7.0-5.P2.el6_0.1.x86_64
bind-chroot-9.7.0-5.P2.el6_0.1.x86_64
bind-9.7.0-5.P2.el6_0.1.x86_64
bind-devel-9.7.0-5.P2.el6_0.1.x86_64
#查看BIND版本,我的是9.7.0的
修改hostname为域名形式:
1.#hostname dns.xx.com
2.#vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dns.xx.com
GATEWAY=192.168.10.1
下面以xx.com这个二级域名来建立一个域名服务器:
#mv /etc/named.conf /var/named/chroot/etc/named/named.conf
#vi /var/named/chroot/etc/named/named.conf
options {
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";
forwarders { 202.102.24.35;8.8.8.8; };
allow-query { any; };
};
全局配置(options )
options 语句在每个配置文件中只有一个。如果出现多个options, 则第一个options 的配置有效,并会产生一个警告信息。
directory "/var/named";
zone文件的存放目录,这里的/var/named 是相对目录,在chroot环境下/var/named目录下。
allow-query { any; };
任何地址都解析
forwarders { 202.102.24.35;8.8.8.8; };
自己不解析的都扔到这2个dns去
下面我们开始写zone文件
区域配置(zone )
zone 语句作用是定义DNS 区域,在此语句中可定义DNS 区域选项
zone区域设置,第一步,设置根区域
当DNS服务器处理递归查询时,如果本地区域文件不能进行查询的解析,就会转到根DNS服务器查询,所以在主配置文件named.conf文件中还要定义根区域。
type:设置域的类型
file:设置根服务列表文件名
zone "." IN {
type hint;
file "named.ca";
};
“.” 意思的根区域
IN 是internet记录
type是类型 根的类型是hint
file是根区域文件
用兴趣可以看下/etc/named.ca文件,看看13台根域名服务器。
继续,指定正向解析的配置文件
记住,bind对配置文件要求很严格,就算是有些地方多了个空格,服务器都可能启动不了哈~
zone "xx.com" IN {
type master;
file "xx.com.zone";
};zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.zone";
allow-update { none; };
};
保存,然后我们去修改区别文件,添加记录
#cd /var/named/
#cp -p named.localhost /var/named/chroot/var/named/xx.com.zone
配置zone文件:
#cd /var/named/chroot/var/named/xx.com.zone
#vi xx.com.zone
$TTL 86400
@ IN SOA dns.xx.com root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.xx.com.
www IN A 192.168.10.3dns IN A 192.168.10.40
svn IN A 192.168.10.38
TTL是生存期,单位是秒
$TTL是全局定义的
第二行 SOA记录,@取代在/etc/named.conf中指定的域名。
SOA段中的数字,分别为:序列号、刷新、重试、过期、生存期
序列号:序列号用于DNS数据库文件的版本控制。每当数据被改变,这个序列号就应该被增加。
刷新:从服务器向主服务器查询最新数据的间隔周期。每一次检查时从服务器的数据是否需要更改,则根据序列号来判别。
重试:一旦从服务器尝试连接主服务器失败,下一次查询主服务器的延迟时间。
过期:如果从服务器无法连通主服务器,则在经过此时间后,宣告其数据过期。
生存期:服务器回答 ‘无此域名’ 的间隔时间。
数字的默认单位为秒。否则:W= 周、D= 日、H= 小时、M= 分钟。
IN 是internet记录
SOA 是SOA 初始化记录,我们说的是初始授权记录,这个翻译不过,理解很多反正知道是那个意思就行了
dns.xx.com. 是DNS服务器的名称
root 是管理员的邮箱地址
设置反向解析:
#cd /var/named/
#cp -p named.localhost /var/named/chroot/var/named/192.168.10.zone
#cd /var/named/chroot/var/named/
#vi 192.168.10.zone
内容如下:
$TTL 86400
@ IN SOA dns.xx.com root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.xx.com.
www IN A 192.168.10.3
dns IN A 192.168.10.40
svn IN A 192.168.10.383 IN PTR www.xx.com.
40 IN PTR dns.xx.com.
38 IN PTR svn.xx.com.
接下来重启bind:
#service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
现在已经可以了 ,试试吧,设置dns:
#vi /etc/resolv.conf
nameserver 192.168.10.40
测试一下成果:
dig –t soa xx.com
dig svn.xx.com
dig –x 192.168.10.38
当然nslookup、ping、host等也可以~