歡迎您光臨本站 註冊首頁

GNU/Linux 環境 IPv6 簡明應用指南

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

IPv6 是什麼,與 IPv4 有什麼不同?請參考[1]。深層問題請參考 IPv6 相關 RFC 文檔,特別是參考[1]提及的 RFC 文檔。

原生 IPv6 環境

需要載入 ipv6 內核模塊,或編譯到內核。

方法一、靜態 IPv6,手工配置 IPv6 地址和路由。

方法二、啟用 IRDP 讓系統自動配置,要求 IPv6 路由器支持 IRDP。

方法三、啟用 DHCP client 自動配置,要求 DHCP server 支持 IPv6。

ISC dhcp-4.1+ 支持 IPv6。

原生 IPv4 環境

需要載入 ipv6、tun、sit 內核模塊,或編譯到內核。由於使用 IPv6 tunnel,性能較原生 IPv4 有微量下降。

方法一、手工配置 IPv6 tunnel。

方法二、啟用 6to4 tunnel,要求有公網 IPv4 地址。

假設公網 IPv4 地址為 192.0.2.19。對應 6to4 地址為:

$ printf "2002:%02x%02x:%02x%02x::1\n" `echo 192.0.2.19 | tr . ' '` 2002:c000:0213::1  

配置命令如下:

  ip tunnel add tun6to4 mode sit remote any local 192.0.2.19  ip link set dev tun6to4 mtu 1472 up  ip -6 addr add 2002:c000:0213::1/16 dev tun6to4    ip -6 route add ::/96 dev tun6to4 metric 1  ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1    

自動配置腳本可參考[2]。

方法三、啟用 tunnel broker,要求有公網 IPv4 地址。

優點是可以長期擁有公網固定 IPv6 地址,缺點要註冊。建議使用自動配置工具 aiccu,此工具也支持 NAT 環境,及穿越防火牆。

方法四、啟用 teredo tunnel,要求使用於 NAT 環境,對 NAT 類型有限制。

特別適用於以 NAT 方式訪問網路的虛擬機,不適用於橋接方式。建議使用自動配置工具 miredo。

方法五、啟用 isatap tunnel。

公網不常用,可參考[3]手動配置。

DNS

查詢對應域名 IPv6 地址,需要查詢 DNS AAAA record。查詢對應域名 IPv4 地址,需要查詢 DNS A record。 DNS root server 早已全面啟用 AAAA record,且可通過 IPv6 地址訪問;為減少 root server 壓力,使用時請自覺架設 dns relay server。

當前 opendns,遇到無 A record 情況會返回 opendns 地址,不適宜 IPv6 環境使用;google public dns 無此問題,推薦使用。

iptables、ip6tables

主機上,完全放行外出訪問,並且接受返回的連接即可。限制外出訪問的情況,請放行 "iptables -t filter -A OUTPUT -p ipv6 -j ACCEPT",請根據自己需要適當調整。

IPSEC

誤解:IPv6 默認使用 IPSEC,不用擔心安全問題。對 Linux 來說,載入 ipv6 內核模塊時,會自動載入 ipsec 內核模塊,編譯到內核時類似。 IPSEC 要配置才有效,配置工具 ipsec-tools,且暫無簡單配置方法。 IPSEC 可實現 host to host、host to router、router to router 加密,且可選擇加密 報頭、報文、報頭+報文中任一方式。

總結

配置好 IPv6 環境,接著可以玩出許多花樣。比如,可以在原生 IPv4 環境下,配置一個純 IPv6 子網,子網內僅使用 IPv6,並可正常訪問互聯網。比如,可以用 IPv6 實現公司和家庭主機直接互聯,即使主機均在 NAT 后,不需藉助 vpn 之類東東。比如,可以給主機添加 dns AAAA record,配置 IPv6 就緒的伺服器。

歡迎指正!

參考資料:

[1] http://en.wikipedia.org/wiki/IPv6
http://wiki.debian.org/DebianIPv6
http://www.gentoo.org/doc/en/ipv6.xml

http://en.wikipedia.org/wiki/6to4
http://6to4.version6.net/?lang=en_GB

[2] http://www.wlug.org.nz/6to4
http://www.ipv6tf.org/index.php?page=using/connectivity/6to4
http://bgpmon.net/6to4.php
http://docsun.cites.uiuc.edu/sun_docs/C/solaris_9/SUNWaadm/IPV6ADMIN/p21.html
http://web.archive.org/web/20080112194146/http://www.kfu.com/~nsayer/6to4/
http://www.kfu.com/~nsayer/6to4/

http://en.wikipedia.org/wiki/Tunneling_protocol

[3] http://www.litech.org/isatap/

http://go6.net/
http://gogonet.gogo6.com/

http://www.cyberciti.biz/faq/how-can-ipv6-address-used-with-webbrowser/
http://ipv6blog.net/

http://www.google.com/intl/en/ipv6/

http://kb.wisc.edu/cae/page.php?id=10985
http://www.ipv6.org/v6-www.html



[火星人 ] GNU/Linux 環境 IPv6 簡明應用指南已經有568次圍觀

http://coctec.com/docs/enterprise/show-post-73123.html