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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です