MikroTik RB750Gr3のIPsecスループット
Mikrotik RB750Gr3 (hEX)のIPsecのスループットを測定してみました。直結での計測なので実際の利用時のスピードを測るものではなく、ルーターの性能評価を行うものです。
計測環境
RB750Gr3とDebian9をIPsecで接続し、それぞれにぶら下げたCentOS7 Aをiperf3のクライアント、CentOS7 Bをiperf3のサーバーとして、スループットの測定を行います。RB750Gr3のファームウェアはv6.44.3となります。
計測結果
CentOS Aでiperf3の実行した結果が以下となります。無負荷時の消費電力はTAP-TST10での目測値で2.4Wとなります。
receiver | sender | |||||
暗号化 | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
AES128-SHA1 | 262 | 46% | 3.1W | 288 | 50% | 3.1W |
AES256-SHA1 | 262 | 46% | 3.2W | 299 | 57% | 3.2W |
AES128-SHA256 | 260 | 46% | 3.1W | 297 | 56% | 3.2W |
AES256-SHA256 | 261 | 48% | 3.1W | 297 | 55% | 3.2W |
L2TP/IPsecの結果と違って、L2TPという余計な処理がないせいかかなり速くなりました。公式サイトのデータの469.3Mbpsにはほど遠いですが、IX2105並みの数値が出たのは、$50のルーターとしてはなかなかではないでしょうか。しかし、同じチップを使っているはずのER-Xは、RB750Gr3の結果を見ると不甲斐ないですね。100Mbps程度水をあけられています。
しかし、ER-Xの時もそうでしたが、復号化(上記でreceiver)のほうが暗号化(上記でsender)よりも遅いというのは、使っているチップの性質なのでしょうか?!?他のルーターではあまりこのような傾向がなかったので不思議なところではあります。
RB750Gr3のConfig
テストに使ったRB750Gr3のconfigは以下の通りです。Quick Set後に追加した差分のみ記載しています。IKEv2での接続としています。MSS Clampingは入れるのが面倒だったので入れてません。代わりにiperf3の際に-M 1398としてお茶を濁しています。
mikrotik.example.comはRB750Gr3のether1アドレス、debian.example.comはDebian9のeth0アドレスを検証環境のDNSに登録しています。
/ip ipsec peer add address=debian.example.com exchange-mode=ike2 name=to_debian /ip ipsec proposal set [ find default=yes ] auth-algorithms=sha256,sha1 enc-algorithms=\ aes-256-cbc,aes-128-cbc /ip firewall filter add action=accept chain=input protocol=ipsec-esp (注1) /ip firewall nat add action=accept chain=srcnat dst-address=192.168.200.0/24 src-address=\ 192.168.100.0/24 (注2) /ip firewall raw add action=notrack chain=prerouting dst-address=192.168.200.0/24 src-address=\ 192.168.100.0/24 (注3) add action=notrack chain=prerouting dst-address=192.168.100.0/24 src-address=\ 192.168.200.0/24 (注3) /ip ipsec identity add my-id=fqdn:mikrotik.example.com peer=to_debian remote-id=\ fqdn:debian.example.com secret=presharedkey /ip ipsec policy add dst-address=192.168.200.0/24 sa-dst-address=10.0.0.3 sa-src-address=\ 0.0.0.0 src-address=192.168.100.0/24 tunnel=yes (注4)
(注1) add action=drop chain=input in-interface-list=!LAN の前に入れないとダメです
(注2) MikroTikのWikiに入れろと書いてあったので、
add action=masquerade chain=srcnat ipsec-policy=out,none out-interface-list=WAN
の前に入れましたが、ipsec-policy=out,noneに対してはNATしないのでひょっとしたらいらないかもです。実際に入れなくても動作はしました。
(注3) MikroTikのWikiに入れるとパフォーマンスが改善すると書いてあったので入れました。実際30%くらい速度が改善しました。
(注4) sa-dst-addressはdebian.example.comとしたかったのですが、IPアドレスしか受け付けなかったので、仕方なくアドレスをベタ打ちしました。ipsec peerにdebian.example.comと入れているので改めてここで入れる意味がちょっとわかりませんが、とりあえず今回はスループットテストなので、これで我慢しています。
Debian9の設定
IPsecにはstrongSwan 5.5.1を使いました。テストでは暗号化の方法を変えてテストしていますが、RB750Gr3側のconfigは固定にし、strongSwan側のespの設定は以下の4パターンで変えながらテストを行っています。
- esp=aes128-sha1!
- esp=aes256-sha1!
- esp=aes128-sha256!
- esp=aes256-sha256!
IPsec関連(strongSwan)
# cat /etc/ipsec.conf conn mikrotik left=%defaultroute leftid=debian.example.com right=mikrotik.example.com rightid=mikrotik.example.com leftsubnet=192.168.200.0/24 rightsubnet=192.168.100.0/24 keyexchange=ike authby=secret type=tunnel ike=aes128-sha1-modp1024! esp=aes128-sha1! reauth=no auto=start keyingtries=%forever # cat /etc/ipsec.secrets : PSK "presharedkey"