Closed ddddddO closed 5 years ago
wifiルーターの再起動やOSの再起動がかかったりした際、vpn接続が切断されるため、 再接続したい。
[x] 実行環境 ・Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux →GOOS=linux GOARCH=arm go build ・rootユーザで起動する →crontabの方でsudo指定してコマンド設定しないと、うまく動かないコマンド(ifconfig/route)があった。
[x] 5分間隔でチェックする ~・cron~
[x] wifiルータ再起動考慮 ~・wifiルータの疎通確認出来なければ、5分後チェック~ ・wifiルータ再起動後、再び割り振られたローカルipでプログラム正常実行可能?
[x] vpn接続判定チェック候補 ・AccountStatusGetコマンドで「セッション接続状態」が、「接続完了 (セッション確立済み)」であること ・ifconfigコマンドで作成した仮想LANカードにグローバルIPが設定されていること ・routeコマンドでルーティングテーブルをチェックし、vpn接続設定になっていること ・/etc/resolv.conf にDNSのアドレスが存在すること
[x] 上記判定項目で設定されていない項目があれば設定する
[ ] ~再接続リトライは3回~
[x] OS再起動後vpnデーモンを起動 /etc/rc.local にコマンド記載し、OS起動後に実行するようにする
[ ] ログ出力 ・PID出力する ・溜まったログファイルは圧縮する ・異常検知時、メールかslackに通知 (・ログをAWSの方に送って、ログをWeb上で確認できるようなWebアプリつくる)
[x] デーモンじゃない問題
[ ] 修正→ビルド→デプロイ→cronか手動で実行→ログをtail -f で確認 を手作業でやるのが面倒。自動化したい。Jenkins
[ ] コマンド実行のとこゴルーチン化
・vpn接続中、wifiルーターを再起動した場合の、上記チェック項目のどこが変化するか知りたい。変化した箇所を、wifiルーター再起動がかかった判定としてつかう。
・cronで実行するコマンドはrootユーザー?
・wifiルータ再起動中にプログラム実行すると、VPNコマンドの途中で止まり、プロセスそのまま生きるっぽい。で、後続のプロセスも同じところで止まるっぽい。 →この場合は、プロセス殺す。か、OS再起動かける。 →"-VPN ReCOMMAND START-" 後、以下で止まってる。
VPN Client>AccountConnect MYIPSE AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始 エラーが発生しました。(エラーコード: 35) 指定された接続設定は現在接続中です。
→この接続設定が使用できるのであればいいけど、できなければ、VPNコマンド実行前に、MYIPSEをDISCONNECTする必要がある。 →この接続設定は使えない。なので、wifiルーターの再起動がかかった場合、MYIPSEをDISCONNECTして、つなぎ直す
概要
wifiルーターの再起動やOSの再起動がかかったりした際、vpn接続が切断されるため、 再接続したい。
要件
[x] 実行環境 ・Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux →GOOS=linux GOARCH=arm go build ・rootユーザで起動する →crontabの方でsudo指定してコマンド設定しないと、うまく動かないコマンド(ifconfig/route)があった。
[x] 5分間隔でチェックする ~・cron~
[x] wifiルータ再起動考慮 ~・wifiルータの疎通確認出来なければ、5分後チェック~ ・wifiルータ再起動後、再び割り振られたローカルipでプログラム正常実行可能?
[x] vpn接続判定チェック候補 ・AccountStatusGetコマンドで「セッション接続状態」が、「接続完了 (セッション確立済み)」であること ・ifconfigコマンドで作成した仮想LANカードにグローバルIPが設定されていること ・routeコマンドでルーティングテーブルをチェックし、vpn接続設定になっていること ・/etc/resolv.conf にDNSのアドレスが存在すること
[x] 上記判定項目で設定されていない項目があれば設定する
[ ] ~再接続リトライは3回~
[x] OS再起動後vpnデーモンを起動 /etc/rc.local にコマンド記載し、OS起動後に実行するようにする
[ ] ログ出力 ・PID出力する ・溜まったログファイルは圧縮する ・異常検知時、メールかslackに通知 (・ログをAWSの方に送って、ログをWeb上で確認できるようなWebアプリつくる)
[x] デーモンじゃない問題
運用
[ ] 修正→ビルド→デプロイ→cronか手動で実行→ログをtail -f で確認 を手作業でやるのが面倒。自動化したい。Jenkins
[ ] コマンド実行のとこゴルーチン化
調査
・vpn接続中、wifiルーターを再起動した場合の、上記チェック項目のどこが変化するか知りたい。変化した箇所を、wifiルーター再起動がかかった判定としてつかう。
・cronで実行するコマンドはrootユーザー?
・wifiルータ再起動中にプログラム実行すると、VPNコマンドの途中で止まり、プロセスそのまま生きるっぽい。で、後続のプロセスも同じところで止まるっぽい。 →この場合は、プロセス殺す。か、OS再起動かける。 →"-VPN ReCOMMAND START-" 後、以下で止まってる。
→この接続設定が使用できるのであればいいけど、できなければ、VPNコマンド実行前に、MYIPSEをDISCONNECTする必要がある。 →この接続設定は使えない。なので、wifiルーターの再起動がかかった場合、MYIPSEをDISCONNECTして、つなぎ直す