MikroTik RB4011iGS+RMのL2TP/IPsecスループット
MikroTik RB4011iGS+RMのL2TP/IPsecのスループットを測定してみました。直結での計測なので実際の利用時のスピードを測るものではなく、ルーターの性能評価を行うものです。
計測環境
RB4011にDebian9をL2TP/IPsec接続し、CentOS7をiperf3のクライアント、Debian9をiperf3のサーバーにしスループットの測定を行います。RB4011のファームウェアはv6.44.3となります。
計測結果
トンネルのMTUを1350としました。
receiver | sender | |||||
MSS | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
1310(指定なし) | 802 | 52% | 10.9W | 602 | 37% | 10.0W |
1200 | 748 | 54% | 10.9W | 499 | 28% | 9.8W |
800 | 350 | 40% | 10.1W | 364 | 29% | 10.2W |
400 | 283 | 71% | 11.3W | 145 | 32% | 9.9W |
(*) iperf3を60秒間実行。無負荷時はTAP-TST10の目測値で7.8W。receiverはL2TP Client(Debian9)へのダウンロード、senderはL2TP Client(Debian9)からのアップロード。CPU負荷はWeb管理画面の表示で、タイミングによってかなり変動があるので参考値。
かなり速いっ!んですが、数値の出方が不可解です。receiverのケースはRB4011で暗号化、senderのケースはRB4011で復号化の方向となりますが、暗号化のほうが復号化よりも速い計測結果となっています。RB750Gr3のケースではこのような挙動は見られませんでした。IPsecの処理速度がDebian9を上回っているのか?!?しかしながら、RTX1210でのL2TP/IPsecテスト時とDebian9は同じ環境(Core i5-7500T)であるため、その結果との比較で言うとやはり不可解です。
それと赤字の箇所ですが、計測の度に200Mbps程度変動します。掲載の値は最良のケースで、悪い場合にはCPU負荷も25%程度となり、負荷をうまく分散できていません。RB4011は4コアのCPUでうまくこの多コアを生かして負荷分散できると良い結果となります。
RB4011のConfig
テストに使ったRB4011のconfigは以下の通りです。ここの設定の後の追加した差分のみ記載しています。NAT配下でないので、UDP 4500を開ける設定は不要ですが、汎用性を考え一応入れております。
/interface bridge add admin-mac=xx:xx:xx:xx:xx:xx arp=proxy-arp auto-mac=no comment=defconf \ name=bridge protocol-mode=none /ppp profile add bridge=bridge change-tcp-mss=yes local-address=192.168.100.1 name=\ lt2p-profile remote-address=dhcp use-encryption=yes /interface l2tp-server server set default-profile=lt2p-profile enabled=yes ipsec-secret=presharedkey \ max-mru=1350 max-mtu=1350 use-ipsec=yes /ip firewall filter add action=accept chain=input dst-port=500,1701,4500 protocol=udp add action=accept chain=input protocol=ipsec-esp /ppp secret add name=ppp1 password=test profile=lt2p-profile
Debian9の設定
IPsecにはstrongSwan 5.5.1、L2TPにはxl2tpdを使いました。mikrotik.example.comはRB4011のether1アドレスとなります(内部DNSに当該名前の登録を行ってテストしました)。
IPsec関連(strongSwan)
# cat /etc/ipsec.conf conn mikrotik keyexchange=ikev1 authby=secret left=%defaultroute right=mikrotik.example.com rightid=%any ike=aes128-sha1-modp1024! esp=aes128-sha1! auto=add leftprotoport=17/1701 rightprotoport=17/1701 type=transport # cat /etc/ipsec.secrets : PSK "presharedkey"
L2TP関連(xl2tpd)
# cat /etc/xl2tpd/xl2tpd.conf [global] auth file = /etc/ppp/chap-secrets [lac mikrotik] lns = mikrotik.example.com require chap = yes pppoptfile = /etc/ppp/options.xl2tpd.mikrotik # cat /etc/ppp/chap-secrets "ppp1" "mikrotik" "test" * # cat /etc/ppp/options.xl2tpd.mikrotik name ppp1 remotename mikrotik ipcp-accept-local ipcp-accept-remote lcp-echo-interval 30 lcp-echo-failure 4 require-chap noccp nobsdcomp noauth mtu 1350 mru 1350 nodefaultroute usepeerdns connect-delay 5000 persist debug
接続コマンド
# IPsec接続を行う、ipsec statusで接続状況確認可能 ipsec up mikrotik # L2TP接続を行う echo "c mikrotik" > /var/run/xl2tpd/l2tp-control # 192.168.100.0/24へのルート追加 ip route add 192.168.100.0/24 dev ppp0 # L2TP切断 echo "d mikrotik" > /var/run/xl2tpd/l2tp-control # IPsec切断 ipsec down mikrotik