2011年7月10日 星期日

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
 

沒有留言:

張貼留言