顯示具有 Linux筆記 標籤的文章。 顯示所有文章
顯示具有 Linux筆記 標籤的文章。 顯示所有文章

星期四, 4月 28, 2011

linux 更改 hostname

Linux (Redhat / Fedora / CentOS) 更改 hostname 的方式

發現更改主機的 hostname 的方式都改不太完整. 以下是試出來比較完整的方式:

Step 00:

  • 假設原本 hostname 為 tryboxap2, 現在想要更改為 tryboxap03
  • 使用 root 才可以更改 hostname
su - root

Step 01:

  • 將 /etc/hosts 內出現的 tryboxap2 都改成 tryboxap03
:
127.0.0.1 tryboxap03 localhost.localdomain localhost

Step 02:

  • 將 /etc/sysconfig/network 內的 HOSTNAME 改成 tryboxap03
NETWORKING=yes
HOSTNAME=tryboxap03
GATEWAY=61.67.71.126

Step 03:

  • 再使用 hostname 命令指定一次
hostname tryboxap03
  • 這時就已經設定完成. 可以使用 hostname 命令去確認一次
[root@tryboxap2 etc]# hostname
tryboxap03
[root@tryboxap2 etc]#
只要重新登入, 命令提示字串就會改成 [root@tryboxap03 etc]#


參考:
http://www.ichiayi.com/wiki/tech/linux_hostname

星期四, 3月 24, 2011

Linux 效能分析

iostat 
[root@hqu-mysql ~]# iostat -x 
Linux 2.6.9-89.0.15.ELsmp (hqu-mysql)   2009年11月25日 

avg-cpu:  %user   %nice    %sys %iowait   %idle 
                   7.95       0.00       5.96       1.24      84.85 

Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz await  svctm  %util 
ida/c0d0     0.03   7.54  6.29  7.11   94.87  117.22    47.44    58.61    15.84     1.09       81.67   4.51   6.04 
ida/c0d0p1   0.03   7.54  6.29  7.11   94.87  117.22    47.44    58.61    15.84     1.09       81.68   4.51   6.04 
ida/c0d0p2   0.00   0.00  0.00  0.00    0.00    0.00     0.00     0.00        45.66     0.00       12.72  10.03   0.00 
数据库应该是有硬盘io延迟问题的。 

结果详解: 
% user      显示了在用户级(应用程序)执行时产生的 CPU 使用率百分比。 
% sys       显示了在系统级(内核)执行时产生的 CPU 使用率百分比。 
% idle       显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比。 
% iowait   显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。 

rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s 
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s 
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s 
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s 
rsec/s: 每秒读扇区数。即 delta(rsect)/s 
wsec/s: 每秒写扇区数。即 delta(wsect)/s 
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。 
wkB/s: 每秒写K字节数。是 wsect/s 的一半。 
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio) 
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。 
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio) 
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) 
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒) 

简单分析: 
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。 

svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。 

队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。 

vmstat 
[root@sends ~]# vmstat -a 2 
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- 
r  b   swpd   free  inact active   si   so    bi    bo   in    cs us sy id wa 
2  0      0 589428 847744 2391492    0    0     1    21    3     6 23 13 64  0 
2  0      0 585972 848296 2394760    0    0     0    62 1076   754 21 33 46  0 
1  0      0 589108 848796 2390680    0    0     0     0 1077   702 22 33 46  0 
1  0      0 629604 825368 2374436    0    0     0    30 1024   685 20 32 47  0 
1  0      0 631012 825368 2372948    0    0     0    20 1029   682 21 33 46  0 


结果分析: 
Procs 
r:等待执行的任务数 
b:处在非中断睡眠状态的进程数 
展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了 

Memory 
swpd:正在使用的swap大小单位K
free:空闲的内存空间
buff:已使用的buff大小,对块设备的读写进行缓冲
cache:已使用的cache大小,文件系统的cache
inact: 
active: 

Swap 
si:交换内存使用,由磁盘调入内存 
so:交换内存使用,由内存调入磁盘 

IO 
bi:从块设备读入的数据总量(读磁盘) (KB/s) 
bo:写入到块设备的数据总理(写磁盘) (KB/s) 

System 
in:每秒产生的中断次数
cs:每秒产生的上下文切换次数 
上面这2个值越大,会看到由内核消耗的CPU时间会越多 

CPU 
us:用户进程消耗的CPU时间百分比 
us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了 
sy:内核进程消耗的CPU时间百分比 
sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。 
id:空闲
wa:IO等待消耗的CPU时间百分比 
wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。




使用Linux性能分析工具
Linux在具有高穩定性、可靠性的同時,具有很好的可伸縮性和擴展性,
能夠針對不同的應用和硬件環境調整,優化出滿足當前應用需要的最佳性能。
因此企業在維護Linux系統、進行系統調優時,了解系統性能分析工具是至關重要的。

在Linux下有很多系統性能分析工具,
比較常見的有top、free、ps、time、timex、uptime等。
下文將介紹几個較為重要的性能分析工具vmstat、iostat和sar及其使用。

用vmstat監視內存使用情況
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監視。
它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。

vmstat的語法如下:
vmstat [-V] [-n] [delay [count]]

其中,-V表示打印出版本信息;-n表示在周期性循環輸出時,輸出的頭部信息僅顯示一次;
delay是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。
對于vmstat輸出各字段的含義,可運行man vmstat查看。



用iostat監視I/O子系統情況
iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。
它的特點是匯報磁盤活動統計情況,同時也會匯報出 CPU使用情況。
同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。

iostat的語法如下:
iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]

其中,-c為匯報CPU的使用情況;-d為匯報磁盤的使用情況;-k表示每秒按kilobytes字節顯示數據;
-t為打印匯報的時間;-v表示打印出版本信息和用法;-x device指定要統計的設備名稱,默認為所有的設備;
interval指每次統計間隔的時間;count指按照這個時間間隔統計的次數。



使用sar進行綜合分析
sar是System Activity Reporter(系統活動情況報告)的縮寫。
顧名思義,sar工具將對系統當前的狀態進行取樣,然后通過計算數據和比例來表達系統的當前運行狀態。
它的特點是可以連續對系統取樣,獲得大量的取樣數據;取樣數據和分析的結果都可以存入文件,所需的負載很小。
sar是目前Linux上最為全面的系統性能分析工具之一,可以從14個大方面對系統的活動進行報告,
包括文件的讀寫情況、系統調用的使用情況、串口、CPU效率、內存使用狀況、進程活動及IPC有關的活動等,使用也是較為複雜。

sar的語法如下:

sar [-option] [-o file] t [n]
它的含義是每隔t秒取樣一次,共取樣n次。其中-o file表示取樣結果將以二進制形式存入文件file中。

sar option參數說明

選項 功能
-A 匯總所有的報告
-a 報告文件讀寫使用情況
-B 報告附加的緩存的使用情況
-b 報告緩存的使用情況
-c 報告系統調用的使用情況
-d 報告磁盤的使用情況
-g 報告串口的使用情況
-h 報告關于buffer使用的統計數據
-m 報告IPC消息隊列和信號量的使用情況
-n 報告命名cache的使用情況
-p 報告調頁活動的使用情況
-q 報告運行隊列和交換隊列的平均長度
-R 報告進程的活動情況
-r 報告沒有使用的內存頁面和硬盤塊
-u 報告CPU的利用率
-v 報告進程、i節點、文件和鎖表狀態
-w 報告系統交換活動狀況
-y 報告TTY設備活動狀況


另一種語法如下:

sar [-option] [-s time] [-e time] [-i sec] [-f file]

含義是表示從file文件中取出數據,如果沒有指定-f file,
則從標准數據文件/var/adm/sa/sadd取數據,其中dd表示當前天。
另外,-s time表示起始時間;-e time表示停止時間;
-i sec表示取樣的時間間隔,如果不指定則表示取文件中所有的數據。

一般它與-q和-u聯合使用,以便對每個CPU的使用情況進行分析,比如運行如下命令:
sar -q -u 5 1

由于sar命令太複雜,只有通過熟練使用才能了解每個選項的含義,
對于sar輸出中每個字段的含義運行man sar命令可以得到詳細的解釋。





參考資料:
http://saplingidea.javaeye.com/blog/526617
http://tw.myblog.yahoo.com/bullock0425/article?mid=-2&prev=534&l=a&fid=25

星期二, 3月 15, 2011

Linux DMA 關閉

當Linux 出現

Mar 15 05:52:23  kernel: ide-cd: cmd 0x3 timed out
Mar 15 05:52:23 qwfnhrep02 kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 15 05:52:23 qwfnhrep02 kernel: hda: irq timeout: error=0x00
Mar 15 05:52:24 qwfnhrep02 kernel: hda: ATAPI reset complete

表示開啟DMA的功能,但是OS不支援
Linux 本身預設是開啟的
上面的訊息為hda光碟機有DMA功能OS不支援,但不影響server的運作
檢查系統中的DMA選項是否已被啓動
Linux中的hdparm命令是用來進行操控硬碟、光碟機之類設備的,
用hdparm -i /dev/hda可以列出IDE可能支持的DMA模式,如:

DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4

啓動DMA支援
方法1:
在lilo.conf中加入:idex=dma,其中x代表硬碟序號,其取值範圍0-3,
分别代表系統中的四個IDE硬碟設備。

方法2:
使用hdparm命令,hdparm -d1 /dev/hda 其中d1表示開啓DMA模式,
可以利用加到rc.local中以便每次啓動OS時能使用DMA模式傳輸資料。

關閉DMA
命令格式:
hdparm -d0 /dev/hda 

參考資料:

星期五, 3月 11, 2011

將messages log 裡的snmp log 切出來

messages log 被 大量的 snmp log Received SNMP packet(s) from UDP:佔滿
修改/etc/sysconfig/snmpd.options
新增OPTIONS="-Lf /dev/null -p /var/run/snmpd.pid"
然後重新restart snmpd


參考資料
http://space.itpub.net/35489/viewspace-673743
http://kaien.wikidot.com/linux:rhel-snmp-syslog
http://blog.mgcrazy.com/?p=59

星期二, 3月 08, 2011

sendmail : STARTTLS: read error=generic SSL error (0)

sendmail 出現下列訊息,並一直重覆出現 STARTTLS: read error=generic SSL error (0)


Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: STARTTLS: write error=syscall error (-1)
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: STARTTLS: write error=generic SSL error (-1)
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: p275hbkf017322: SYSERR(root): putbody: write error: Input/output error
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: p275hbkf017322: to=<jn075@webmail.mlc.edu.tw>,<ylg785@webmail.mlc.edu.tw>, delay=00:08:32, xdelay=00:05:11, mail
er=esmtp, pri=960570, relay=nopam.mlc.edu.tw. [163.19.163.60], dsn=4.0.0, stat=I/O error
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  7 13:52:11 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)


查看 /etc/mail/sendmail.cf  沒有打開TLS選項確一直出現
google一下有可能是sendmail 8.12.X的bug
大部份都說去改一個site.config.m4 的檔案,還要再compiler ,還是先不要這麼做...
查到一個方法是把出現STL那個訊息的process 砍掉
http://www.utahsysadmin.com/2007/02/09/starttls-read-errorgeneric-ssl-error-0/
原來這麼簡單...

[root@QWFNHMAIL01 log]# tail maillog
Mar  8 10:33:15 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  8 10:33:16 QWFNHMAIL01 last message repeated 54114 times
Mar  8 10:33:16 QWFNHMAIL01 sendmail[29009]: p282XDkx029009: Too many recipients
Mar  8 10:33:16 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  8 10:33:16 QWFNHMAIL01 last message repeated 11 times
Mar  8 10:33:16 QWFNHMAIL01 sendmail[29009]: p282XDkx029009: from=<tp6888@xuite.net>, size=0, class=0, nrcpts=50, proto=SMTP, daemon=MTA, relay=[10.117.10.81]
Mar  8 10:33:17 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  8 10:33:22 QWFNHMAIL01 last message repeated 221790 times
Mar  8 10:33:22 QWFNHMAIL01 sendmail[29010]: p282XMkw029010: [172.16.216.6] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Mar  8 10:33:22 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)

[root@QWFNHMAIL01 log]# kill -9 17353
[root@QWFNHMAIL01 log]# ps -ef |grep sendmail
root      2814     1  0  2010 ?        00:00:00 [sendmail]
root     26302     1  0 Mar07 ?        00:00:03 [sendmail]
smmsp    26311     1  0 Mar07 ?        00:00:00 [sendmail]
root     28798     1  0 10:27 ?        00:00:00 [sendmail]
root     28980     1  0 10:31 ?        00:00:00 [sendmail]
root     28990     1  0 10:32 ?        00:00:00 [sendmail]
root     29008     1  0 10:33 ?        00:00:00 [sendmail]
root     29009 26302  0 10:33 ?        00:00:00 [sendmail]
root     29014 28578  0 10:33 pts/1    00:00:00 grep sendmail

星期四, 1月 06, 2011

IPv6 位址表示

IPv4與IPv6的差別        



IPv4IPv6 
 表示方法 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產生唯一位址

有別於 IPv4 使用十進位數字和「.」分隔來表示 IP 位址(比如 163.26.197.1),IPv6 使用 16 進位數字和「:」分隔來表示位址。


2001:0288:7400:0200:0000:0000:0000:0001  <--- 這是教網中心 DNS Server 的 IPv6 位址。
2001:0470:1f05:0a89:0000:0000:0000:0001  <--- 這是我家伺服主機 www.ols3.net 的 IPv6 位址。
2001:0200:0000:8002:0203:47ff:fea5:3085  <--- 這是 http://www.kame.net 的 IPv6 位址。


由這裡,我們可以觀察得到,IPv6 的位址使用「:」分隔,共有 8 組,每組中有四個 16 進位數字,每組佔 16 bits。每個 16 進位數字,有一特殊的英文稱呼,叫 nibble。一個 nibble 等於 4 bits。

如何用瀏覽器連接 IPv6 IP 位址的網站? 請在位址列鍵入:http://[2001:470:1f05:a89::1]/ (以 [ ] 含括 IPv6 位址)


IPv6 的寫法是可以簡化的,舉例如下:

1. 數字之前的 0 可以省略,全部是 0 可以只寫一個 0:

比如:2001:0288:7400:0200:0000:0000:0000:0001 可寫成 2001:288:7400:200:0:0:0:1

2. 連續多個 0 可用 :: 代表,但僅限一次:

比如:2001:288:7400:200:0:0:0:1 可寫成 2001:288:7400:200::1

3. 全部都是 0 可寫成 :: 。

4. loopback 在 IPv6 的對應寫法是 ::1 (0:0:0:0:0:0:0:1)。

5. 其它常見的位址有:ff02::2、 ff02::1。

參考資料

IPv6 DNS Server 設定

IPv6 DNS Server設定

設定方法如下:
1. 修改 named.conf,加入以下設定:

options {
           directory "/etc/named";
           allow-transfer {
           192.168.1.2; // Secondary DNS

        };
        listen-on-v6 { any; };  <--- 加入這一列
};
反解zone設定:
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa."{
        type master;
        file "rev.local6";
};
正解檔使用AAAA記錄
2. 重新啟動 named:
service named restart
或 
/etc/init.d/named restart

查看:
netstat -nlap | grep 53
若有出現 tcp6/udp6,表示已有支援 IPv6 的 DNS Server 了。

tcp    0  0 127.0.0.1:953    0.0.0.0:*   LISTEN     21588/named         
tcp6   0  0 :::53            :::*        LISTEN     21588/named         
tcp6   0  0 ::1:953          :::*        LISTEN     21588/named         
udp    0  0 127.0.0.1:53     0.0.0.0:*              21588/named         
udp6   0  0 :::53            :::*                   21588/named


參考資料
http://ipv6.tnc.edu.tw/ipv6/x772.html

星期三, 1月 05, 2011

IPv6 over IPv4

IPv6 隧道(tunnel)

並不是每個人都,可以玩到純 IPv6 的環境,比如在家中使用的 ADSL。
不過,只有 IPv4 的網路環境,照樣可以玩 IPv6。解決之道,便是隧道(tunnel)。簡單地來說,所謂的隧道是把 IPv6 的封包,封裝在 IPv4 裡面,經 IPv4 的路由傳輸到對方,最後由對方的路由器解開封包,還原成 IPv6 的封包,藉此達到傳輸 IPv6 網路的目的。這種作法,和 VPN(虛擬私有網路)很像。
IPv6 在 IPv4 建立隧道的方法很多,比如 6in4、6to4、6over4、ISATAP、GRE、Teredo、OpenVPN 等等,除此之外,還有許多提供 Tunnel 服務的供應商,稱為 Tunnel Brokers,都可以協助我們突破現實網路環境的障礙, Teredo 這種隧道機制,它最大的好處是可以穿越 NAT,讓躲在 NAT/防火牆後面的主機,也能和 IPv6 的站台連接。
安裝方法很簡單:

yum install miredo

設定檔在 /etc/miredo.conf。
B2D/OB2D Server 內建的 miredo,會指向台南縣教網中心的 Teredo Server(natt.tnc.edu.tw),如下所示:

# Please refer to the miredo.conf(5) man page for details.
InterfaceName   teredo

# Pick a Teredo server:
#ServerAddress  teredo.ipv6.microsoft.com
#ServerAddress  teredo-debian.remlab.net
ServerAddress   natt.tnc.edu.tw

# Some firewall/NAT setups require a specific UDP port number:
#BindPort       3545

若您想改用其它 Teredo Server 也行,比如使用 teredo-debian.remlab.net 這一部,若欲如此,請把 natt 這一部註解掉:

# Please refer to the miredo.conf(5) man page for details.
InterfaceName   teredo

# Pick a Teredo server:
#ServerAddress  teredo.ipv6.microsoft.com
ServerAddress  teredo-debian.remlab.net
#ServerAddress   natt.tnc.edu.tw

# Some firewall/NAT setups require a specific UDP port number:
#BindPort       3545

再重新啟動 miredo 即可:

service miredo restart

或

/etc/init.d/miredo restart

接下來,您就可以連接 IPv6 的站台了,就算您身處 NAT 後面,也沒有關係,照樣可以連線出去。
很可惜的是,Windows 平台 IPv6/IPv4 stack 的實作,對 Teredo 穿越對稱式 NAT 的支援不好,其狀況如下:

XP sp1+IPv6 套件  -----> 可用。

XP sp2、sp3 -----------> 只要是在對稱式 NAT 後面,XP 便會自動關閉 Teredo 的功能。

Vista -----------------> 可用,但 IPv4 和 IPv6 只能分開連線。

Win 7 -----------------> 可用? (應該可用,但不保證)

Windows 平台,欲使用 Teredo 隧道穿越對稱式 NAT,連上 IPv6 的網路,真的是要「看運氣」! 但對 Linux 來說,卻可以輕鬆輕鬆地就連上 IPv6。

參考資料
http://ipv6.tnc.edu.tw/ipv6/c940.html

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