たかつです。

FreeBSDな自宅サーバで、フレッツ光プレミアムに接続しているのですが、時々
通信が不安定になって困っています。以下のような症状の原因や対策などを
心当たりのある方はおられないでしょうか?

ping を打った時のロス率をMRTGでグラフ化しているのですが、
http://doga.jp/~taka2/temp/mrtg-20100118/pingrate.html
こんな感じで、時々、かなりひどいパケットロスが発生し、そのうち
通信がまったくできなくなります。
(以前から時々出ていたのですが、最近、頻度が増えてきてます)


障害発生の第1段階としては、PPPoEの接続を通した先にping を打っても
> % ping -c 10 xxx.xxx.xxx.xxx
> PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx): 56 data bytes
> 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=0 ttl=59 time=7.366 ms
> 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=5 ttl=59 time=7.052 ms
> --- xxx.xxx.xxx.xxx ping statistics ---
> 10 packets transmitted, 2 packets received, 80.0% packet loss
> round-trip min/avg/max/stddev = 7.052/7.209/7.366/0.157 ms

といった感じで、50%前後のパケットロスが発生するようになります。
この状況を放置していると、復活することもあれば、悪化する場合もあり、
悪化すると、

> % ping -c 10 xxx.xxx.xxx.xxx
> ping: sendto: No buffer space available
> ping: sendto: No buffer space available
(略)
> ping: sendto: No buffer space available
> PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx): 56 data bytes
> --- xxx.xxx.xxx.xxx ping statistics ---
> 10 packets transmitted, 0 packets received, 100.0% packet loss

と、「sendto: No buffer space available」が出て、まったく通信できない
状態になります。こうなった状況でも、ppp の接続は確立したままということに
なっており、ppp.log には、

> Jan 18 05:54:57 xxx ppp[423]: tun0: LCP: deflink: RecvEchoRequest(80) state = 
> Opened
> Jan 18 05:54:57 xxx ppp[423]: tun0: LCP: deflink: SendEchoReply(80) state = 
> Opened

といった  RecvEchoRequest の受信は定期的に行われています。

ここで、
> # /etc/rc.d/ppp stop ; sleep 3; ifconfig fxp0 down ; sleep 3; ifconfig fxp0 
> up ; sleep 3; /etc/rc.d/ppp start
と、pppを切断・再接続すると、運が良ければ復旧します。運が悪いと、ppp接続が再確立できません。
このまま放置すると、ppp が30秒おきに再接続にいきますが、いつまで経ってもppp接続できるようにはなりません。

OSを再起動させると、また元通り通信できるようになります。


利用環境:
・FreeBSD 7.2-RELEASE amd64
・自作PC(ASUS M3A78-EM) AthlonX2 5050e
・PPPoE用に Intel PRO/1000 GT Desktop Adapter (fxp) を増設
・NTT西日本 フレッツ光プレミアム マンションタイプ
・CTUのPPPoE機能を有効にし、FreeBSDから ppp で接続
・接続先プロバイダは Interlink 

・障害発生時も、LAN側(re0)は問題なく使える
・LANアダプタを LAN用と PPPoE用とで入れ替えて、re0 を ppp に使っても発生する
・試しに mpd5 にしてみたけど、mpd5でも発生する
・CTUにはネットサーフィン用に別途ブロードバンドルータ(こちらもCTUにPPPoE接続)が繋がっており、こちらの通信は問題ない
・障害発生時に、Windows機から Interlink に接続すると、問題なく接続できる

・かつて、FreeBSD 6.1-RELEASE i386 でも発生していた
・ほぼ同様の環境で、Bフレッツに接続している所もあるのですが、そちらは非常に安定している

といった状況なので、プロバイダやネットワーク機器の問題ではなく、FreeBSD 側の
問題で、CTUが相手だと相性問題か何かがある可能性が濃厚だと思っているのですが…

さっぱり原因がわからず、今は、cronで状態を監視して
「障害が発生したら ppp 切断再接続」「それでもダメならreboot」
するという対症療法で逃げています。

それでも、今までは再起動までしたのは数週間に1回ぐらいだったのが、
昨日1日で10回ぐらい再起動してるようです



-- 
PROJECT TEAM DoGA 高津正道                            ta...@doga.jp
                     PROJECT TEAM DoGAのホームページ → http://doga.jp/
1月18日(月) 今日のマーフィーの法則    [ウインフィールドの「行く先の道順」の金言]
道を教える人が「簡単にわかりますよ」と言えば言うほど、迷子になりやすい。

メールによる返信