环境:服务器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系统的数据库.