負責全球網域名稱及 IP 位址的授權機構 IANA, 聲明 IPv4 位址明年 (2012) 既將發完, 如 IPv4 位址真的發完, 那新的 ADSL 用戶是不是以後要排隊, 等舊用戶退租才可申請, 要解決這個大災難, 那就要靠 IPv6. IPv6 在技術面已相當成熟, 但在執行面確是相當困難, 這並不是換新系統或新設備就可以馬上上線, IT 人員需時間專業養成, 舊的應用系統需重新改寫, 所以 IPv6 是無法立即套用到所有系統, 有鑑於此, 及早學習及佈署 IPv6 是相當重要的課題
IPv6 位址的表示法 (十六進位世界)
IPv6 的位址長度使用 128 bits(即 16 bytes),可配置的位址有 2^128 很驚人的數量。這樣的數量夠地球上所有具有通訊的裝置來使用,並且還剩很多, 但不知當與其它星球聯盟時夠不夠用.
IPv6 全部使用 16 進位數字和「:」分隔字元來表示位址,例如以下位址:
2001:0288:2005:babe:0000:0000:0000:0001
fe80:0000:0000:0000:d8d2:d8ff:fef5:b4e
fd00:0200:0000:8002:a88d:f6ff:fe7c:29aa
上面例子, 每一個 IPv6 位址, 共有八組四個 16 進位數字組成, 每組之間使用「:」分隔。
IPv6 位址的簡寫
1. 各組數字之前的 0 可以省略,全部是 0 可以只寫一個 0:
如:2001:2005:babe:0200:0000:0000:0000:0001 可寫成 2001:2005:babe:200:0:0:0:1
2. 連續多組 0 可用 :: 代表,但僅限一次:
如:2001:2005:babe:200:0:0:0:1 可寫成 2001:2005:babe:200::1
3. 八組都是 0 可寫成 :: 。
4. 0:0:0:0:0:0:0:1 的對應寫法是 ::1。
IPv6 位址的 Prefix (參考文章)
一個完整的 IPv6 位址,必需加上 Prefix,如下 :
2001:2005:babe:200::1/64
在上面位址的 /64 即 prefix 的表示法,主要的功能就是區隔出 "網路" 與 "主機" 部份,這意思是說,這個 IPv6 位址前面 64 個位元用來代表網路部份,而後面 64 個位元用來代表主機部份. 至於網路部份在下一篇文章, 會詳細說明
IPv6 位址的運作方式
IPv6 依其運作特性,可分成以下三類:
1. Unicast address:點對點傳送位址
2. Multicast address:頻道傳送位址
3. Anycast address:多點備援傳送位址
IPv6 Unicast 位址的使用範圍(scope)
IPv4 的位址分配, 是以 A,B,C 及 D 四個等級來配置, 而 IPv6 以三種使用範圍來作為位址配置, 在實際使用上, 光是 Global Scope 配置給各單位使用, 就夠各單位使用幾十年, 根本就不需要另二種使用範圍 (Link-Local, Unique-Local). 在純 IPv6 網路世界, NAT 網路裝置是不需要的, 因真實位址夠用, 但在 IPv4 與 IPv6 交替時期, NAT66 及 NAT64 這樣網路設備還是需要
1. Global Scope
這類別的封包可以路由到整個 IPv6 星球網路, 類似 IPv4 真實位址 (Public Address)
2. Link-Local Scope
這類別的封包只能在獨立網段中使用, 封包不能路由到其它網段, 本機系統會根據網卡的 MAC 自動配置
3. Unique-Local Scope
這類別的封包只能在企業多網段中使用, 封包不能路由到 IPv6 星球網路, Network ID 可由路由器配置 (stateless address autoconfiguration : SLAAC)
參考文章
1. 政府網路2015年全面升級IPv6
2. IPv6 位址 (精讚部落)
3. IPv6 Ubuntu Wiki
4. 教育部各校 IPv6 位址配置
2011年12月27日 星期二
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 功能, 你可使用 nslookup 或 dig 這二個命令來執行
# 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
設定如下 :
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 功能, 你可使用 nslookup 或 dig 這二個命令來執行
# 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
2011年11月22日 星期二
安裝與啟動 Tiny Core IPv6 系統
Tiny Core 對於 IPv6 並不完整, 目前只提供 IPv6 Client 端功能,還沒有提供 Router 及DHCPv6 功能. Tiny Core Linux 或 Micro Core Linux 內定沒有安裝 IPv6 系統, 如要啟動 IPv6 請執行以下步驟 :
1. 如不是 tc 帳號登入, 請先執行以下命令 :
$ su tc
2. 顯示核心版本代號
$ uname -r
3. 下載 ipv6-核心版本代號-tinycore.tcz 套件, 命令如下 :
$ tce-load -wi ipv6-2.6.33.3-tinycore.tcz
Downloading: netfilter-2.6.33.3-tinycore.tcz
Connecting to distro.ibiblio.org (152.19.134.43:80)
netfilter-2.6.33.3-t 100% |*******************************| 212k 0:00:00 ETA
netfilter-2.6.33.3-tinycore.tcz: OK
Downloading: ipv6-2.6.33.3-tinycore.tcz
Connecting to distro.ibiblio.org (152.19.134.43:80)
ipv6-2.6.33.3-tinyco 100% |*******************************| 176k 0:00:00 ETA
ipv6-2.6.33.3-tinycore.tcz: OK
4. 重新開機
$ reboot
5. 啟動 IPv6 核心模組
$ sudo modprobe ipv6
6. 檢示網卡資訊
$ ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:A0:66:8B
inet addr:192.168.100.66 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fea0:668b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:468 (468.0 B)
Interrupt:10 Base address:0x6000
在上面資訊中, 你會看到 IPv6 Link Local Address, 這位址開頭一定是 fe80, 後面數字則由網卡的 MAC 使用 EUI-64 公式來產生.
如要手動設定 IPv6 位址, 命令如下 :
# ifconfig eth0 fc00:babe:166::6/64 up
如要刪除 Link Local 位址, 命令如下 :
# ifconfig eth0 del fe80::5054:ff:fe06:121/64
如要手動設定 Default Gateway, 命令如下 :
# route add -A inet6 default gw fc00:babe:166::254 dev eth0
可將上面命令, 寫入 /opt/bootlocal.sh, 這樣就不需每次開機後, 還需手動設定. 雖然你手動設定 IPv6 位址,但是 Link Local IPv6 與 SLAAC IPv6 位址一樣還會產生,這與 IPv4 是不同的.請看下圖 :
檢視 IPv6 路由表, 命令如下 :
# route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
:
::/0 fc00:babe:166::254 UG 1 0 0 eth0
參考文章
1. 精讚部落 > 網際技術 > IPv6
1. 如不是 tc 帳號登入, 請先執行以下命令 :
$ su tc
2. 顯示核心版本代號
$ uname -r
3. 下載 ipv6-核心版本代號-tinycore.tcz 套件, 命令如下 :
$ tce-load -wi ipv6-2.6.33.3-tinycore.tcz
Downloading: netfilter-2.6.33.3-tinycore.tcz
Connecting to distro.ibiblio.org (152.19.134.43:80)
netfilter-2.6.33.3-t 100% |*******************************| 212k 0:00:00 ETA
netfilter-2.6.33.3-tinycore.tcz: OK
Downloading: ipv6-2.6.33.3-tinycore.tcz
Connecting to distro.ibiblio.org (152.19.134.43:80)
ipv6-2.6.33.3-tinyco 100% |*******************************| 176k 0:00:00 ETA
ipv6-2.6.33.3-tinycore.tcz: OK
4. 重新開機
$ reboot
5. 啟動 IPv6 核心模組
$ sudo modprobe ipv6
6. 檢示網卡資訊
$ ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:A0:66:8B
inet addr:192.168.100.66 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fea0:668b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:468 (468.0 B)
Interrupt:10 Base address:0x6000
在上面資訊中, 你會看到 IPv6 Link Local Address, 這位址開頭一定是 fe80, 後面數字則由網卡的 MAC 使用 EUI-64 公式來產生.
如要手動設定 IPv6 位址, 命令如下 :
# ifconfig eth0 fc00:babe:166::6/64 up
如要刪除 Link Local 位址, 命令如下 :
# ifconfig eth0 del fe80::5054:ff:fe06:121/64
如要手動設定 Default Gateway, 命令如下 :
# route add -A inet6 default gw fc00:babe:166::254 dev eth0
可將上面命令, 寫入 /opt/bootlocal.sh, 這樣就不需每次開機後, 還需手動設定. 雖然你手動設定 IPv6 位址,但是 Link Local IPv6 與 SLAAC IPv6 位址一樣還會產生,這與 IPv4 是不同的.請看下圖 :
檢視 IPv6 路由表, 命令如下 :
# route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
:
::/0 fc00:babe:166::254 UG 1 0 0 eth0
參考文章
1. 精讚部落 > 網際技術 > IPv6
訂閱:
文章 (Atom)
