环境:服务器redhat5.4 ,服务版本:bind9.3X和dhcp3.0x,并且两个服务都必须先能正常提供服务的。
[root@redhat5 var]# nslookup long.com
Server: 192.168.100.105
Address: 192.168.100.105#53
Name: long.com
Address: 192.168.100.105
现在对dns方面进行修改:
1、生成用于更改zoon空间的密钥:
[root@redhat5 etc]# dnssec-keygen -a HMAC-MD5 -b 128 -n USER ddns
Kddns.+157+07304
[root@redhat5 etc]# ls
Kddns.+157+07304.key localtime named.conf.bak named.root.hints
Kddns.+157+07304.private named.conf named.rfc1912.zones rndc.key
可以用cat 来查看Kddns.+157+*里面的内容,发现里面都有一件的密钥。就把它复制出来,编辑named.conf文件,修改:
#可修改zoon的key
key key_ddns
{
algorithm hmac-md5;
secret Jb4b7gFsjVBlagOfVNGKpw==;
};
view "test"
{
match-clients {any; } ;
match-destinations {any; } ;
recursion no ;
#zone setting
// include "/etc/named.rfc1912.zones" ;
include "/etc/named.rfc1912.zones";
} ;
由上面可知,其实在name.rfc1912.zones里存在着zoons的定义空间,所以编辑named.rfc1912.zones文件,最后的long.com的zones修改:
//long.com
zone "long.com" IN {
type master ;
file "long.zone" ;
allow-update { key key_ddns; }; //注意定义了key_ddns为密钥的一方可以修改long.com里的主机记录。
};
重启服务,ok!!!
2、修改dhcpd.conf 文件。使其分配的主机IP的同时也能进行dns的zoon更新:
#dhcpd.conf
ddns-update-style interim; //指定分配的类型
#ignore client-updates;
ddns-updates on; //开启ddns-updates的功能
subnet 192.168.100.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.100.1;
option subnet-mask 255.255.255.0;
option domain-name "long.com"; //指定分配IP的主机所在域,这个域要和dns里面的key_ddns可修改的一致,不能就不能生成对应的纪录。
option domain-name-servers 192.168.100.105;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.100.150 192.168.100.254;
default-lease-time 21600;
max-lease-time 43200;
//下面这两个是指定ddns分配的使用密钥和域名称,注:key的密钥和与named.conf里面的key的一样,这样才是使用同一密钥的,才能动态更改域
key key_ddns{
algorithm hmac-md5;
secret "Jb4b7gFsjVBlagOfVNGKpw==";
}
//指定分配的域的名称,注意格式:“long.com.”后面是有"."的.
zone long.com.{
primary 192.168.100.105;
key key_ddns;
}
//这里没有添加反解释的zoon,当然也可以加上,类似于dns的反解的格式,当然前提是dns的反解也做了ddns更新配置。
}
重启服务,ok !!!!
到些配置已基本完成。
此时,可以查看日志文件,用动态的:tail -f /var/log/message
在使用客户机测试时。能正常得到IP地址和能正常解释long.com以及之前服务端的主机,发现日志结果:
Aug 21 20:48:16 redhat5 named[20722]: client 192.168.100.105#56606: view test: u
pdating zone 'long.com/IN': adding an RR at 'lenovo-1b64a8ba.long.com' A
Aug 21 20:48:16 redhat5 named[20722]: client 192.168.100.105#56606: view test: u
pdating zone 'long.com/IN': adding an RR at 'lenovo-1b64a8ba.long.com' TXT
Aug 21 20:48:16 redhat5 named[20722]: journal file long.zone.jnl does not exist,
creating it
Aug 21 20:48:16 redhat5 named[20722]: long.zone.jnl: create: permission denied
Aug 21 20:48:16 redhat5 named[20722]: client 192.168.100.105#56606: view test: u
pdating zone 'long.com/IN': error: journal open failed: unexpected error
Aug 21 20:48:16 redhat5 dhcpd: Unable to add forward map from lenovo-1b64a8ba.lo
ng.com to 192.168.100.253: timed out
Aug 21 20:48:16 redhat5 dhcpd: DHCPREQUEST for 192.168.100.253 (192.168.100.105)
from 00:0c:29:a9:2d:22 (lenovo-1b64a8ba) via eth0
Aug 21 20:48:16 redhat5 dhcpd: DHCPACK on 192.168.100.253 to 00:0c:29:a9:2d:22 (
lenovo-1b64a8ba) via eth0
经观察,发现在红色字体那里出现了是named在写jnl文件时无写入的权限,所在在/var/named/chroot/var路径下:
#chown -R named:named named
#chomd g+w named
添加了named目录以及里面的写权限,重启服务,ok!!!!
如果还出现在问题的就可能果selinux的问题,建议把selinux关闭。
还可用#updatedd 命令来刷新linux系统的数据库.