首先,安装 bind
1)、用光盘自带安装
# rpm -qa | grep bind
bind-libs-9.3.4-6.P1.el5
bind-libbind-devel-9.3.4-6.P1.el5
bind-9.3.4-6.P1.el5
bind-chroot-9.3.4-6.P1.el5
bind-sdb-9.3.4-6.P1.el5
bind-devel-9.3.4-6.P1.el5
bind-utils-9.3.4-6.P1.el5
# rpm -qa | grep caching-nameserver
caching-nameserver-9.3.4-6.P1.el5
使用了chroot后,
虚拟根目录为/var/named/chroot,则namd.conf实际位置为/var/named/chroot/etc,
而工作目录/var/named实际路径为/var/named/chroot/var/named.
2)、使用 yum安装
# yum install bind*
# yum install caching-nameserver
安装过程很简单主要的就是配置BIND服务。
本机IP是:192.168.0.29
# ls /var/named/chroot/etc/
localtime named.rfc1912.zones named.caching-nameserver.conf rndc.key
这些是在/var/named/chroot/etc/下的几个主要的配置文件。
3)、首先编辑 named.conf 文件
# cp -p named.caching-nameserver.conf named.conf // 注:使用cp -p 参数在复制的时候文件的属性不会改变。如果直接 cp 则要修改此文件的属主:
#chown :named named.conf
编辑 named.conf文件进行配置。
# vi named.conf
options {
listen-on port 53 { any; }; //把127.0.0.1 改为 any
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";
query-source port 53;
query-source-v6 port 53;
allow-query { any; }; //localhost 改为 any
forwarders { 192.168.0.1; };
forward only; // 此两行默认没有,如果内网使用此dns 服务器可以设置dns转发,这要是有效的 dns 服务器地址
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; }; //localhost 改为 any
match-destinations { any; }; //localhost 改为 any
recursion yes;
include "/etc/named.rfc1912.zones";
};
4)、然后编辑 /var/named/chroot/etc/named.rfc1912.zones
# vi named.rfc1912.zones //dns 服务器的区域主配置文件
zone "example.com" IN { // example.com 我实验用的区域,正向解析区域
type master;
file "example.com.zone"; // example.com.zone本区域的配置文件
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN { //0.168.192 反向解析区域
type master;
file "0.168.192.zone"; // 0.168.192 反向解析区域配置文件
allow-update { none; };
};
5)、这两个区域配置文件可以分别直接拷贝 /var/named/chroot/var/named/localdomain.zone 和/var/named/chroot/var/named/named.local
# cd /var/named/chroot/var/named/
# cp -p localdomain.zone example.com.zone
# cp -p named.local 0.168.192.zone
注意:这两个配置文件名一定要跟named.rfc1912.zones 你定义的名称相同
下面主要是编辑这两个文件了。
# vim 0.168.192.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS example.com.
14 IN PTR dns.example.com. //添加反向解析记录
15 IN PTR www.example.com. //添加反向解析记录
16 IN PTR mail.example.com. //添加反向解析记录
//14 是指的 dns 服务器IP:192.168.0.29 的最后地址区域
6)、# vim example.com.zone
$TTL 86400
@ IN SOA localhost root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dns //添加域名服务器记录-NS记录(设置当前域的DNS服务器名称)
IN MX 5 mail //添加邮件交换记录-MX记录(设置mail.example.com主机作为邮件服务器)
dns IN A 192.168.0.29 //添加正向解析
www IN A 192.168.0.30 //添加正向解析
mail IN A 192.168.0.31 //添加正向解析
blog CNAME www //添加别名
7)、最后就是修改/etc/resolv.conf文件了. 也就是添加主dns 服务器
# vi /etc/resolv.conf
nameserver 192.168.0.29
8)、测试:
#named-checkzone example.com /var/named/chroot/var/named/example.com.zone
//测试正向区域文件(文件没有语法错误则显示OK,有错误则显示错误内容)
同理测试反向解析文件
9)、启动 bind 服务
#service named start
ok
到此配置就结束了,如果开启了selinux 则要设置一下selinux,因为不配置这个的话就不会让别人访问你的DNS服务器。 防火墙开启 tcp:53 udp:53
# ntsysv 在[ ]named前点空格,选择开启自动启动
实验中可关闭Selinux,开启服务service named start
10)、以上即是配置主域名服务器过程,如果是从域名服务器,这个配置过程也是一样的,只需要改动named.rfc1912.zones文件即可
zone "test.com" IN {
type slave;
file "slaves/example.com.zone"; //在/var/named/chroot/var/named/slaves
masters { 192.168.0.29; }; 添加区域配置文件example.com.zone既可
};
zone "0.168.192.in-addr.arpa" IN {
type slave;
file "slaves/0.168.192.zone"; //在/var/named/chroot/var/named/slaves
masters { 192.168.0.29; }; 添加区域配置文件0.168.192.zone 即可
};
三、其它命令:
#rndc reload 一个非常有用的命令,能在不关闭服务的情况下,即时更新bind;另nslookup交互环境中,可以用命令server 192.168.1.102指定此DNS服务器为提供服务的DNS服务器
联系客服