ぷろぐらむおいしいよ

技術ネタを適当に書いていきます。

Aterm病

さて、今回はとあるルータにまつわるお話。

Aterm病?

昔のNEC製の一部のルータを使った経験のある者の間ではいわゆる「Aterm病」と言われる症状が(たぶん)有名である。
その名前の通り、Atermという名前のついた種類のルータで起きる不具合(仕様?)だ。*1
その具体的な症状は、ネットワークが頻繁に切れるというもの。*2

その原因と対策について簡単に記す。

原因

ネットワークが切れたときにルータのログを見てみると、

NAT TX-ERROR List Create Error

という文字がたくさん並んでいる。

これはNATテーブルが溢れているというエラーである。

NATについてここでは詳しく書かないが、NATテーブルというのはいわゆるプライベートIPアドレスグローバルIPアドレスの変換規則を保存するテーブルである。
一般的なルータではNATテーブルが一杯になったらNATテーブルにある古いデータから上書きしていくのが普通だが、Aterm病を発症するルータでは上書きせず、古いものであっても破棄されるまでは保持し続ける。
そのため、古いデータが破棄されてテーブルに空きが出来るまではネットワークに接続出来なくなる。

対策

ルータを変える

まあルータの仕様なので、根本的に解決するにはルータを変えるしかない。
とはいえすぐにルータを変えられない状況もあるので、その場合は以下の方法を試してみる。

NATテーブルタイマーを短くする。

データを破棄するまでの時間を短くすることでNATテーブル溢れが起きにくくする。

具体的な設定方法はルータの種類によって多少違うかもしれないが、上の図のように左のメニューから「詳細設定->高度な設定」を選択し、「NAT/UPnP設定->NATタイマ(秒)」の値を小さくすれば良い。*3


とりあえず自分の環境ではこれで全然NATテーブル溢れが起きなくなったけれど、他の環境ではどうなんだろう、、

*1:ちなみに私はAterm BR500Vというルータで発症した

*2:最近は改善されてきているようだが

*3:Aterm BR500Vでは120が最小なのでとりあえず120にしている