網際網路‎ > ‎

IPv6

相關連結:
台灣NGN IPv6 移轉技術入口網 http://www.rd.ipv6.org.tw/
台南縣教育網路中心IPV4/IPV6偵測網站 http://ipv6.tnc.edu.tw/
宏明老師的教學Blog,詳細的CentOS的IPV6環境架設 http://blog.hmes.kh.edu.tw/wordpress/jang/category/ipv6/
有血有淚(?!)的工程師告白Home networking with IPv6 http://www.linuxha.com/other/home-ipv6.html

ipv6檢測基本指令:

ping6
就是ping啦...

route -A inet6
看一下ipv6相關的路由表

/sbin/ip -f inet6 addr
查一下本機上面各個裝置(包含lo)的ipv6位址

IPv6的基本認識(未完)

張貼者:2010年5月20日 下午11:30Wei-Chang Lin   [ 已更新 2010年7月8日 上午1:05 ]

1.先說IPv4與IPv6的差別       

IPv4
IPv6
 表示方法 IPv4使用10進位,用「.」隔開  IPv6 使用 16 進位數字和「:」分隔
 書寫方式完全表示 數字前的0可用:簡化,唯只可簡化1次.(為了位址的正確判別)
 http協定的網址輸入 http://IP http://[IP]
 傳輸表頭(Header Length) 20byte-60bytes不等 固定為40bytes
  IP數量 IPv4有四個class,亦即4組,1組有2個16進位數字,共有2的32次方個ip位置 IPv6使用8組數字,1組有4個16進位數字,共有2的128次方個IP位置(即128bits的長度,換算成十進位可以有39位數之多)
在IP表示的"/"後面的數字
代表netmask
代表prefix,即網路位址部份的表示(又分為global routing prefix與subnet ID),例如2001:288:4677:1234::1/64,前面的48個位元(2001:288:4677)就是global routing prefix,之後的16位元(1234)是subnet ID.而基本上全域的單一IP位址都是/64,可以說不會再有設錯netmask的問題了.
(謎之聲:不過,其實還是會有/48之類的數字出現...Orz)
 本機位址(localhost address) 127:0:0:1 ::1
 區網範圍(即私人定址IP)192.168.xxx.xxx/16、172.16.0.0/12、10.0.0.0/8
 僅內部可用的範圍包括fe8x,fe9x,feax,febx,即fe8x::/10(目前只有fe80在用,例如fe80::224:73ff:fe02:f701)、類似10.0.0.0/8般私人定址意義的範圍是fecx,fedx,feex,fefx,即fecx::/10
 代表全部的位址 0:0:0:0 ::
 IPv4映射的IPv6地址  ::ffff:a.b.c.d/96
 自動分配的位址 依DHCP動態給予 依機器MAC產生唯一位址
2.國內教育單位的IPv6位置分配一覽http://domain.edu.tw/dns/colleges.htm

Tunnel與非不得已的IPv6使用方式:Teredo

張貼者:2010年5月20日 下午11:21Wei-Chang Lin   [ 已更新 2010年7月9日 上午12:07 ]

Tunnel Broker服務介紹:http://www.ascc.sinica.edu.tw/iascc/articals.php?_section=2.4&_op=?articalID:2258
Linux 下的IPv6 Tunnel實做:
http://linux-hacks.blogspot.com/2008/02/howto-ipv6-ipv6-tunnel-and-ip4-ipv6.html
http://www.generationip.com/documentation/system-documentation/73-ipv6-configuration-on-redhat-centos-fedora
http://ipv6int.net/systems/linux-ipv6.html
老話一句,先確定Linux核心版本要支援,不然就別瞎忙了。


以下是將Linux主機變成一台ipv6與ipv4轉發的router需要寫入的內容
vi etc/sysconfig/network-scripts/ifcfg-sit1,新增內容如下(檔名部份是ifcfg-sitx皆可,x>=1)
DEVICE=sit1                       # tunnel的介面名稱
BOOTPROTO=none             # 開機時所欲啟動的協議
ONBOOT=yes                     # 開機啟動
IPV6INIT=yes                     # 打開ipv6的功能
IPV6TUNNELIPV4=168.9x.1.xxx     #打算用來建立tunnel的本地ipv4位址(遠端要認識才行呀)
IPV6ADDRESS=2001:288:46xx::xxxx     #被分配到的ipv6 addesss

寫好之後,用ifup sit1開啟,ifdown sit1關閉。完畢。
呃,如果這台主機沒有ipv6 address,請在/etc/sysconfig/static-routes-ipv6中加入一行字:
sit1
2001:288:46xx::xxxx       #可用router的ipv6位址


---------------Teredo------------------------------------
簡單來說,Teredo的運作原理就是利用IPv4標頭與UDP標頭來封裝IPv6封包,使IPv6封包成為UDP的承載資料(Payload)。只要NAT具備UDP埠的轉換功能,便能夠支援Teredo.請參閱此篇文章.
台灣網路資訊中心http://www.myhome.net.tw/2003_12/web/main2.htm

而這種方式最大的問題就是現行架構下防火牆的失效.那這樣該怎麽辦?再說吧~我也不知道.

Linux的IPv6設定教學

張貼者:2010年5月11日 下午11:48Wei-Chang Lin   [ 已更新 2010年7月9日 上午12:18 ]

完整理解架設原理的翻譯文件-Linux IPv6 HowTo:http://www.linux.org.tw/CLDP/OLD/Linux-IPv6-HOWTO.html
不想看中文的另一個選擇:http://forskningsnett.uninett.no/ipv6/IPv6hostslinux_fedora.html

----以下內容主要出自於個人對上述文件的整理(順便唸一下,台灣NGN的Linux教學肯定不是寫給我看的,都不用設定就能直接用,太強了啦Orz)----


輸入指令modprobe -c | grep ipv6
可以檢查核心預設是不是已啟動了IPv6的服務。(看到alias net-pf-10 ipv6就對啦~)

以筆者的CentOS主機為例,通常已預設安裝好相關服務,進行以下設定即可:
1./etc/sysconfig/network
當中應該加入有
NETWORKING_IPV6=YES
IPV6_DEFAULTGW=2001:288:4677::FF     #設置輸入自己區段的Default Gateway
#IPV6FORWARDING=yes                        #IPv6轉發功能,有用到才加.
2./etc/sysconfig/network-scripts/ifcfg-eth0當中加入以下位置   (如果多張網卡,請自行比照辦理)
IPV6INIT=yes                                          #啟用這個interface的IPv6功能,一定要!
IPV6ADDR=2001:288:4677::225                #給予此interface的位址,參照IPv6應遵循的規則填入
#IPV6ADDR_SECONDARIES="3ffe:ffff:0:1::1"   #如果另外對內想要有私有IP請拿掉#並自行填入IP
IPV6_AUTOCONF=no                              #如果是自動抓取請將改為yes,而Address部份最前面就加上#(此選項預設為: yes if IPV6FORWARDING=no, no if IPV6FORWARDING=yes)

3.重新啟動網路,輸入service network restart  (當然,也可以用/etc/init.d/network restart)

完成!


*fe80::/64也就是所謂的IPv6 link-local 位址,即本地端位置,所有真正連出去的IP應該要有像2001:288:4677::(前64個bits)這樣子的Global Routing Prefix.沒搞懂的人請看這一篇.

-----------------------------------------------------

如果還想更進一步的朋友,可以使用系統內建的基本工具檢查一下.(通常核心有IPv6 , /sbin/ 下面就會裝好工具可以用啦~)
相關指令:
# ping6 [-I < device >] < link-local-ipv6address >          (不用說,這就是一定要會的ping指令啦!)
# traceroute6 www.ipv6.hinet.net                                (測網路節點用,和windows底下的tracert指令差不多的用途)
# tracepath6  www.ipv6.hinet.net                                (追蹤MTU的路徑)
# tcpdump
# ifconfig
# ip addr
# ip -6 route show dev <device>
# host -t AAAA www.ipv6.hinet.net
# telnet ::1 80                                                             (telnet一樣有效,別懷疑!)
# route -A inet6
-------------------------------------------------------
實際操作過程:
1.用來檢測IPv6是否啟動的指令:
    ifconfig
    ip addr
    ip -6 addr show dev <device>  (這個指令很不錯,只會乾脆的將scope global 、scope global dynamic 、scope link三個位址寫出來)
2.查詢Default Gateway
    ip -6 route (最後一行裡的default via後面接的fe80::224:73ff:fe02:f701 dev eth0這種東西就是了...不想看到太多字的請下ip -6 route show dev eth0這個指令)
    接下來就可以ping看看Gateway通不通囉
    ping6 -I eth0 fe80::224:73ff:fe02:f701 
3.再看看連外能力
    路由前導碼測試(Global Routing Prefix,就是前面ip -6 route裡default via後面接著的2001:288:4677::ff)
    ping6 2001:288:4677::225
    連外測試
    ping6 www.ipv6.hinet.net
4.Dns測試
    host -t AAAA www.ipv6.hinet.net
5.海龜測試
    請上http://www.kame.net/ ,看看海龜會不會動吧!

Windows底下的IPv6協定安裝方法

張貼者:2010年5月11日 下午11:25Wei-Chang Lin   [ 已更新 2010年7月8日 下午11:18 ]

1.Windows2000安裝IPv6的方法:

下載tpipv6-001205
網址:
 
解壓縮後不同的安裝方法:
根據sp1/sp2/sp3/sp4選擇的值分別為256/512/768/1024

sp1-直接執行目錄下的setup.exe即可.

sp2-

步驟一:在目錄下執行setup –x 解壓,然後到該目錄下找到hotfix.ini,把﹝Version﹞下的NTServicePackVersion=256改成512。
步驟二:執行hotfix.exe,重新開機即可。

sp3-仿照sp2的方式,數字改成768。

sp4-仿照sp2的方式,數字改成1024。

改完之後,到﹝網路連線﹞新增﹝通訊協定﹞,選IPV6即可。

2.Windows XP/server 2003版本:

非看圖解不可的請點選http://www.rd.ipv6.org.tw/?p=911,依照一般點選網際網路的服務安裝方式或是直接到cmd底下輸入ipv6 install就裝好了。
3.Windows Vista及7已內建,不須設定安裝。

4.安裝完成之後,設定ipv6在cmd底下可使用以下指令:
1.ping6     --->ipv6的ping指令        (ping6 ::1 可以先用來測試服務正不正常)
2.tracert6 -->ipv6版的tracert
3.ipv6 rt -->顯示ipv6的路由表
4.ipv6 if -->類似ipv6的ipconfig
5.net stop tcpip6-->停止ipv6
6.net start tcpip6
7.nslookup -q=aaaa xxxx.xxxx.xxx  <---測DNS正不正常

Address手動設定輸入:

1.netsh增加
2.或是使用ipv6 adu ﹝interface編號﹞/2001:xxxx:xxxx:... 進行設定。
3.ipv6 rtu ::/0 4/2001:xxxx:xxxx:.....   設定路由
*ipconfig為IPv4/IPv6之共通指令

改換IPV6的先備條件

張貼者:2010年5月11日 下午10:45Wei-Chang Lin   [ 已更新 2010年7月8日 上午1:12 ]

1.所有內部網路設備(firewall、switch、hub等等)都要有支援IPv6
2.從內部僅支援IPv6的設備要去存取外部僅支援IPv4的伺服器時,必須要有IPv6-to-IPv4轉換器。
3.需要跟外部IPv4伺服器通訊的伺服器,例如:回覆DNS的查詢和傳送電子郵件,就必須同時擁有IPv4/6的組態設定,否則電子郵件將無法傳送到外部的IPv4伺服器。(設定IPV4/IPV6 Dual Stack)
4.會被外部存取的伺服器也必須同時擁有IPv4/6的組態設定,否則外部僅使用IPv4的客戶端將無法與你的網路通訊。
 
*以上來源為http://www.ipv6.org.tw/網站

  5.你可愛的系統核心必須要支援啦~例如Linux下請找找 /proc/net/if_inet6 , 沒有的話就囧很大啦~

1-5 of 5