ネットワークのスループットを測定する環境を整えたので、次いでに IPSec を通してた時のものも測定してみた。
測定の条件は
- スループット測定ツール nuttcp の計測用データチャンネル 5001/tcp を上り/下りにそれぞれ IPSec に通す。
- racoon ver.1 でサポートされていない暗号化スイートも測定したいので、鍵を手動で設定する。
- ESP認証/暗号の組み合わせで計測する。(AHは使わん)
- 追加で IPComp での圧縮の効果を見たい気がする。
setkey で、手動で鍵を設定する方法は多々情報(1、2)があるので、そちらを参考にして欲しい。ただ、IPComp を組み合わせる例が乏しいのでこの部分だけ。
IPComp を組み合わせて使う
IPSec設定済みで、ESPのみを使うSPDが次にようになってるだろう。
... spdadd xx.xx.xx.xx[port] yy.yy.yy.yy tcp -P out ipsec esp/transport//require; ...
このときSPDのルールの順番が重要になる。カプセル化の下の方から、要は IPComp ⇒ ESP ⇒ AH の順に書き下していくことになる。
従ってIPCompを組み合わせるには、次のようにすればよい。
... add xx.xx.xx.xx[port] yy.yy.yy.yy ipcomp zzzz -C deflate; spdadd xx.xx.xx.xx[port] yy.yy.yy.yy tcp -P out ipsec ipcomp/transport//use esp/transport//require;
ただ、ベンチマークに流れるデータは「0」の羅列なので、いまいち効果が分からん。。。
なので計測は諦めた。
IPSec スループットの計測
前とほぼ同じ環境とmacbook pro を加えたものを用意、全ての計測に MTU 1500 / ロック周波数変更は全て無効にしMAXにした。また、TCP/IP通信に関するパラメータを修正せずにデフォルトにした。
- ref1 - M2NPV-VM / Athlon64X2 2.0GHz / DDR2-667 4GB / Intel Pro/1000PT (外付け)
- ref2 - M4A78-EM / Athlon X2 5050e 2.6GHz / DDR2-800 8GB / RTL8112
- via - VIA-EN12000EG / VIA C7 1.2GHz / DDR2-533 1G / VT6122
- osx - MacBookPro5,1 / Intel Core 2 Duo 2.4 GHz / DDR3-1066 2G x 2 / onboard Gigabit Ethernet
- hub - Gigabit Hub(GS908M)
認証/暗号 | ref1⇔ref2 | ref1⇔via | ref1⇔osx | |||||||
---|---|---|---|---|---|---|---|---|---|---|
throughput (Mbps) | CPU % | throughput (Mbps) | CPU % | throughput (Mbps) | CPU % | |||||
ref1 | ref2 | ref1 | via | ref1 | osx | |||||
no ipsec | ⇒ | 941.3580 | 10 | 28 | 785.1857 | 6 | 50 | 936.9429 | 9 | 54 |
⇐ | 941.2461 | 17 | 24 | 723.7100 | 12 | 99 | 938.3451 | 18 | 77 | |
null/null | ⇒ | 934.6834 | 99 | 38 | 566.8947 | 13 | 93 | 932.0707 | 31 | 62 |
⇐ | 787.4495 | 18 | 46 | 520.2880 | 13 | 99 | 879.3127 | 25 | 99 | |
null/des-cbc | ⇒ | 229.5461 | 99 | 8 | 72.9094 | 2 | 95 | 136.6533 | 3 | 14 |
⇐ | 197.0768 | 14 | 26 | 73.4657 | 4 | 99 | 129.1215 | 6 | 99 | |
null/3des-cbc | ⇒ | 110.5173 | 100 | 4 | 30.8918 | 2 | 87 | 59.2064 | 1 | 7 |
⇐ | 76.8033 | 11 | 1 | 30.5976 | 1 | 99 | 56.5818 | 3 | 98 | |
null/aes-cbc | ⇒ | 466.7989 | 99 | 33 | 392.0739 | 14 | 91 | 475.7789 | 95 | 43 |
⇐ | 472.1796 | 28 | 36 | 396.2264 | 17 | 99 | 376.3890 | 22 | 99 | |
null/aes-ctr | ⇒ | 495.4163 | 77 | 58 | 218.6071 | 7 | 71 | |||
⇐ | 383.9987 | 16 | 7 | 258.7430 | 17 | 99 | ||||
null/blowfish-cbc | ⇒ | 316.0327 | 99 | 11 | 77.6054 | 3 | 74 | 263.7795 | 15 | 31 |
⇐ | 244.9774 | 11 | 4 | 84.1580 | 4 | 99 | 228.4810 | 13 | 99 | |
null/twofish-cbc | ⇒ | 372.5317 | 99 | 19 | 100.8360 | 5 | 73 | |||
⇐ | 289.2720 | 15 | 9 | 102.0088 | 5 | 99 | ||||
null/camellia-cbc | ⇒ | 340.9916 | 100 | 15 | 86.7841 | 3 | 60 | |||
⇐ | 267.3560 | 18 | 5 | 84.5675 | 4 | 99 | ||||
hmac-md5/null | ⇒ | 537.2857 | 99 | 24 | 244.7170 | 7 | 87 | 578.8675 | 99 | 49 |
⇐ | 453.2448 | 29 | 14 | 230.2019 | 11 | 99 | 572.5809 | 29 | 99 | |
hmac-sha1/null | ⇒ | 370.0861 | 100 | 15 | 360.3754 | 20 | 86 | 414.4706 | 99 | 41 |
⇐ | 296.1913 | 11 | 7 | 350.0287 | 20 | 99 | 469.5587 | 57 | 98 | |
hmac-sha256/null | ⇒ | 307.0078 | 99 | 16 | 302.9315 | 100 | 41 | 278.9001 | 17 | 33 |
⇐ | 240.0495 | 12 | 4 | 336.2512 | 19 | 96 | 248.9149 | 28 | 99 | |
aes-xcbc-mac/null | ⇒ | 447.6017 | 99 | 20 | 216.0013 | 6 | 80 | |||
⇐ | 347.9881 | 13 | 12 | 271.0801 | 21 | 99 | ||||
hmac-md5/3des-cbc | ⇒ | 101.5172 | 100 | 5 | 29.0609 | 1 | 88 | 57.0069 | 1 | 7 |
⇐ | 71.0862 | 11 | 1 | 28.4519 | 1 | 100 | 54.5636 | 4 | 98 | |
hmac-md5/aes-cbc | ⇒ | 326.0155 | 99 | 17 | 205.8441 | 9 | 79 | 349.0338 | 80 | 27 |
⇐ | 266.2639 | 18 | 5 | 198.6511 | 12 | 99 | 296.4431 | 27 | 98 | |
hmac-sha1/3des-cbc | ⇒ | 94.1899 | 100 | 5 | 30.1900 | 1 | 85 | 56.6619 | 1 | 5 |
⇐ | 66.1646 | 12 | 1 | 29.8474 | 2 | 99 | 52.0154 | 4 | 96 | |
hmac-sha1/aes-cbc | ⇒ | 259.3614 | 99 | 15 | 253.1157 | 99 | 56 | 275.3661 | 98 | 25 |
⇐ | 202.5055 | 12 | 4 | 286.0077 | 20 | 93 | 270.1091 | 26 | 97 | |
hmac-sha1/aes-ctr | ⇒ | 257.3152 | 99 | 14 | 193.6954 | 4 | 97 | |||
⇐ | 199.9059 | 12 | 3 | 209.8745 | 16 | 99 | ||||
aes-xcbc-mac/aes-cbc | ⇒ | 283.0864 | 99 | 15 | 207.2613 | 11 | 62 | |||
⇐ | 225.1556 | 13 | 4 | 233.3907 | 26 | 99 | ||||
aes-xcbc-mac/aes-ctr | ⇒ | 281.3969 | 99 | 15 | 154.4989 | 7 | 70 | |||
⇐ | 220.3145 | 12 | 4 | 178.5399 | 13 | 99 |
異様にたくさん計測したが、あんまり意味が無い気がしないでもない。
- 暗号化方式の性能は
aes系 > blowfish/twofish/camellia >> DES > 3DES
VIA C7 では aes系 >> それ以外 - 認証方式の性能は
hmac-md5 > aes-xcbc-mac > hmac-sha1/hmac-sha256
ただ、あまり差異はない。
VIA C7 では hmac-sha1/hmac-sha256 >> それ以外 - des-cbc/3des-cbc は他の暗号化方法に比べて5~10倍くらい遅い。もう、見る影が無い。
- aes 系の実装には多くの開発リソースが割かれており、x86 コードでも十分早い。VIA PadLock が圧倒的に有利という訳ではない、不利という訳でもない。
- 個々のNICドライバの個性がある。
e1000e(Linux) / nvenet(MacOSX) に関しては送信時のCPU負荷が100%になる傾向があり、r8169 に関してはどう考えてもCPU利用率が低くなる。
これが NIC 自体の性能か、TCPと組み合わせで何らかのビジーウェイトが起きるのかは、いまいち不明。。。nuttcp/netperf で発生するトラフィックパータンに対する適性なのだろうか。
送信性能が上がるチューニングが必要なのだろうか? - 普通運用する hmac-sha1/aes-cbc は 約250Mbps のスループットが出る。PadLock を使えば同様の性能が出る。
結論
VIA-EN12000EG 上の Linux で IPSec を使うと約250Mbps程度のスループットの性能があり、Athlon64X2 2.0GHz と同程度の性能である。
Intel Atom はどの程度なのだろうかぁ?
0 件のコメント:
コメントを投稿