2016年3月17日 星期四

debian 之 Bind IPv6 設定

作業系統:Debian 5.07 / Ubuntu 10.10

實作目的為將 DNS 與網頁伺服器設定 IPv6 位址,以及增加 DNS 網域名稱伺服器 IPv6 解析記錄。過程主要包含這兩部主機的網路環境,以及 Linux Bind 兩部份的設定。

【網路設定】
ifconfig 指令顯示兩行
  inet6 addr: 2001:288:563f:0:20c:29ff:fe66:xxxx/64 Scope:Global
  inet6 addr: fe80::20c:29ff:fe66:xxxx/64 Scope:Link
表示網卡已支援 IPv6 通訊協定,只需增加 IPv6 固定位址設定即可。

vim /etc/network/interfaces

DNS 伺服器及網頁伺服器分別加入 IP 設定,如:
iface eth0 inet6 static
address 2001:288:xxxx::2
netmask 64
gateway 2001:288:xxxx::1
末行 Gateway 省略不指定也可以。

增加 IPv6 位址還有一個方法,加裝一張 IPv6 位址專用的網路卡「eth1」,在「/etc/networkinterfaces」裡加入設定:
auto eth1
iface eth1 inet6 static
  address   2001:288:xxxx::3
  netmask  64

網路服務重新啟動
sudo /etc/init.d/networking restart

以 ip 指令查看
ip -6 addr show dev eth0(或eth1)
顯示「2001:288:xxxx::x」IPv6位址:
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:288:xxxx:x:20c:29ff:fe15:21f2/64 scope global dynamic
       valid_lft 2591978sec preferred_lft 604778sec
    inet6 2001:288:xxxx::x/64 scope global
       valid_lft forever preferred_lft forever

【網路連線測試】
以「ping6」指令 ping 到「ipv6.l.google.com」
ping6 2404:6800:8005::6a

或使用另一部支援 IPv6 協定的電腦,ping 回這部主機:
ping6 2001:288:xxxx::2
ping6 2001:288:xxxx::3

如果 ping 的結果正常,表示兩部主機皆已具備 IPv6 網址。網頁伺服器部份至此「完工」,接下來進入「Bind9」DNS 伺服器設定步驟。

【DNS 伺服器設定】
sudo vi /etc/bind/named.conf
在 options 區段內有些 Bind 版本需加入以下內容:
listen-on-v6 { any; };
Debian 5.07 的 Bind 以「named -v」查看版本訊息,顯示為「BIND 9.6-ESV-R3」,不用這段設定也能運作,就先試著省略設定,等有問題再回來除錯。

DNS 正解檔設定
「/etc/bind/db.yyes.chc.edu.tw」裡列出正解設定,IPv6 的寫法除了IP位址不同外,另一差別只是將「A」改成「AAAA」,加上兩列關於這兩部主機新的設定:
dns             IN      AAAA    2001:288:xxxx::2
www           IN      AAAA    2001:288:xxxx::3

重新啟動DNS
sudo /etc/init.d/bind9 restart

【DNS 測試】
到另一部電腦以「nslookup」指令測試 DNS 伺服器,這部電腦同樣需有 IPv6 網路界面。Debian 5 如果沒有 nslookup 指令,需再額外用「sudo apt-get install dnsutils」指令新增。
開始 nslookup 指令測試:
指定學校 DNS 伺服器 IP 為查詢主機,「set type=aaaa」表示查詢模式為 IPv6,查詢學校網頁伺服器。
nslookup
> server 163.23.114.xx
Default server: 163.23.114.xx
Address: 163.23.114.xx#53

> set type=aaaa
> www.xxxx.chc.edu.tw
Server: 163.23.114.xx
Address: 163.23.114.xx#53
www.xxxx.chc.edu.tw has AAAA address 2001:288:xxxx::3

再用 Hinet DNS 伺服器查詢,確認從學術網路以外的地方也能解析網域名稱。
> server 168.95.1.1
Default server: 168.95.1.1
Address: 168.95.1.1#53
> set type=aaaa
> www.xxxx.chc.edu.tw
Server:         168.95.1.1
Address:        168.95.1.1#53

Non-authoritative answer:
www.xxxx.chc.edu.tw     has AAAA address 2001:288:xxxx::3

Authoritative answers can be found from:
xxxx.chc.edu.tw nameserver = dns.xxxx.chc.edu.tw.
dns.xxxx.chc.edu.tw     internet address = 163.23.114.xx
dns.xxxx.chc.edu.tw     has AAAA address 2001:288:xxxx::2

這樣應該就大功告成了!因為用其他的網域名稱查詢,出現錯誤訊息:)

相關網站:關於IPv6 BIND9 Server Howto 縣網 IPv6 檢測網站 網站IPv6支援檢測 Test your IPv6