Aterm WR8500N のギガビットイーサネットが若干不安定??

Aterm WR8500N と WLI-U2-G144N を購入しました で紹介した Aterm WR8500N ですが使い始めて約2週間経ちましたが相当に満足度が高い製品だと感じています。

★ 良い点その1 ★
予想通りの処理能力を発揮し、大量の http リクエスト処理状態時でも回線速度がルータで減速することは皆無になりました。直接NTTからレンタルされる終端装置のモデム直結時と回線速度は何ら変わらないくらいです。

★ 良い点その2 ★
2ch とかでも有名なんですけど従来の Aterm シリーズは NAT テーブルが溢れて接続切れまくりでルータを再起動しないと復活しない。なんて悪評で有名でしたが WR8500N に関してはかなり改善されているようです。

 - NEC無線BBルータ Aterm WRシリーズ総合 Part.17
 - NEC製ルーター被害者の会

★ 良い点その3 ★
WR6600H の時にはうまくいかなかったのですが、2つのプロバイダを契約していて2つの固定IPを持っている場合、同時に接続するとちゃんと2つの固定IPで外部からアクセスが可能な点。DNS の TTL を短く設定しておけば、片側の固定IPの回線が落ちたときでも DNS の設定をもう1つの固定IPへ変更してやればダウンタイムを少しに抑えることができたりとプチ障害対策として使える。
※TTL についての説明は @IT:すべての基礎、マスター・ゾーンサーバの設定(2/3) がわかりやすいです。


なんて満足感で最近まで調子よく動いていたハズなんですが・・・・

- スポンサーリンク -

なんだかここ最近は自宅サーバと WR8500N の間(有線の Gigabit 接続)で TCP が断続的に不通状態になってしまいます。有線が不通状態のときでも無線は普通に使えています。外部へのアクセスも可能です。初めは自宅サーバの BIND でも落ちたかなと思っていたのですが、

/etc/init.s/network restart

とかネットワークサービスを再起動してやってもルータに接続できない状態のままでルータを再起動する以外に復旧方法がない症状がでています。どうもある条件下でルータの有線部分が応答無しになる場合があるようです。


ここで直感だったのですが、Gigabit 接続まわりがアヤシイと感じていましたので、サーバ側を 100M Full-Duplex (全二重)固定にしてやることにしました。残念ながら WR8500N は WAN 側はネットワークのリンク速度が調節可能なのに LAN 側はその設定がありません。しょうがないので取りあえずサーバ側だけの設定を取りあえずやってみました。

eth0 がルータに優先接続しているインタフェースなので /etc/sysconfig/network-scripts/ifcfg-eth0 に以下の設定を最後の行に追加してやる。

ETHTOOL_OPTS="autoneg off speed 100 duplex full"

一応リンク速度を確認してみる。ちゃんと 100M Full-Duplex (全二重)での接続になっていることが確認できました。

[root@srv01 /]# ethtool  eth0

Settings for eth0:
        Supported ports: [ MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  100baseT/Full 
        Advertised auto-negotiation: No
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: externel
        Auto-negotiation: off
        Supports Wake-on: g
        Wake-on: d
        Link detected: yes


ついで 2ch の情報で ping をルータに対して定期的にうっておくと切断されないという情報があったので鵜呑みにして cron で動かす perl スクリプトをでっち上げる。(※既存のcronスクリプトに追加したため perl なんです・・・)

[root@srv01 /]# crontab -e
*/1 * * * * /var/tmp/pingrooter.pl

[root@srv01 /]# cat  /var/tmp/pingrooter.pl
#!/usr/bin/perl -w
`ping -c 1 192.168.0.1`;


とりあえず今日の朝に対応して今のところ切断状態はありません。
・・・というわけでまだ検証期間が短いので効果の程はよくわかりませんがうまくいってるように見えます。
→対策後、ここ数日不具合が無くなっています。
→嘘でした。ある特定の条件??で再発しています・・・orz

Aterm WR8500N 機能詳細ガイド に公式の情報として設定周りのいろいろな情報があるんですが、もっとわかりやすくして欲しいところです。せめて画面キャプチャ付きでもっと詳細な説明をしてくれたら WR8500N 買った人は喜ぶだろうに・・・と思ったり。。。あと、そうだ。 WR8500N の web 設定ツールも不親切な部分多いですよね。ポート番号じゃなく smtp とか ftp とか名前でも設定できるようにしたりとかユーザに優しくして欲しいです。

なんてことを言いつつも WR8500N は性能としてはかなりオススメ商品であることには変わりないです。

__追記__
何のことはない、有線が普通になるのは単なるいつもの NAT テーブル溢れのような気がしてきました。Aterm の設定を良く見直してみたら・・・
→違いました。__追記2__を参照下さい。

トップページ > 詳細設定 > その他の設定

img06.jpg

ちょまっ!!NATタイマが 3600 秒になってます。6600H とかは 300 秒がデフォルトだった気がします。ってことは NAT テーブルのバッファはかなり増やしたと見えますが・・・。不通になる原因はこれだ、多分。と言うわけで 「 NAPT設定 > TCPタイマ(秒) 」を 600 秒程度に設定しておきました。これで多分不具合は解消されると思います。今まで書いてきたことは全然関係なさそうな気がしてなりません・・・ (。・x・)ゝ

ちなみに設定の「?」のヘルプ押すとこんな説明がでます。

NAPT機能を使用する際のIPアドレス/ポート番号の動的変換テーブルの有効保持時間(秒)を入力します。NAPTテーブルが枯渇して通信ができなくなるアプリケーションを利用する場合は、本タイマを短めに設定すると解決できることがあります。入力できる値は、300〜432000(秒)です。

__追記2__
遂に不具合の原因を突き止めました!原因は上記のいずれでもありませんでした。
まずサーバの有線接続が不通になる条件が必ず僕がデスクトップでネットをやっている時間帯であることに気がつきました。しかもさらにいろいろ試していくと、タブが常時 40 個ほどある Sleipnir を起動した直後にサーバが不通状態に陥ることが判明しました。

さらに今までやってきた対策としてよくよく調べてみると、

  1. 初めに実施した 100M Full-Duplex (全二重)固定対策ですが、1000baseT/Full にしたときでもこりジョンが発生していないので問題がなさそうなこと。
    [root@srv01 network-scripts]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:13:D4:FA:EE:D7
              inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: fe80::213:d4ff:fefa:eed7/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:134363981 errors:0 dropped:0 overruns:0 frame:0
              TX packets:150120994 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:27344759310 (25.4 GiB)  TX bytes:133492718491 (124.3 GiB)
              Interrupt:201 Base address:0xc000
    
  2. 次に疑った NAT テーブル溢れですが、これもルータのログを見ると NAT テーブル漏れの時に発生するであろう
    NAT TX-ERROR List Create Error : UDP 192.168.0.2 : [port] > [ip] : [port] (IP-PORT=6) 
    NAT TX-ERROR List Create Error : TCP 192.168.0.2 : [port] > [ip] : [port] (IP-PORT=6) 
    
    ってログが出力はされていないこと。

まず根本的な原因であろうタブの数を泣く泣く減らすと現象はなくなりました。これを期にブラウザやめて全部 RSS Reader にしようか本気で悩んでます。憶測ですが Sleipnir が同時に大量のセッションを張りに言ったときにルータが変になるっぽいのでは。。まぁそれが何故に有線部分に影響するのかが不明ですが。また不通状態になったときも

サーバ → ルータ : ×
サーバ → デスクトップ : ○
デスクトップ → ルータ : ○

という謎の状況です。また、どうやらデュアルチャネル機能は off にした方が現象が出にくいようです。風呂に入っているときに思いつきました。デスクトップマシンは DNS としてサーバを見に行くようにしています。6600H を使っていたときも同じです。名前解決は全て自宅サーバで行ってきました。今回は WR8500N が DNS ルーティングが設定できいるので今までサーバが担ってきた内部の名前解決を全てルータでやってしまおうと、こんな設定をしていました。

img09.jpg

設定しつつも DNS はサーバを指定していたのですが・・・
これがひょっとすると悪さをしている可能性もでてきたのでいったん設定を全てクリアして様子を見ています。取りあえず Sleipnir を再起動・再読込しても止まらなくなりました。理由は不明だけど DNS ルーティングは使わない方が良さそうです。

まだまだ追記が続くかもしれません・・・。

- スポンサーリンク -