架設 DNS(DNS终结篇) (10)
2008-02-23 04:53:55来源:互联网 阅读 ()
http://www.dyndns.org/
http://dns2go.deerfield.com/
http://www.adsldns.org:8080/service.php (中文)
如果您不知道如何申請和安裝這類動態 DNS 的話﹐您可以參考如下網頁﹕
Steven 電腦世界 之“Linux 使用 ADSL (計時制) 的經驗分享”
鳥哥的 Linux 與 ADSL 文件 之 “動態 DNS 申請 ”
Tips﹕如果您使用撥接式 ADSL (PPPoE) 並在 adsldns.org 上面完成註冊之後﹐您只需在 /etc/ppp 目錄下面修改一個 ip-up.local 檔(如果沒有請自行建立)﹐增加如下內容﹕
#!/bin/bash
CMD="http://www.adsldns.org:8080/clientupdate.php\
?email=XXXXX@XXXXXX&passwd=XXXXX\
&hostname=XXXXXX.adsldns.org&debug=1"
lynx -dump $CMD > /tmp/adslclient.log
(注意﹕請將 XXXXX 修改為您的正確資料。同時﹐首兩行結尾的 \ 符號不要漏了﹐其左右沒空白﹔要不然﹐拿掉 \ 符號並將前面三行寫成一行。)
然後﹐只要您完成 ADSL 撥接之後﹐就能‘自動’的幫您修改 IP 記錄了﹗
關於動態 DNS 的應用﹐除了上述的環境之外﹐在 DHCP 分配的網路中設定 DNS 也可以應用得上。但前提條件是﹕您的 named 必須是 bind 9.x 或以後﹐以及 dhcpd 必須是 3.x 或以後的版本。然而﹐RedHat7.1 上面預裝的 dhcpd 是 2.0p15-4 這個版本﹐您必須自行升級才能使用這個非常棒的功能。
下面﹐我將 dhcp 服務轉移到 mandrake 8.1 (其預裝的 dhcpd 版本是 3.0-0.rc12.1)﹐然後保留 named 在 rh71 上面﹐再透過 ddns 技術更新和維護 dhcp 所發放的 DNS 資料。我初步整理出來的步驟如下﹕
在 mdk 上執行如下命令﹐產生 dns 加密驗證所需的 secret ﹕
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST DHCP_MDK
這樣會在當前目錄下產生兩個以 Kdhcp_mdk 開頭的檔案﹐有興趣您可以看看其中的內容。然後您將 Kdhdp_mdk*.private 中的最後一行 Key: 後面那串字串複製下來 (如﹕4sxutdFuNMqF1B0Q2GV1uQ==)﹐待會要用到。
然後修改 /etc/dhcpd.conf 的內容﹐類似如下﹕
ddns-update-style ad-hoc;# 這行一定要加上
subnet 192.168.100.0 netmask 255.255.255.0 {
......# 其中內容略﹐請自行填寫
}
key DHCP_MDK {
algorithm HMAC-MD5.SIG-ALG.REG.INT;# 加密演算法名稱
secret 4sxutdFuNMqF1B0Q2GV1uQ==;# 這就是上一步驟產生的 key
}
zone siyongc.domain. {
primary 192.168.100.23;# 指向 name server 所在位址
key DHCP_MDK;# 必須和前面的 key 名稱一致
}
zone 100.168.192.in-addr.arpa. {
primary 192.168.100.23;# 同上
key DHCP_MDK;
}
然後重新啟動 dhcpd 的服務﹐並確定其功能正常。關於更多的設定﹐請 man dhcpd.conf ﹐搜尋 ddns 子串就可以找到。
然後轉移到 rh71 上面﹐修改 /etc/named.conf ﹐在 options 前面加上如下句子﹕
key DHCP_MDK {// 這段應該和 dhcpd.conf 設定一致
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret 4sxutdFuNMqF1B0Q2GV1uQ==;
};
logging {// 這是記錄設定
channel update_debug {
file "/var/log/update-debug.log";
severity debug 3;
print-category yes;
print-severity yes;
print-time yes;
};
channel security_info {
file "/var/log/named-auth.info";
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category update { update_debug; };
category security { security_info; };
};
然後再為相應的 zone 加上 update 設定﹕
zone "siyongc.domain" {
type master;
file "siyongc.domain";
allow-update { key DHCP_MDK; };// 名稱必須和前面的 key 一致
};
zone "100.168.192.in-addr.arpa" {
type master;
file "192.168.100.rev";
allow-update { key DHCP_MDK; };// 同上
};
然後建立所需的記錄檔﹕
touch /var/log/update-debug.log
touch /var/log/named-auth.info
chown named.named /var/log/update-debug.log
chown named.named /var/log/named-auth.info
完成後請重新啟動 named ﹐並檢查 /var/log/messages 及測試服務是否正常。
最後﹐就是等待記錄更新了~~~ 哦﹐我忘了準確的更新時機了﹐我在某處看到過(記不起來了﹕家裡的書﹖書局的書﹖網路上﹖)﹕更新的時機好像是 dns 那邊累積 100 了一百個記錄在 journal 的時候﹔或是每隔 60 分鐘 (哪個標準先到達就採用哪個方法﹐不過﹐真的記得不是很清楚)。如果您在 /var/named 的記錄檔下面發現更新(標誌其一是 Serial 號碼)﹐或是在 /var/log/update-degub.log 上看到有記錄。那就成功了﹗
如果一直沒動作怎麼吧﹖呵呵~~~ 我也不知道。但我會建議您將 /etc/dhcpd.conf ﹑named.conf﹑和 /var/named/ 的記錄檔儘量簡化﹐將那些有的沒的全部拿掉﹐並重新啟動服務看看。當然了﹐/var/log/ 裡面記錄檔也有很多重要資訊﹐比方說提昇 named.conf 裡的 debug level 數值(如﹕severity debug 9 )﹐然後執行﹕
tail -f /var/log/update-dbug.log
再不然﹐用 tcpdump 抓封包看囉~~~
老實說﹐我原本寫這篇文章的時候並沒有打算將 dhcp dns 的動態更新寫進來的﹐因為還沒實作過。幸得在新聞組上得到 小州兄 的指點﹐才裝了個 Mandrak8.1 ﹐並按 man page 的步驟設定起來的。我覺得在本機上更新﹐也就是 dhcpd 和 named 都在同一台機器上﹐會比較容易成功。如果跨網路進行的話﹐那您得要首先解決網路想過的問題﹐例如路由和防火牆這些設定。
Anyway﹐我不敢保證您能按照上面的步驟實作出來﹐總要自己多嘗試嘗試吧。如果您想更進一步了解 DNS 的動態更新﹐您可以研究一下 nsupdate 這個命令。它可以讓您以交談模式來更新 named 的記錄設定。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:主要省份城市的DNS服务器地址
下一篇:如何增强网络排错技能
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
