2011年12月12日 星期一

啟動 ISC BIND9 的 IPv6 功能

ISC BIND9 9.8 版完全支援 IPv6 系統, 並且還支援中文網域名稱, 例如 : 大福.tw, 而在設定之前, 必需先將多國語言域名 (Internationalized Domain Name:IDN) 轉成 ASCII 編碼, 而這種編碼稱為『Punycode』, 這是因為保留向下相容性及不影響現有的應用程式協定

設定如下 :

1.啟動 BIND9 IPv6 回應功能
要使 BIND9 具有回答其它 IPv6 主機的查詢, 將 listen-on-v6 加入 named.conf 設定檔, 設定如下 :

# nano /usr/local/etc/bind/named.conf
                  :
options {
    directory               "/usr/local/etc/bind";
    pid-file                   "/var/run/named.pid";
    session-keyfile     "/var/run/session.key";
    auth-nxdomain      no;                         // conform to RFC1035
    version                  "Not disclosed";            // hide bind version 9$
    notify                     yes;                        // inform slaves of $
    allow-transfer       { trusted-nameservers; };   // allow servers to make z$
    listen-on-v6 { any; };
};

zone "xn--pss076e.tw." {  // xn--pss076e.tw. 是 "大福.tw" 的 punycode
   type master;
   file "/usr/local/etc/bind/db.dafu.tw";  // 這是 "大福.tw" 網域的 zone 檔
};

2.加入 AAAA 記錄
在 BIND9 所管理的 Zone 檔 (例如 db.dafu.tw), 加入 IPv6 專有的 AAAA 記錄, AAAA 記錄主要是回應被查詢主機的 IPv6 位址, 設定如下 :


# nano /usr/local/etc/bind/db.dafu.tw

$TTL  604800
@   IN   SOA   TC188.xn--pss076e.tw. admin.gmail.com. (
     1     ; Serial
     604800     ; Refresh
     86400       ; Retry
     2419200    ; Expire
     604800 )    ; Negative Cache TTL
;
@       IN     NS   TC188.xn--pss076e.tw.
GW188      IN     AAAA      babe::188
GW166      IN     AAAA      babe::166
GW155      IN     AAAA      babe::155
TC188      IN     AAAA      2001:288:3008:188::100
TC166      IN     AAAA      2001:288:3008:166::100
TC155      IN     AAAA      2001:288:3008:155::100
www IN CNAME GW188.xn--pss076e.tw.

3.檢測 DNS 的 IPv6 功能

檢測 DNS IPv6 功能, 你可使用 nslookupdig 這二個命令來執行

# nslookup
> server
Default server: 2001:288:3008:188::100
Address: 2001:288:3008:188::100#53
> set type=soa
> xn--pss076e.tw.
Server:        2001:288:3008:188::100
Address:    2001:288:3008:188::100#53

xn--pss076e.tw
    origin = TC188.xn--pss076e.tw
    mail addr = admin.gmail.com
    serial = 1
    refresh = 604800
    retry = 86400
    expire = 2419200
    minimum = 604800
> set type=aaaa
> www.xn--pss076e.tw.
Server:        2001:288:3008:188::100
Address:    2001:288:3008:188::100#53

www.xn--pss076e.tw    canonical name = GW188.xn--pss076e.tw.
GW188.xn--pss076e.tw    has AAAA address babe::188
> exit

以下命令中的 2001:288:3008:188::100, 是指 BIND9 Server 的 Pv6 位址, 而 xn--pss076e.tw.是 "大福.tw" 這網域的 punycode


# dig @2001:288:3008:188::100 xn--pss076e.tw. ANY

; <<>> DiG 9.8.1-P1 <<>> @2001:288:3008:188::100 xn--pss076e.tw. ANY
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26974
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;xn--pss076e.tw.            IN    ANY

;; ANSWER SECTION:
xn--pss076e.tw.        604800    IN    SOA    TC188.xn--pss076e.tw. admin.gmail.com. 1 604800 86400 2419200 604800
xn--pss076e.tw.        604800    IN    NS    TC188.xn--pss076e.tw.

;; ADDITIONAL SECTION:
TC188.xn--pss076e.tw.    604800    IN    AAAA    2001:288:3008:188::100

;; Query time: 12 msec
;; SERVER: 2001:288:3008:188::100#53(2001:288:3008:188::100)
;; WHEN: Mon Dec  5 05:20:07 2011
;; MSG SIZE  rcvd: 131

參考文章
1.IPv6 Part 9: Configuring A Domain For IPv6 With BIND

沒有留言:

張貼留言