開発
RaspberryPiでSORACOM Air使ってる時、一定期間立つとpeerに切られる
Shoma Saito
切られる
切られてしまう。
現状
Sep 6 10:27:10 raspberrypi pppd[1515]: Plugin /usr/lib/pppd/2.4.6/nm-pppd-plugin.so loaded.
Sep 6 10:27:10 raspberrypi pppd[1515]: pppd 2.4.6 started by root, uid 0
Sep 6 10:27:10 raspberrypi pppd[1515]: Using interface ppp0
Sep 6 10:27:10 raspberrypi pppd[1515]: Connect: ppp0 <--> /dev/ttyUSB3
Sep 6 10:27:10 raspberrypi pppd[1515]: CHAP authentication succeeded
Sep 6 10:27:10 raspberrypi pppd[1515]: CHAP authentication succeeded
Sep 6 10:27:13 raspberrypi pppd[1515]: IPV6CP: timeout sending Config-Requests
Sep 6 10:27:13 raspberrypi pppd[1515]: Could not determine remote IP address: defaulting to あどれす
Sep 6 10:27:13 raspberrypi pppd[1515]: local IP address あどれす
Sep 6 10:27:13 raspberrypi pppd[1515]: remote IP address あどれす
Sep 6 11:28:19 raspberrypi pppd[1515]: LCP terminated by peer
Sep 6 11:28:19 raspberrypi pppd[1515]: Connect time 61.1 minutes.
Sep 6 11:28:19 raspberrypi pppd[1515]: Sent 3072 bytes, received 0 bytes.
Sep 6 11:28:22 raspberrypi pppd[1515]: Connection terminated.
Sep 6 11:28:22 raspberrypi pppd[1515]: Modem hangup
Sep 6 11:28:22 raspberrypi pppd[1515]: Exit.
こんな感じでこうゆうのを永遠に繰り返してる。自分の場合は大体60分毎に切られる。そして1日位経つとppp0が消える。
無理やり解決した
どうにもならないと思ってたけど、一定周期で3G回線使って通信してあげると切られない。
仕方ないのでちょっと通信するやつ書いてcronで回すといい感じに切られなくなった。
この状態が続くと
pppdの設定をほとんどデフォルトにしてるため、大体1日放置してるとifconfig
でppp0
が見えなくなる、というか多分pppdが落ちる。
pppdの設定
これを見直すことによって解決できた。詳しくは https://linuxjm.osdn.jp/html/ppp/man8/pppd.8.html
ただ、おそらくバージョンの違いで設定出来るオプションに少し違いがあったため、/etc/ppp/options を直接見たほうがコメント書いてるしいいかもしれない。
# /etc/ppp/options
#
# Originally created by Jim Knoble <[email protected]>
# Modified for Debian by alvar Bray <[email protected]>
# Modified for PPP Server setup by Christoph Lameter <[email protected]>
#
# To quickly see what options are active in this file, use this command:
# egrep -v '#|^ *$' /etc/ppp/options
こんな感じで書いてあるので、簡単に読み進められる。
その中に
# Terminate after n consecutive failed connection attempts.
# A value of 0 means no limit. The default value is 10.
#maxfail <n>
という項目があったのでこれを 0 にした。あと、
# If this option is given, pppd will presume the peer to be dead if n
# LCP echo-requests are sent without receiving a valid LCP echo-reply.
# If this happens, pppd will terminate the connection. Use of this
# option requires a non-zero value for the lcp-echo-interval parameter.
# This option can be used to enable pppd to terminate after the physical
# connection has been broken (e.g., the modem has hung up) in
# situations where no hardware modem control lines are available.
lcp-echo-failure 4
とあったので、これも 0 にした結果落ちなくなった。
反省
pppdについての知識がなかったため結構時間がかかってしまった。
ログファイルまでたどり着くのは早かったけど、よくある初心者がエラー文読まないみたいなことをしてたので、もう少しログファイルを読み解く力がほしい。
でも解決してよかった。(ピアに切られるのは解決してないけど)