10,207 瀏覽數

iperf – IPv6

iperf 有提供 IPV6 的傳輸方式,只需要用參數 -V 即可.
-V, –IPv6Version 使用 IPv6

第一次用 iperf 可以參考 http://benjr.tw/462

測試環境如下:
iperf_IPV6_01

IPv6 網卡在啟動時就會指派一組 IPV6 link-local address (不過 link-local address 不可以跨 Router ,只能使用在同區段與其他電腦相互溝通,),而這 link-local address 是唯一的而且是依據網卡的 MAC Address 而有所變動,我們可以直接用這一組來跑即可.轉換方式請自行參考 http://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 端觀察結果.
    iperf_IPV6_02
    至於其他參數使用上是不是一樣呢!!<--(是的)
    -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 同時做傳送與接受

發表迴響