实验环境:

RHEL6

192.168.0.75(DNS服务器,DHCP服务器)

192.168.0.36(更新DNS服务器记录,客户端)

iptables和selinux关闭

1.使用key更新DNS服务器记录

75# yum install bind bind-chroot  bind-utils  -y

/etc/init.d/named start

chkconfig named on

cd /var/named/chroot/etc


dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos(生成key文件)


-a 算法  -b key的大小、单位是bit  -n westos的类型  westos是key的名字


在当前目录下生成两个文件 Kwestos.+157+38674.key


Kwestos.+157+38674.private


vi named.rfc1912.zones


加入域名


zone "example.com" IN {


        type master;


        file "example.com.zone";


        allow-update { key westos; };//使用key更新记录


};


vi named.conf


key "westos" {  (模板是rndc.key)


        algorithm hmac-md5; (key采用的加密算法)


        secret "84jsahjdf/qwjeks=="; (key文件的密钥)


};


cd ../var/named


cp -p named.localhost  example.com.zone(注意加参数-p,拷贝属性)


修改example.com.zone文件,指定dns服务器


                        NS      example.com.


                        A       192.168.0.75


chmod g+x /var/named/chroot/var/named(让named具有写权限)


如果SELINUX开启了,还要将named布尔值开启


setsebool -P named_write_master_zones on


/etc/init.d/named restart


rndc reload


scp /var/named/chroot/etc/Kwestos.+157+38674.key  192.168.0.36:


scp /var/named/chroot/etc/Kwestos.+157+38674.private  192.168.0.36:



36# nsupdate -k Kwestos.+157+38674.key


>server 192.168.0.75


>zone example.com


>update add www.example.com. 500 A 192.168.0.75


>send /etc/init.d/named restart


rndc reload


>quit


在192.168.0.75上执行dig  www.example.com


如果能解析到ip则成功,否则失败



2.搭建DHCP服务器


75#

yum install dhcp dhcp-devel -y

vi /etc/dhcp/dhcpd.conf


subnet 192.168.0.0 netmask 255.255.255.0 {


  range 192.168.0.130  192.168.0.140;


  option domain-name-servers 192.168.0.75;


  option domain-name "example.com";


  option routers 192.168.0.75;


  default-lease-time 600;


  max-lease-time 7200;


}


/etc/init.d/dhcpd restart


3.构建DDNS

75#vi /etc/dhcp/dhcpd.conf

ddns-update-style interim;(ddns更新要开启,否则实验失败)



key westos {


         algorithm hmac-md5;


         secret 84jsahjdf/qwjeks==;


};


zone example.com. {


         primary 127.0.0.1;//本地,其他主机要写ip


         key westos;


}

36# rm -rf /etc/dhcp/dhclient-eth0.conf

vi /etc/dhcp/dhclient.conf

send fqdn.fqdn "desktop36.example.com.";("."号不能丢)

send fqdn.encoded on;

send fqdn.server-update on;(在RHEL5里写为off)



在75上修改dhcp的地址池范围,重新启动DHCP服务,在36上重新启动网络服务,资源记录就会自动更新



例如: desktop36.example.com   192.168.0.36
此时使用dig解析desktop36.example.com,解析到192.168.0.36
重启服务后desktop36的ip变了,变为192.168.0.50
此时使用dig解析desktop36.example.com,解析到192.168.0.50


注意不要在example.com.zone里写入desktop36的记录,因为它的记录是自动更新的.