最近通信が不安定になっていませんか?QUICはNAT溢れにご注意を

2021年5月、IETFはQUICを標準として承認したと発表しました。また、仕様をまとめたRFC9000が発表されています。これにより、WEB表示の高速化が期待されます。しかし、WEBブラウザでQUICを有効にし、QUIC対応のWEBサービス(Googleなど)へアクセスした際に通信が不安定になるといったトラブルもWEB上で散見されるようになりました。

QUICとは

RFC9000によると、QUICは、セキュアな汎用トランスポートプロトコルであり、クライアントとサーバー間の接続はステートフルです。QUICはUDPをベースに高速な通信を実現しますが、加えて、TCPの輻輳制御や再送制御の機能を取り込んで信頼性を高めており、TLS1.3相当で暗号化されており、高速で安全な通信を目指しています。

( https://datatracker.ietf.org/meeting/98/materials/slides-98-edu-sessf-quic-tutorial/ より引用)

QUIC対応サイトへの接続が増えると…

前述したようにQUICはTLS1.3相当に暗号化されており、クライアントとサーバー間において通信の開始と終了はそれぞれのアプリケーション間で認識しますが、下位層であるUDPはこれを知る由がなく、ルーターからすると、UDPの通信はNATタイムアウトをもって終了するしかありません。

もしルーターのNATテーブル保持のタイムアウトが長いと、端末から見た本来の接続数は少ないにもかかわらず、NATテーブルの上限に抵触し新たにWEBサイトなどへ接続できないといったトラブルを招いてしまいます。

こうしたトラブルを回避する手っ取り早い手段は、NATテーブルの保持時間を短くすることです。

NATのIPアドレスマップの消去タイマを設定しよう

RTX830などヤマハルーターは、初期値としてNAT消去タイマは900秒となっています。これを「nat descriptor timer」コマンドで短めの秒数へ変更することにより、NATテーブル溢れを抑えることが期待できます。

また、特定のプロトコル、ポート番号の範囲を指定してNAT消去タイマを設定することができますので、QUIC対策を目的とするならば、UDP 80番およびUDP 443番ポートのみを指定してNAT消去タイマを設定するとよいでしょう。

NAT の IP アドレスマップの消去タイマの設定方法はこちら( http://www.rtpro.yamaha.co.jp/RT/manual/rt-common/nat/nat_descriptor_timer.html ) をご参照ください。

少し補足しておきますと、すべてのパケットについてNAT消去タイマを900秒も保持する必要はなく、TCP/FIN通過後の消去タイマは60秒となっています。また、通常のUDPコネクションでは、明示的にコネクションの終了を示す情報がありませんが、DNSではクエリとレスポンスの対応がわかるので、応答パケットを受信してから10秒後にセッション情報が削除されます (引用元 : NATディスクリプター機能 概要 4.9. DNS http://www.rtpro.yamaha.co.jp/RT/docs/nat-descriptor/nat-abstruct.html ) 。

一部ホストの過多な通信によるマスカレードテーブル占有も回避可能です

ヤマハルーターは、IPマスカレード変換セッション数制限機能により、IPマスカレード変換の対象とするセッションの数をホスト単位で制限することができます。これにより、一部ホストの過多な通信によるマスカレードテーブルの占有を回避し、管理セグメント内の各ホストが均等にマスカレード変換を利用することができるようになります ( 引用元 : IPマスカレード変換セッション数制限機能  http://www.rtpro.yamaha.co.jp/RT/docs/nat-descriptor/session-limit.html ) 。

せっかくWEB表示の高速化を期待してブラウザのQUIC機能を有効にしたにもかかわらず、速度低下や通信不安定に悩んでいる方は、参考にしていただければと思います。

また、家電量販店で売られているような数1000円クラスのルーターにも類似した機能があるかどうか少し調べてみましたが、NATテーブルの上限値やその変更方法について仕様が公開されているメジャーな製品は見当たりませんでした。接続が不安定になっても原因特定やトラブルシュートに制約があると、業務効率やQoLが下がってしまいますよね。

最近WEBへのアクセスが不安定になったと感じられた方は、ヤマハルーターへの乗り換えを検討してみてはいかがでしょう。