iperf 有提供 IPV6 的傳輸方式,只需要用參數 -V 即可.
-V, –IPv6Version 使用 IPv6
第一次用 iperf 可以參考 https://benjr.tw/462
IPv6 網卡在啟動時就會指派一組 IPV6 link-local address (不過 link-local address 不可以跨 Router ,只能使用在同區段與其他電腦相互溝通,),而這 link-local address 是唯一的而且是依據網卡的 MAC Address 而有所變動,我們可以直接用這一組來跑即可.轉換方式請自行參考 https://benjr.tw/17341
- Server 端 IPv6:fe80::a00:27ff:fe1a:7b14
Client 需要知道 Server 端的 IPv6 Address ,所以透過 ifconfig 來查看.root@bbeenn-VirtualBox2:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 08:00:27:1a:7b:14 inet addr:192.168.42.27 Bcast:192.168.42.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe1a:7b14/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:129 errors:0 dropped:0 overruns:0 frame:0 TX packets:154 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14114 (14.1 KB) TX bytes:24085 (24.0 KB)
基本上 Server 端只需要多一個 -V 參數即可.只需要等待 Client 端進行傳送.
root@bbeenn-VirtualBox2:~# iperf -s -V ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------
- Client 端 IPv6:fe80::a00:27ff:fedd:6c5b
IPv6 需要透過 ping6 這個指令來確認 server 端的 IPv6,如果是要 ping Link Local address 時需要在 ping6 IPv6 後面的參數加上你是透過哪一個 ethernet port 出去的,如 eth0 後面就再加上 %eth0 .root@bbeenn-VirtualBox1:~# ping6 fe80::a00:27ff:fe1a:7b14%eth0 PING fe80::a00:27ff:fe1a:7b14%eth0(fe80::a00:27ff:fe1a:7b14) 56 data bytes 64 bytes from fe80::a00:27ff:fe1a:7b14: icmp_seq=1 ttl=64 time=1.15 ms 64 bytes from fe80::a00:27ff:fe1a:7b14: icmp_seq=2 ttl=64 time=0.547 ms ^C --- fe80::a00:27ff:fe1a:7b14%eth0 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5000ms rtt min/avg/max/mdev = 0.309/0.574/1.152/0.268 ms
iperf client 端除了多了一個 -V 參數外其餘皆不變.
-c : server IP
-V : 使用 IPv6
-i : 每隔 5 秒將測量結果顯示出來,最後再算出平均值.
-t : 測量時間間隔為15秒root@bbeenn-VirtualBox1:~# iperf -cfe80::a00:27ff:fe1a:7b14%eth0 -V -i5 -t15 ------------------------------------------------------------ Client connecting to fe80::a00:27ff:fe1a:7b14%eth0, TCP port 5001 TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 3] local fe80::a00:27ff:fedd:6c5b port 45850 connected with fe80::a00:27ff:fe1a:7b14 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0- 5.0 sec 145 MBytes 243 Mbits/sec [ 3] 5.0-10.0 sec 138 MBytes 231 Mbits/sec [ 3] 10.0-15.0 sec 131 MBytes 220 Mbits/sec [ 3] 0.0-15.0 sec 414 MBytes 231 Mbits/sec
Client 端觀察結果.
至於其他參數使用上是不是一樣呢!!<–(是的)
-w n[KM] 指定 TCP window size (2~256KB)
-l n[KM] 指定 read/write buffer 大小(預設為 8k)
-Pn (大寫的P) client 端指定同時 (parallel) 跑幾個的 threads
-m, –print_mss 顯示 MTU 的大小 (可用於檢查是不是在 Jumbo Frame 環境)
-b, –bandwidth #[KM] 僅適用於 UDP 協定, 設定傳送頻寬單位為 bits/sec (預設值為 1 Mbit/sec)
-u, –udp 指定使用 UDP 非預設的 TCP (統計 jitter 以及 packet loss)
連 multiple client requests (多對一) 一樣沒有問題.但是 bidirectional test (雙向測試)卻不能用.
-r, –tradeoff 先做傳送再做接受(對 Client 而言)
-d, –dualtest 同時做傳送與接受