星期三, 1月 05, 2011

Linux IPv6 設定

Linux 檢查是否支援 IPv6?

簡易判斷主機上的服務是否支援IPv6:
查看這個檔案是否存在 /proc/net/if_inet6 



#  netstat  -an
若出現
:::[service port]
的狀態,表示同時具備IPv6/IPv4服務的能力。

在啟用 IPv6 之前,要先檢查核心是否支援 IPv6,作法如下:
  1. 請執行 lsmod 指令查詢 ipv6 模組:

    lsmod | grep ipv6

    若有核心有支援 IPv6,應出現以下類似訊息:

    ipv6                  225488  12
  2. 接著,檢查是否支援建立隧道(tunnel)的能力:

    lsmod | grep tun

    若有支援 tunnel,應出現以下類似訊息:

    tun                    14220  0
  3. 檢查是否有支援 IPv6 的封包過濾功能:

    lsmod | grep ip6

    若有支援,應出現以下類似訊息:

    ip6table_filter         6668  1 
    ip6_tables             15896  1 ip6table_filter
    x_tables               15500  4 ip6_tables,xt_tcpudp,iptable_nat,ip_tables

若沒有支援,可能是核心模組沒有掛載,此時,請執行:


modprobe -c | grep net-pf-10
alias net-pf-10 ipv6


modprobe ipv6
modprobe tun
modprobe ip6_tables

如果出現  alias net-pf-10 off
則修改
#cat /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=yes
然後重啟network

並把 ipv6 和 tun 這二個字串加入到 /etc/modules 中。
若沒有這二個模組,表示核心沒有編譯加入 IPv6 的功能,請安裝有支援 IPv6 的核心,或加入 IPv6 選項,重新編譯、安裝新核心。

不想用 IPv6

1. 編輯 /etc/modprobe.conf

2. 把 alias net-pf-10 ipv6 改成:

alias net-pf-10 off

執行 modprobe -r ipv6 或重新開機即可。


windows XP 使用IPv6


Windows XP SP1/Server 2003
IPv6通訊協定已內建
可直接執行ipv6 install ,或由網路設定中啟動「 Microsoft IPv6 Developer Edition 」
測試是否安裝完成-->ping6 ::1



IPv6 ping

這個程式一般在iputils包裡, 用來測試簡單傳輸發送 ICMPv6 回應請求並等待ICMPv6 回應包.
用法:


# ping6 < hostwithipv6address >
# ping6 < ipv6address >
# ping6 [-I < device >] < link-local-ipv6address > 


例子:


# ping6 -c 1 ::1 
PING ::1(::1) from ::1 : 56 data bytes 
64 bytes from ::1: icmp_seq=0 hops=64 time=292 usec
--- ::1 ping statistics --- 
1 packets transmitted, 1 packets received, 0% packet loss 
round-trip min/avg/max/mdev = 0.292/0.292/0.292/0.000 ms


提示 ping6必需有適當的root權限才能使用, 如果不是root組用戶,使用時可能產生問題:
1.ping6 不在用戶的路徑當中 (probably, because ping6 is generally stored in /usr/sbin -> add path (not really recommended)
2.ping6 不能被正確執行, 通常沒有適當的權限 chmod u+s /usr/sbin/ping6

為ping6指定界面

用local-addresses 作為ping6 目標必需指定一個界面. 否則核心將不知道數據包發往哪個設備. 在沒有指定的情況下會有這樣的輸出:


# ping6 fe80::212:34ff:fe12:3456 
connect: Invalid argument


為ping6指定界面的結果:


# ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205 
PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from
?fe80::212:34ff:fe12:3478 eth0: 56 data bytes 
64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec
--- fe80::2e0:18ff:fe90:9205 ping statistics --- 
1 packets transmitted, 1 packets received, 0% packet loss round-trip
?min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms




參考資料

http://ipv6.tnc.edu.tw/ipv6/
http://6book.ndhu.edu.tw/download/IPv6/ch7.pdf
http://ipv6.tnc.edu.tw/ipv6/
http://www.rd.ipv6.org.tw/?p=911
http://www.generationip.com/documentation/system-documentation/73-ipv6-configuration-on-redhat-centos-fedora
http://sites.google.com/site/zorodesuisuinian/wang-ji-wang-lu-1/ipv6-2
http://www.linux.org.tw/CLDP/OLD/Linux-IPv6-HOWTO-4.html

沒有留言: