RTX1210のL2TP/IPsecスループット
YAMAHA RTX1210のL2TP/IPsecのスループットを測定してみました。直結での計測なので実際の利用時のスピードを測るものではありませんが、ルーターの性能評価にはなります。
計測環境
RTX1210にDebian9をL2TP/IPsec接続し、CentOS7をiperf3のクライアント、Debian9をiperf3のサーバーにしスループットの測定を行います。RTX1210のファームウェアはRev.14.01.33です。
計測結果
トンネルのMTUを1350とし、CentOSでiperf3の実行した結果が以下となります。消費電力はTAP-TST10での目測値で無負荷時は6.6Wとなります。
receiver | sender | |||||
MSS | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
1310(指定なし) | 611 | 100% | 7.5W | 881 | 100% | 7.5W |
1200 | 584 | 100% | 7.5W | 869 | 100% | 7.5W |
800 | 400 | 100% | 7.4W | 646 | 99% | 7.4W |
400 | 229 | 100% | 7.4W | 275 | 100% | 7.4W |
receiverの結果はDebian9から見てダウンロード方向、senderの結果はDebian9から見てアップロード方向の計測結果となります。さすがにCPUは100%に張り付きですが、600Mbpsオーバーと結構スピードが出ているのには驚きました。もちろん遅延やパケットロスもあるインターネット越しであれば、大分速度は遅くなりますが、RTX1210自体の性能としては悪くありません。
Debian9からのアップロード速度のほうが早いのは、Debian9のほうがL2TPの処理やIPsecの処理がRTX1210より上だからと思われます。Debian9はCore i5 7500TのESXiマシン上に構築しておりvcoreを1つ割り当てています。
RTX1210の仕様によればipsecはハードウェア処理なので、600Mbpsオーバーの結果はそれが効いているためですね。しかしながら、CPUが100%張り付きであることからわかるように、それ以外の処理(L2TP、NAT、ルーティング)がCPU処理なので、それが足を引っ張っています。ちょっともったいない。基本的な処理のハードウェア処理(offload)を搭載している他社ルーターもあるので、YAMAHAさんにはもっと頑張って欲しいところです。
RTX1210のConfig
テストに使ったRTX1210のconfigは以下の通りです。RTX1210はNAT配下でないので、nat-traversalの設定や、UDP 4500を開ける設定は不要ですが、汎用性を考え一応入れております。なお、UDP 1701を開けるよう解説しているサイトもありますが、L2TP(UDP 1701)のパケットはESPに包まれて飛んできますので、UDP 1701を受け入れる設定は不要となり、ここでは入れていません。
ip route default gateway dhcp lan2
ip lan1 address 192.168.100.1/24
ip lan1 proxyarp on
ip lan2 address dhcp
ip lan2 secure filter in 1000 1010 1020 2000
ip lan2 secure filter out 3000 dynamic 100 101
ip lan2 nat descriptor 1
pp select anonymous
pp bind tunnel9
pp auth request chap-pap
pp auth username ppp1 test
ppp ipcp ipaddress on
ppp ipcp msext on
ip pp remote address pool dhcp
ip pp mtu 1350
pp enable anonymous
tunnel select 9
tunnel encapsulation l2tp
ipsec tunnel 109
ipsec sa policy 109 9 esp aes-cbc sha-hmac
ipsec ike keepalive use 9 off
ipsec ike local address 9 192.168.100.1
ipsec ike nat-traversal 9 on
ipsec ike pre-shared-key 9 text presharedkey
ipsec ike remote address 9 any
l2tp tunnel disconnect time off
l2tp keepalive use on 10 3
l2tp keepalive log on
ip tunnel tcp mss limit auto
tunnel enable 9
ip filter 1000 pass * 192.168.100.0/24 icmp
ip filter 1010 pass * 192.168.100.1 udp * 500,4500
ip filter 1020 pass * 192.168.100.1 esp
ip filter 2000 reject * *
ip filter 3000 pass * *
ip filter dynamic 100 * * tcp
ip filter dynamic 101 * * udp
nat descriptor type 1 masquerade
nat descriptor address outer 1 primary
nat descriptor masquerade static 1 1 192.168.100.1 udp 500
nat descriptor masquerade static 1 2 192.168.100.1 udp 4500
nat descriptor masquerade static 1 3 192.168.100.1 esp
ipsec auto refresh on
ipsec transport 9 109 udp 1701
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
l2tp service on
Debian9の設定
IPsecにはstrongSwan 5.5.1、L2TPにはxl2tpdを使いました。なお、それぞれ手動での接続設定としていますので、これを参考にご自分の環境に入れる場合にはそれに注意して下さい。192.168.100.0/24へのルート追加も手動となります。rtx1210.example.comはRTX1210のLAN2アドレスとなります(当方ではDNSに当該名前の登録を行ってテストしました)。
IPsec関連(strongSwan)
# cat /etc/ipsec.conf conn rtx1210 keyexchange=ikev1 authby=secret left=%defaultroute right=rtx1210.example.com rightid=%any ike=aes128-sha1-modp1024! esp=aes128-sha1-modp1024! 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 rtx1210] lns = rtx1210.example.com require chap = yes pppoptfile = /etc/ppp/options.xl2tpd.rtx1210 # cat /etc/ppp/chap-secrets "ppp1" "rtx1210" "test" * # cat /etc/ppp/options.xl2tpd.rtx1210 name ppp1 remotename rtx1210 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 rtx1210 # L2TP接続を行う echo "c rtx1210" > /var/run/xl2tpd/l2tp-control # 192.168.100.0/24へのルート追加 ip route add 192.168.100.0/24 dev ppp0 # L2TP切断 echo "d rtx1210" > /var/run/xl2tpd/l2tp-control # IPsec切断 ipsec down rtx1210