DHCP+DNS实现DDNS

一、DHCP的配置:
            配置DHCP server 时很简单,可以参考 
            /usr/share/doc/dhcp-x.xx/dhcpd.conf.sample来做。也可以先把这个文件cp 到 
            /etc/dhcpd.conf,然后根据自己的需要做适当修改。下面贴出我的一个/etc/dhcpd.conf,供大家参考:
            ddns-update-style interim;
            ignore client-updates;
            key DHCP_UPDATER {
            algorithm HMAC-MD5;
            secret qhB++OR5yWo8BTXwk/m4ng;
            };
            zone bj.pnx. {
            primary 127.0.0.1;
            key DHCP_UPDATER;
            }
            zone 251.168.192.in-addr.arpa. {
            primary 127.0.0.1;
            key DHCP_UPDATER;
            }
            subnet 192.168.251.0 netmask 255.255.255.0 {
            range 192.168.251.100 192.168.251.200;
            # --- default gateway
            option routers 192.168.251.254;
             option subnet-mask 255.255.255.0;
            # option nis-domain "domain.org";
             option domain-name "bj.pnx";
            option domain-name-servers 192.168.251.63,192.168.251.254;
            # option time-offset 28800; # PRC Standard Time
            # option ntp-servers 192.168.251.220;
            # option netbios-name-servers 192.168.1.1;
            # range dynamic-bootp 192.168.0.128 192.168.0.255;
            default-lease-time 21600;
            max-lease-time 43200;
            } 
            几个要注意的地方:
            1. 'ddns-update-style'
            这个就是动态DNS的更新方式,有几个选项,我用的是interim,可以用 man dhcpd.conf找到另外的几个选项。
            2. 'ignore client-updates'
            这个选项是不允许客户机更新DNS记录。当然,也可能允许,但会有一点问题。
            3. 'key DHCP_UPDATER'
            这个是更新DNS的KEY,是必须的。其中algorithm 后的是生成key的算法,key的生成是用 'dnssec-keygen -a 
            HMAC-MD5 -b 128 -n USER DHCP_UPDATER'。
            4. 'zone'
            要更新的zone,如果是本机就是DNS server,primay 就写127.0.0.1,要是其它机器是DNS server, 
            就写那台机器的IP。
            别的都是一般DNS该有的了,要注意的是一定要有 range 那一行,不然就分不了IP啦。
            配好以后,可以启动一下试试, service dhcpd start,如果没问题,把dhcpd改成开机就启动,chkconfig 
            --level 2345 dhcpd on。
            二、bind(named)的配置。
            关于bind(named)配置的文章有很多了。这里只把与普通配置不同的地方写出来。
            下面给我的named.conf供大家参考:
            // generated by named-bootconf.pl
            options {
            directory "/var/named";
            /*
            * If there is a firewall between you and nameservers you want
            * to talk to, you might need to uncomment the query-source
            * directive below. Previous versions of BIND always asked
            * questions using port 53, but BIND 8.1 uses an unprivileged
            * port by default.
            */
            // forwarders { 192.168.1.254; };
            // query-source address * port 53;
            };
            //
            // a caching only nameserver config
            //
            controls {
            inet 127.0.0.1 allow { localhost; } keys { rndckey; };
            };
            key DHCP_UPDATER {
            algorithm HMAC-MD5;
            secret qhB++OR5yWo8BTXwk/m4ng;
            };
            zone "." IN {
            type hint;
            file "named.ca";
            };
            zone "localhost" IN {
            type master;
            file "localhost.zone";
            allow-update { none; };
            };
            zone "0.0.127.in-addr.arpa" IN {
            type master;
            file "named.local";
            allow-update { none; };
            };
            zone "1.168.192.in-addr.arpa" IN {
            type master;
            file "1.168.192.zone";
            allow-update { key DHCP_UPDATER; };
            };
            zone "test.com" IN {
            type master;
            file "test.com";
            allow-update { key DHCP_UPDATER; };
            };
            include "/etc/rndc.key";
            其中多了的是
            key DHCP_UPDATER {
            algorithm HMAC-MD5;
            secret qhB++OR5yWo8BTXwk/m4ng;
            };
            这就是更新dns要用的key,必须和dhcpd.conf里的一样。
            还有就是每个 zone 都可以用 key 来update了。
            这样就行了。然后启动一下试试吧。
            
            当客户端是linux时,需要在linux客户端编辑一个文件/etc/dhclient.confDNS才能更新,
    不信你可以看看/var/lib/dhcp/的文件的内容,客户端分配的IP没有Hostname的记录。
            我的/etc/dhclient.conf内容如下:
            send fqdn.fqdn "hostname"; 
            send fqdn.encoded on; 
            send fqdn.server-update off; 

你可能感兴趣的:(职场,休闲,ddns)