このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
mae3xx_ope:ppp_monitor:start [2018/09/13 11:13] – admin | mae3xx_ope:ppp_monitor:start [2024/12/23 16:59] (現在) – admin | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== PPP 接続を行う (発信・状態監視機能あり) ====== | ||
+ | |||
+ | Ubuntu Linux 標準のネットワーク接続機能((ifup/ | ||
+ | 3G/4G のデバイスが不具合を起こすなどした場合に接続を維持することができません。\\ | ||
+ | デバイス自動リセット、自動再接続などの機能がないためです。 | ||
+ | |||
+ | 遠隔地に置いたときのように、人手で回復処理を行うことが難しいケースで安定運用を行うことができるよう、\\ | ||
+ | 下記機能を設けた Upstart の Job " | ||
+ | |||
+ | * PPP 接続失敗時、もしくは切断時の 3G/4G デバイス自動リセット | ||
+ | * Persist (持続) 接続機能 | ||
+ | |||
+ | ※ v4.0.0 より、systemd になっています。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 設定 ===== | ||
+ | |||
+ | ==== PPP 接続設定 ==== | ||
+ | |||
+ | [[mae3xx_ope: | ||
+ | ※ v2.2.0β9 より PPP 設定ファイル生成機能、v2.7.0α2 より PING による接続状態監視機能を追加しました。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== Upstart Job / systemd service 設定 ==== | ||
+ | |||
+ | Upstart Job / systemd service の設定ファイルは、/ | ||
+ | サンプルファイルを下記に示します。 | ||
+ | |||
+ | <file generic ppp> | ||
+ | START=yes | ||
+ | PROVIDER=DTI | ||
+ | PERSIST=1 | ||
+ | RESET_ON_FAIL=1 | ||
+ | RESET_ALWAYS=0 | ||
+ | RESET_AT=03: | ||
+ | RESET_WAIT=30 | ||
+ | HOLDOFF=5 | ||
+ | RETRY=3 | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | 設定項目はそれぞれ下記のとおりです。 | ||
+ | |||
+ | ^ 項目 | ||
+ | |START|使用するかどうか| | ||
+ | |PROVIDER|PPP 設定ファイル名|/ | ||
+ | |PERSIST|持続接続を行う| | ||
+ | |RESET_ON_FAIL|異常発生時、3G/ | ||
+ | |RESET_ALWAYS|PPP 切断時、常に 3G/4G デバイスをリセットする| | ||
+ | |RESET_AT((" | ||
+ | |RESET_WAIT|3G/ | ||
+ | |HOLDOFF|PPP 再接続待機時間 [秒]| | 5 | | ||
+ | |RETRY|PPP 異常判断までのリトライ回数((v2.7.0α2で追加))| | 3 | | ||
+ | |||
+ | \\ | ||
+ | |||
+ | v2.2.0β9 より PPP 設定ファイル生成機能 (上記 PROVIDER 部分)、v2.7.0α2 より PING による接続状態監視機能を追加しました。\\ | ||
+ | コメント ("# PPP config" | ||
+ | |||
+ | <file generic ppp> | ||
+ | START=yes | ||
+ | PROVIDER= | ||
+ | PERSIST=1 | ||
+ | RESET_ON_FAIL=1 | ||
+ | RESET_ALWAYS=0 | ||
+ | RESET_WAIT=30 | ||
+ | HOLDOFF=5 | ||
+ | RETRY=3 | ||
+ | |||
+ | # PPP config | ||
+ | APN=dream.jp | ||
+ | PDPTYPE=IP | ||
+ | DEMAND=1 | ||
+ | IDLE=60 | ||
+ | DEVICE=AUTO | ||
+ | DEFAULTROUTE=1 | ||
+ | AUTH=CHAP | ||
+ | ACCOUNT=user@dream.jp | ||
+ | PASSWORD=dti | ||
+ | NETMODE= | ||
+ | NO_DNS= | ||
+ | |||
+ | # monitor | ||
+ | MONITOR=yes | ||
+ | MONITOR_TARGET=www.centurysys.jp | ||
+ | MONITOR_INTERVAL=30 | ||
+ | MONITOR_FAIL=2 | ||
+ | MONITOR_LOG=yes | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ^ 項目 | ||
+ | |APN|Access Point Name| | | ||
+ | |PDPTYPE|PDP Type| IP / PPP | | ||
+ | |DEMAND|オンデマンド接続を行う| | ||
+ | |IDLE|無通信タイムアウト時間 [秒]| | | ||
+ | |DEVICE|3G/ | ||
+ | |DEFAULTROUTE|PPP にデフォルトルートを設定する| | ||
+ | |AUTH|認証方式| | ||
+ | |ACCOUNT|PPP アカウント| | | ||
+ | |PASSWORD|PPP パスワード| | | ||
+ | |NETMODE((MA-E350/ | ||
+ | |CARRIERID((AMM570/ | ||
+ | |NO_DNS|DNS を IPCP で取得しない((PPP peers のファイルに、" | ||
+ | |MONITOR|PING 接続監視機能 有効/ | ||
+ | |MONITOR_TARGET|PING 監視先アドレス| | ||
+ | |MONITOR_INTERVAL|PING 送信間隔| | ||
+ | |MONITOR_FAIL|PING リトライ回数| | | ||
+ | |MONITOR_LOG|PING 実行結果を記録する/ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | v2.8.4β1 より、PPP 接続に成功した場合、設定ファイル(/ | ||
+ | これは、AMTelecom Module が APN 設定/ | ||
+ | SIM 変更などの理由でエディタで設定を変更する場合、**CONNECT_OK=1** の行を削除してください。 | ||
+ | |||
+ | ※ よって、AMTelecom Module の場合、**wvdial** の利用は推奨しません。通常、wvdial を使う場合の説明では、初期化文字列で APN 等を設定するようになっているためです。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | この設定ファイルから PPP 接続の設定ファイルを生成する条件は下記となります。 | ||
+ | |||
+ | * " | ||
+ | |||
+ | 生成・編集するファイルは下記となります。 | ||
+ | |||
+ | * / | ||
+ | * / | ||
+ | * / | ||
+ | * / | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === 生成されたファイルの例 === | ||
+ | |||
+ | 下記設定ファイルから生成された設定ファイルの例です。 | ||
+ | |||
+ | <file conf ppp> | ||
+ | START=yes | ||
+ | PROVIDER= | ||
+ | PERSIST=1 | ||
+ | RESET_ON_FAIL=1 | ||
+ | RESET_ALWAYS=0 | ||
+ | RESET_WAIT=30 | ||
+ | HOLDOFF=5 | ||
+ | |||
+ | # PPP config | ||
+ | APN=dream.jp | ||
+ | PDPTYPE=IP | ||
+ | DEMAND=1 | ||
+ | IDLE=60 | ||
+ | DEVICE=LISA-U200 | ||
+ | DEFAULTROUTE=1 | ||
+ | AUTH=CHAP | ||
+ | ACCOUNT=user@dream.jp | ||
+ | PASSWORD=dti | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | == / | ||
+ | |||
+ | <file conf ppp0> | ||
+ | # This optionfile was generated by gen_pppconfig. | ||
+ | # | ||
+ | # | ||
+ | unit 0 | ||
+ | hide-password | ||
+ | noauth | ||
+ | connect "/ | ||
+ | debug | ||
+ | modem | ||
+ | lock | ||
+ | / | ||
+ | 460800 | ||
+ | defaultroute | ||
+ | replacedefaultroute | ||
+ | noipdefault | ||
+ | user " | ||
+ | remotename ppp0 | ||
+ | ipparam ppp0 | ||
+ | |||
+ | demand | ||
+ | nopersist | ||
+ | idle 60 | ||
+ | usepeerdns | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | == / | ||
+ | |||
+ | <file conf chap-secrets> | ||
+ | # Secrets for authentication using CHAP/PAP | ||
+ | # client server secret IP addresses | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | == / | ||
+ | |||
+ | <file conf ppp0> | ||
+ | # This chatfile was generated by gen_pppconfig. | ||
+ | # | ||
+ | '' | ||
+ | OK ATE0 | ||
+ | ABORT BUSY | ||
+ | ABORT 'NO CARRIER' | ||
+ | ABORT VOICE | ||
+ | ABORT 'NO DIALTONE' | ||
+ | ABORT 'NO DIAL TONE' | ||
+ | ABORT 'NO ANSWER' | ||
+ | ABORT DELAYED | ||
+ | ABORT ERROR | ||
+ | TIMEOUT 30 | ||
+ | |||
+ | OK AT+CGDCONT=1," | ||
+ | OK AT | ||
+ | OK ATDT*99***1# | ||
+ | CONNECT \d\c | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Job の起動/ | ||
+ | |||
+ | 上記設定ファイルで、" | ||
+ | 手動で 起動/ | ||
+ | |||
+ | ==== Upstart の場合 ==== | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | [sudo] password for user1: | ||
+ | ppp stop/ | ||
+ | user1@plum: | ||
+ | ppp start/ | ||
+ | user1@plum: | ||
+ | ppp start/ | ||
+ | user1@plum: | ||
+ | ppp stop/ | ||
+ | user1@plum: | ||
+ | ppp stop/ | ||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== systemd の場合 ==== | ||
+ | |||
+ | === 状態確認 === | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | [sudo] password for user1: | ||
+ | ● ppp.path | ||
+ | | ||
+ | | ||
+ | |||
+ | Aug 29 09:07:03 plum systemd[1]: Started ppp.path. | ||
+ | Aug 29 09:32:21 plum systemd[1]: Stopped ppp.path. | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | ● ppp.service - PPP wrapper | ||
+ | | ||
+ | | ||
+ | Process: 512 ExecStart=/ | ||
+ | Process: 508 ExecStartPre=/ | ||
+ | Main PID: 512 (code=killed, | ||
+ | |||
+ | Aug 29 09:32:21 plum systemd[1]: Stopping PPP wrapper... | ||
+ | Aug 29 09:32:21 plum pppd[523]: Script / | ||
+ | Aug 29 09:32:21 plum pppd[523]: sent [LCP TermReq id=0x2 "User request" | ||
+ | Aug 29 09:32:21 plum pppd[523]: Terminating on signal 15 | ||
+ | Aug 29 09:32:21 plum pppd[523]: rcvd [LCP TermAck id=0x2] | ||
+ | Aug 29 09:32:21 plum pppd[523]: Connection terminated. | ||
+ | Aug 29 09:32:21 plum ip-down[1145]: | ||
+ | Aug 29 09:32:21 plum pppd[523]: Script / | ||
+ | Aug 29 09:32:21 plum pppd[523]: Exit. | ||
+ | Aug 29 09:32:21 plum systemd[1]: Stopped PPP wrapper. | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === 接続開始 === | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | 接続が完了した場合の状態 | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | ● ppp.service - PPP wrapper | ||
+ | | ||
+ | | ||
+ | Process: 1234 ExecStartPre=/ | ||
+ | Main PID: 1235 (ppp_wrapper) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Aug 29 09:34:10 plum pppd[1246]: primary | ||
+ | Aug 29 09:34:10 plum pppd[1246]: secondary DNS address 202.231.208.72 | ||
+ | Aug 29 09:34:10 plum pppd[1246]: Script / | ||
+ | Aug 29 09:34:11 plum ddclient[1306]: | ||
+ | Aug 29 09:34:11 plum ddclient[1308]: | ||
+ | Aug 29 09:34:11 plum ip-up[1312]: | ||
+ | Aug 29 09:34:11 plum ddclient[1313]: | ||
+ | Aug 29 09:34:11 plum pppd[1246]: Script / | ||
+ | Aug 29 09:34:11 plum ddclient[1319]: | ||
+ | Aug 29 09:34:11 plum ppp_monitor[1320]: | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === 切断 === | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | 切断が完了した場合の状態 | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | ● ppp.path | ||
+ | | ||
+ | | ||
+ | |||
+ | Aug 29 09:34:01 plum systemd[1]: Started ppp.path. | ||
+ | Aug 29 09:35:17 plum systemd[1]: Stopped ppp.path. | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | ● ppp.service - PPP wrapper | ||
+ | | ||
+ | | ||
+ | Process: 1235 ExecStart=/ | ||
+ | Process: 1234 ExecStartPre=/ | ||
+ | Main PID: 1235 (code=killed, | ||
+ | |||
+ | Aug 29 09:35:17 plum systemd[1]: Stopping PPP wrapper... | ||
+ | Aug 29 09:35:17 plum pppd[1246]: Script / | ||
+ | Aug 29 09:35:17 plum pppd[1246]: sent [LCP TermReq id=0x2 "User request" | ||
+ | Aug 29 09:35:17 plum pppd[1246]: Terminating on signal 15 | ||
+ | Aug 29 09:35:17 plum pppd[1246]: rcvd [LCP TermAck id=0x2] | ||
+ | Aug 29 09:35:17 plum pppd[1246]: Connection terminated. | ||
+ | Aug 29 09:35:17 plum ip-down[1336]: | ||
+ | Aug 29 09:35:18 plum pppd[1246]: Script / | ||
+ | Aug 29 09:35:18 plum pppd[1246]: Exit. | ||
+ | Aug 29 09:35:18 plum systemd[1]: Stopped PPP wrapper. | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 設定例 ===== | ||
+ | |||
+ | ==== SORACOM (plan-K) ==== | ||
+ | |||
+ | <file conf ppp> | ||
+ | # PPP config | ||
+ | APN=soracom.io | ||
+ | PDPTYPE=IP | ||
+ | DEMAND= | ||
+ | IDLE= | ||
+ | DEVICE=AUTO | ||
+ | LOCALADDR= | ||
+ | REMOTEADDR= | ||
+ | NETMASK= | ||
+ | DEFAULTROUTE=1 | ||
+ | AUTH=CHAP | ||
+ | ACCOUNT=sora | ||
+ | PASSWORD=sora | ||
+ | NETMODE= | ||
+ | CARRIERID=5 | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== au.net ==== | ||
+ | |||
+ | <file conf ppp> | ||
+ | # PPP config | ||
+ | APN=au.au-net.ne.jp | ||
+ | PDPTYPE=IP | ||
+ | DEMAND=1 | ||
+ | IDLE=30 | ||
+ | DEVICE=KYM11 | ||
+ | DEFAULTROUTE=1 | ||
+ | AUTH=CHAP | ||
+ | ACCOUNT=user@au.au-net.ne.jp | ||
+ | PASSWORD=au | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== ServersMan LTE (DTI) ==== | ||
+ | |||
+ | <file conf ppp> | ||
+ | # PPP config | ||
+ | APN=dream.jp | ||
+ | PDPTYPE=IP | ||
+ | DEMAND=1 | ||
+ | IDLE=30 | ||
+ | DEVICE=LISA-U200 | ||
+ | DEFAULTROUTE=1 | ||
+ | AUTH=CHAP | ||
+ | ACCOUNT=user@dream.jp | ||
+ | PASSWORD=dti | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== IIJ モバイルサービス/ | ||
+ | |||
+ | <file conf ppp> | ||
+ | # PPP config | ||
+ | APN=iijmobile.biz | ||
+ | PDPTYPE=IP | ||
+ | DEMAND= | ||
+ | IDLE= | ||
+ | DEVICE=AUTO | ||
+ | LOCALADDR= | ||
+ | REMOTEADDR= | ||
+ | NETMASK= | ||
+ | DEFAULTROUTE=1 | ||
+ | AUTH=CHAP | ||
+ | ACCOUNT=mobile@iij | ||
+ | PASSWORD=iij | ||
+ | NETMODE= | ||
+ | CARRIERID=4 | ||
+ | </ | ||
+ | |||
+ | ※ AMM570 もしくは LN940A 搭載の機器のみ対応 | ||
+ | |||
+ | \\ | ||
+ | ==== さくらのセキュアモバイル ==== | ||
+ | |||
+ | <file conf ppp> | ||
+ | # PPP config | ||
+ | APN=sakura | ||
+ | PDPTYPE=IP | ||
+ | DEMAND= | ||
+ | IDLE= | ||
+ | DEVICE=AUTO | ||
+ | LOCALADDR= | ||
+ | REMOTEADDR= | ||
+ | NETMASK= | ||
+ | DEFAULTROUTE=1 | ||
+ | AUTH=NOAUTH | ||
+ | ACCOUNT= | ||
+ | PASSWORD= | ||
+ | NETMODE= | ||
+ | CARRIERID=44020 <--- 接続するキャリア(NTT docomo/ | ||
+ | </ | ||
+ | |||
+ | ※ AMM570((v4.2.0rc8から対応))もしくは LN940A 搭載の機器のみ対応 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== PPP 接続状態監視 ===== | ||
+ | |||
+ | v2.7.0α2 より追加した、常時接続中(PERSIST)((" | ||
+ | PPP 接続中、指定した間隔で指定したアドレスに PING(ICMP ECHO) を送信し、連続して指定した回数応答がない場合 PPP を切断します。 | ||
+ | |||
+ | 下記のようなログが記録されます。 | ||
+ | |||
+ | < | ||
+ | Apr 5 10:27:45 plum pppd[2478]: Script / | ||
+ | Apr 5 10:27:46 plum ip-up: Execute PPP monitor. | ||
+ | Apr 5 10:27:46 plum pppd[2478]: Script / | ||
+ | Apr 5 10:27:46 plum ppp_monitor: | ||
+ | Apr 5 10:28:16 plum ppp_monitor: | ||
+ | Apr 5 10:28:46 plum ppp_monitor: | ||
+ | Apr 5 10:29:16 plum ppp_monitor: | ||
+ | </ | ||
+ | \\ | ||
+ | 手動でアドレスを指定すると、対象が落ちてしまった場合もPPPを切断してしまう為、v5.3.0より、LTE通信の経路上で応答するホップ数が最小のアドレスを対象にするように変更しています。((" | ||
+ | < | ||
+ | Feb 22 10:44:07 gemini ppp_manager[992]: | ||
+ | Feb 22 10:44:37 gemini ppp_manager[992]: | ||
+ | Feb 22 10:44:37 gemini ppp_manager[992]: | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 注意点 ===== | ||
+ | |||
+ | PPP 接続の各種設定 (APN / アカウント / パスワード) が誤っている場合、常に **" | ||
+ | この機能(特に 3G/4G デバイスのリセット)を有効にする前に、手動での PPP 接続ができることを確認してください。 | ||
+ | |||
+ | \\ | ||