Tech Racho エンジニアの「?」を「!」に。
  • IT Tips

フレッツ光クロスでRTX1300を使うとIPv4のみ速度が出ない現象と緩和策

最近、会社でフレッツ光クロスの回線とRTX1300を導入してみました。
素直に設定しても期待する性能が出ないケースがあったので、実験結果などを紹介していきます。

環境

新たに引いた回線のスペックはこんな感じです。

  • 物理回線: フレッツ光クロス(NTT東日本)
  • VNE: v6プラス固定IP8(後日Xpass固定IP8に変更しましたが本記事の範囲では同じです)
  • ルーター: RTX1300 Rev.23.00.14
  • 測定時期: 2024年12月~2025年1月

ひかり電話はなくHGWではなくONU単独ですが、クロスなのでRAではなくDHCPv6-PDになりますね。

なんか遅い

Speedtest CLI で試していたところ、以下のような傾向が見られました。

  • IPA Cyberlab (14623) で測定すると、2.5Gbps程度が上限になる
  • IPA Cyberlab 400G (48463) で測定すると、6Gbps以上出る

もう少し切り分けてみると、どうやらIPv6で測定すると速くて、IPv4で測定すると2.5Gbps程度で頭打ちになるようです(14623サーバはspeedtestではIPv4しか対応しておらず、48463サーバはIPv4/IPv6に両対応している)。

同時間帯に、同一マシン・同一回線から、IPv6有効・無効を切り替えてIPA Cyberlab 400G (48463)で測定してみた結果がこんな感じでした。

IPv6 結果
有効 https://www.speedtest.net/result/c/12aefaa5-535e-4e4a-9cd5-49ba03c0c942
無効 https://www.speedtest.net/result/c/cffde0e4-c804-4340-b08a-f01e0ef517ed

※IPv6無効化は、マシン側で sysctl -w net.ipv6.conf.all.disable_ipv6=1 などで実施しても、RTX1300側で ipv6 interface rtadv send 0 を付けたり消したりしても、どちらでも変わりません。

この結果では上りのほうが更に酷く低下していますが、これは試行のたびに変わるので、別の問題かもしれません。

CPU使用率が高い!

別の環境から測定するとIPv4でも速かったので、測定サーバが悪いわけでは無さそうです。
また、測定サーバへの経路を mtr -z で確認すると、v4/v6どちらでもAS2519(アルテリア)→AS2907(SINET)→AS63770(IPA)だったので、v6のみNGN網内折り返しで高速というわけでも無さそうに見えます。

となると、RTX1300とJPIXのIPIPトンネルが怪しい。JPIXやアルテリアのトンネル終端がボトルネックという可能性も大いにありますが、固定IPではないDS-Liteですが別のフレッツ光クロス環境でv4通信でもっと速かったので、どちらかというとRTX1300のほうが怪しいです。

色々見ていたら、IPv4で通信しているときはRTX1300のCPU使用率がやたらと高いことに気づきました。

IPv6 結果
有効
無効

ファストパス?

YAMAHAルーターにはファストパスという機能があります。

ヤマハルーターのうちいくつかの機種では、パケット転送を高速に行うためにファストパスと呼ばれる技術が利用されています。ファストパスでは、パケット転送を高速に行なえますが、その代わりに一部の機能に制約があります。この文書ではファストパスの仕様について解説します。

最初、何らかの制限でこれが使われていない?と思ったのですが、ファストパス機能を無効化する(ノーマルパスにする)と更に遅くなるので、ファストパスが使われていないというわけでは無さそうでした。

性能不足?

つまり、IPIP変換が重くて、単にCPU性能不足で詰まっているというように見えます。

9.9Gbps出るって書いてあるじゃん!IPsecですら3.8Gbps出るのに、IPv4使うだけで2.5Gbpsってひどいよー!となりますよね。

設定を変えるとちょっと速くなる

CPUが4コアもあるのに1コアに集中しているのが悪いのでは?と思い、何となく調べていたら以下の設定を見つけました。

デフォルト値は hash です。どういう理屈かはわからないのですが、ハッシュの結果が全部CPU0になっているのでしょうか?なお、XpassのときはCPU2のみ使用率が上がりました。

load-balanceにしてみる

試しに以下のように load-balance に設定してみます。

system packet-scheduling load-balance

※以下の注意書きがあるとおり、本設定を変更すると、10秒ほど通信ができなくなります。

本コマンドを実行すると、すべてのLANインターフェースの初期化処理が実行されるため、 すべてのLANインターフェースにおいて一時的にリンクダウンが発生する。

速くなった

下りのみ 5Gbps程度に高速化しました 。ただし上りは改善せず。これは測定タイミングの問題かもしれません。

https://www.speedtest.net/result/c/567a0b0c-3779-4e87-8d5c-d6dc3b7d3797

ただし、CPUコアが1個ではなく3個ほど忙しくなります。

全CPUコアのCPU使用率が100%に張り付くと、全体的な動作が不安定になるので、採用するかどうかは迷うところです。見た感じ1コアは余裕持っているから大丈夫かな?安定性を取るか、速度を取るか。速度をとってもやっぱり5Gbps程度で頭打ちなわけですが...

これは仕様?

スループット9.9Gbpsって書いてあるのに標準では2.5Gbpsしか出ず、設定を変えても5Gbps程度で頭打ちなのは釈然としませんが、IPIPトンネルは重いのでしょう。MAP-EやDS-Liteでどうなるかは未検証です。


一応YAMAHAサポートに問い合わせて見たのですが、速度については回答できないとの一点張りで、情報は頂けませんでした。フレッツ光クロスで全くテストしたことがないということもないでしょうし、一度でもIPv4で6Gbpsとかの数字を出したケースがあるかどうか(やれば出来る子なのか)、参考程度に知りたかっただけなのですが、それも難しいそうです。残念。

状況証拠による推測混じりではありますが、現時点で確認できる範囲では、フレッツ光クロスでIPv4 固定IPを使う限り初期設定で2.5Gbps程度(全コア使うように設定変更すれば5Gbps程度)が限界という結論になりそうです。IPv6通信や、フレッツ光クロスではなくネイティブIPv4の回線であれば、CPUがボトルネックになることは無さそうです。

まとめ

ヤマハのルーターは設定がしやすく、お値段と機能のバランスが良いこと、設定例が豊富でトラブルシューティングがしやすいことがお気に入りなのですが、CPU性能が不足気味の傾向は相変わらずでした。RTX1000時代はNATテーブルがちょっと多くなるとハングしたり、RTX810でもDS-Liteを使うと300Mbps程度が限界だったりと、機能タイプごとの初期モデルは性能不足のことが多いですね。それぞれRTX1200やRTX830でかなり改善していたので、今回も後継機に期待したいところです。その際は、是非ともLAN1ポートを2.5GbEにしていただきたい!

関連記事

オフィスのフレッツ光IPoEプロバイダを乗り換えた

特定のWebサイトだけたまに異常に遅くなる現象が発生した


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。