2012年8月3日 星期五

(暫存) Java 與 DNS

參考資料:
1、第十九章、主機名稱控制者: DNS 伺服器
2、Using Java to get detailed DNS information
3、dnsjava examples
4、DNS queries in Java.
5、Developing JNDI-based Applications
6、DNS Service Provider for the Java Naming Directory Interface (JNDI)
7、DynDNS document:DNS update API
8、no-ip document:DNS integrate
9、(ddwrt) DDNS - How to setup Custom DDNS settings using embedded inadyn - HOWTO
10、How to access domain DNS protocol in pure java
11、Accessing the Dusty Corners of DNS with Java

在討論如何透過 Java 連接 DNS 之前,必須先知道 DNS 的運作原理
詳細的說明可以參考鳥哥寫的教學 [1] 。
其中比較需要注意的是一般的 DNS 查詢有分成 NS(Name Server)和 A(Address)
NS 回應的是下一層的 DNS 伺服器位址,A 才是真正的目的地位址。
而如果自己架一個新的 DNS 伺服器,必須向上一層的 DNS 伺服器申請領域查詢授權
也就是在上一層的 DNS 裡面設定 NS,把某個子網域名稱指定給新架的 DNS 伺服器。
假設上一層 DNS 的網域是 abc.com,而我新架了一個 DNS 伺服器,想要管理 xyz.abc.com
這時要先去 abc.com 上申請查詢授權,等 abc.com 的管理員設定了 xyz.abc.com 的 NS。
設定完成以後,如果有 request 在詢問 *.xyz.abc.com 這個網域名稱
abc.com 的 DNS 都會回應 NS,即叫它去問 xyz.abc.com 的 DNS 伺服器。
而如果 abc.com 回應的是 A,則是回應對方說你要的目標就在這個位址,DNS 查詢就結束了。
(更詳細的說明請參閱鳥哥的 19.1.3 小節!XD)

補充:
雖然上面列了一堆參考資料,不過最後還是放棄 JNDI 改用 dnsjava 了 XD
有關 dnsjava 的範例請參閱 dnsjava 標籤

沒有留言: