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; 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章