RHEL6 DNS 服务器基本配置
1.安装BIND套件。 BIND相关软件包 bind BIND主程序。 bind-utils 客户端搜索主机名的相关命令。 bind-libs BIND相关的库文件。 bind-chroot 将BIND设定文件和程序限制在虚拟根目录。 使用yum安装BIND yum install bind* 启动named服务并设定开机启动。 /etc/init.d/named start chkconfig named on 现在BIND安装完成并且已经启动。利用nslookup测试named服务是否正常运行。如果安装和启动没有问题则有类似输出: [root@linux ~]# nslookup localhost Server: localhost Address: 127.0.0.1#53 Non-authoritative answer: canonical name = www-wide.l.google.com. Name: www-wide.l.google.com Address: 74.125.128.199 2.建立缓存域名服务器。 建立缓存域名服务器(Caching-only Name Server)非常简单,在named服务启动之后实际上就建立了一个缓存服务器。我们可以指定速度较快的转发服务器地址,并告知BIND服务器只做缓存服务器。 默认服务器配置文件: vi /etc/named/chroot/etc/named.conf或者vi /etc/named.conf options { listen-on port 53 { 127.0.0.1; }; 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 { localhost; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; 修改配置文件: options { listen-on port 53 { any; }; //允许所以客户机访问 listen-on-v6 port 53 { ::1; }; directory "/var/named"; forwarders { 221.5.203.98; //转发服务器的IP地址 }; forward only; //告知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"; allow-query { any; }; //允许任何主机查询。 recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; 打开防火墙iptables的53端口。 system-config-firewall-tui 在防火墙中同时打开tcp与udp的53端口。 重启named服务 [root@linux ~]# /etc/init.d/named restart 停止 named:[确定] 启动 named:[确定] 最后将客户端主机的DNS指向该服务器进行验证。 3.主/从架构DNS系统的架设。 主/从架构的服务器中,至少有两台DNS服务器,即主DNS服务器(Master)和从DNS服务器(Slave)。 A.主DNS服务器设定 主DNS服务器的named.conf与缓存服务器的named.conf唯一不同的地方就是没有“forward only;”参数,在配置前用“#”号将改行注释掉。 编写正向解析文件: [root@linux ~]# vi /var/named/chroot/var/named/thq.com.zone $TTL 86400 @ IN SOA thq.com. root.thq.com. ( 0 3H 15M 1W 1D ) @ IN NS linux.thq.com. linux IN A 192.168.0.1 www IN A 192.168.0.1 编写反向解析文件: $TTL 86400 @ IN SOA thq.com. root.thq.com. ( 0 3H 15M 1W 1D ) IN NS linux.thq.com. 1 IN PTR thq.com. 在配置文件/etc/named.conf的最后一行有: # include "/etc/named.rfc1912.zones"; 经过查资料得知这个named.rfc1912.zones是正反解析记录清单文件。这个文件里面有很多区域的定义,但是大部分都看不懂。也可以将自己的区域定义写入这个文件。但是在服务启动时却报配置文件错误,当我把看不懂的那些删掉后,再也没有报相同的错误,在这里我把这行屏蔽掉,直接将区域定义直接写入named.conf的末尾: zone "thq.com" IN { type master; file "thq.com.zone"; allow-transfer {192.168.0.4;}; //从服务器地址 allow-update { none; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "named.192.168.0"; allow-transfer {192.168.0.4;}; //从服务器地址 allow-update { none; }; }; 保存退出后启动服务但是没有启动成功: [root@linux ~]# /etc/init.d/named start 启动 named:[失败] 虽然没有报配置文件写入错误,但查看日志发现: tail –f /var/log/messages could not configure root hints from `named.ca`: file not found loading configureation: file not found 进过排错发现,之前在安装bind软件时,安装了bind-chroot组件,该组件会把bind设定文件和程序限制在虚拟目录下。 named.ca文件在/var/named目录中,而虚拟目录/var/named/chroot/var/named中则没有这个文件。 将named.ca拷贝到虚拟目录中: cp /var/named/named.ca /var/named/chroot/var/named/ 再次启动服务还是失败,查看日志有: could not configure root hints from `named.ca`: permission denied loading configureation: permission denied 原来是权限不对,尝试过很多参数,最后发现最小为754,也许在拷贝时加上-p参数就不会出现权限问题,但没有再尝试。 chmod 754 /var/named/chroot/var/named/named.ca [root@linux ~]# /etc/init.d/named start 启动 named:[成功] B:从DNS服务器设定 之前我因为上面的错误,在论坛发帖求助,求助:RHEL6 DNS服务无法启动 但是却没有一个人回复我,那叫一个囧啊。 区域定义: zone "thq.com" IN { type slave; file "thq.com.zone"; masters { 192.168.0.1; }; //输入主服务器IP。 allow-update { 192.168.0.1; }; }; zone "0.168.192.in-addr.arpa" IN { type slave; file "named.192.168.0"; masters { 192.168.0.1; }; //输入主服务器IP。 allow-update { 192.168.0.1; } }; 测试DNS服务器: 配置完成后重启服务器,客户端DNS指向192.168.0.1 启动httpd服务,通过浏览器输入要解析的域名得到apache测试页,DNS服务器搭建成功。