私はEthernet経由でpppdを使用してFreeBsdボックスを実行しています。 1つの例外を除いて、すべてがうまく機能します。時々接続は古くなるかもしれませんが、これはまれです。すべてが大丈夫だと思われます。 ifconfigでは動作していると言い、pppではリンクは問題ありませんが、トラフィックは通過しないと言います。私がしたことは、killall pppd
pppを実行してから手動で再起動することでした。再接続され、すべてが正常に戻った。
私の質問は:pppd(またはmpd5または他の場所)に設定されている場合、pppがリンクが古いことを検出して自動的に再接続するように設定することはありますか?
そのような設定がない場合は、他の回避策がありますか?
答え1
次のpppdを設定しましたか?リンク制御プロトコルオプション? pppdがリンクがまだ有効であることを確認するためにLCPエコーを送信するかどうか、および頻度、それ以外の場合に応答する方法を制御します。
lcp-echo-failure n
lcp-echo-interval n
lcp-echo-adaptive
pppdが終了後に接続を再開するかどうか、再接続する前に遅延する時間、失敗後に再起動する回数を制御する次のオプションとうまく組み合わせられます。
persist
holdoff n
maxfail n
maxfailが0以外の場合、pppdが完全に終了した場合(つまり、failed> maxfailが設定されている場合)、再起動にラッパースクリプトまたはcronジョブが必要になる場合があります。 maxfail> 0の一般的な理由は、長期的な中断などの状況にインテリジェントに対応するようにラッパースクリプトを書くことができるためです(続けて再試行する代わりに)。
これらの設定オプションとその他の設定オプションの詳細については、pppd のマニュアルページを参照してください。
答え2
既知のホストを定期的にpingしてホストに接続できない場合は、サービスを再起動する単純なシェルスクリプトをcrontabに追加します。
このような:
#!/bin/sh
ping -q -c3 google.com &> /dev/null
if [[ $? != "0" ]]
then
ppp_restart_command
fi
たとえば、名前をconn_check.sh
crontabに追加し、60秒ごとに実行するようにします。
答え3
それで私はこの解決策を思い出しました。
enable lqr
set lqrperiod 5