VyprVPN の自動再接続と、アップグレード後に Tomato ルーターで使えなくなった場合の対処法

VyprVPN の自動再接続と、アップグレード後に Tomato ルーターで使えなくなった場合の対処法

この記事では、VyprVPN と Tomato ルーターに関する小さな問題を 2 つ記録しておく。1 つ目は VPN が切断されたあとにルーターで自動再接続させる方法、2 つ目は Tomato ファームウェアをアップグレードしたあと VPN クライアントが突然使えなくなったときの切り分け方法である。

1. VyprVPN を自動再接続させる

Tomato の OpenVPN Client ページでは、通常まず次の基本項目を確認しておくとよい。

  1. Start with WAN が有効になっている。
  2. Interface TypeProtocol、サーバーアドレス、ポート、証明書設定が VyprVPN 公式設定と一致している。
  3. ルーターの時刻が正しい。時刻がずれていると証明書検証に失敗することがある。
  4. DNS 設定が利用可能で、接続成功後にドメイン名を解決できない状態を避けられる。

たまに切断されるだけなら、Tomato の Administration -> Scheduler に定期チェック用のスクリプトを追加できる。考え方は単純で、VPN インターフェースが存在するか、または指定したサイトに VPN 経由でアクセスできるかを確認し、失敗したら OpenVPN クライアントを再起動する。

サンプルスクリプトは次のとおり。vpnclient1 は自分のクライアント番号に合わせて調整する。

#!/bin/sh

VPN_SERVICE="vpnclient1"
TEST_HOST="8.8.8.8"

if ! ping -c 3 -W 3 "$TEST_HOST" >/dev/null 2>&1; then
  logger -t vyprvpn-watchdog "VPN check failed, restarting $VPN_SERVICE"
  service "$VPN_SERVICE" restart
fi

5 から 10 分ごとに実行すればよい。間隔を短くしすぎないこと。ネットワークが一時的に揺らいだだけで VPN が頻繁に再起動し、かえって使いにくくなる。

トラフィックが本当に VPN を通っているか確認したい場合は、公共 DNS に ping するだけでは不十分である。より確実なのは出口 IP を確認するか、VPN 経由でルーティングされるべきアドレスだけに ping する方法だ。Tomato のブランチによって利用できるコマンドには多少違いがあるため、まず SSH でルーターにログインして手動実行し、そのうえで Scheduler に入れることを勧める。

2. Tomato アップグレード後に使えない場合の切り分け

Tomato のアップグレード後に OpenVPN クライアントが使えなくなる場合、よくある原因は VyprVPN アカウント自体の失効ではなく、古い設定と新しいファームウェアの OpenVPN バージョン、暗号化パラメータ、または NVRAM 設定の非互換である。

次の順番で対処できる。

1. ログを確認する

まず Status -> Logs に移動するか、SSH からシステムログを確認する。

logread | grep -i openvpn

特に次の情報を見る。

  • 証明書、時刻、TLS ハンドシェイク関連のエラー。
  • cipherauthncpdata-ciphers などの暗号化パラメータのエラー。
  • DNS 解決の失敗。
  • ユーザー名とパスワードの認証失敗。
  • ルーティングテーブル、または tun/tap インターフェース作成の失敗。

ログでは、後続のリトライ情報よりも、最初に出てくる明確なエラーのほうが重要なことが多い。

2. VyprVPN 設定を更新する

ファームウェアをアップグレードしたあとは、何年も前の .ovpn 設定をそのまま使い続けないほうがよい。VyprVPN の管理画面または公式ヘルプページから OpenVPN 用の設定ファイルを改めてダウンロードし、Tomato のページと照らし合わせながら各項目を入力する。

特に注意が必要なのは次の点である。

  • サーバーアドレスとポートが今も有効か。
  • UDP を使うのか TCP を使うのか。
  • 証明書の内容を完全にコピーできているか。
  • ユーザー名とパスワードが正しい場所に保存されているか。
  • cipherauth などのパラメータが新しい OpenVPN バージョンで受け入れられるか。

新しいファームウェアで特定の暗号化パラメータがエラーになる場合でも、高度なオプションをむやみにすべて削除してはいけない。まずログからどの項目が非互換なのかを確認し、現在の設定ファイルに合わせて調整する。

3. 古い設定を消してから再入力する

アップグレード後、画面上の設定が正常に見えるのに接続が失敗し続ける場合は、OpenVPN Client の該当ページをいったん空にし、保存してルーターを再起動してから、設定を入力し直してみる。

より徹底するなら、設定をバックアップしたうえで NVRAM をクリアし、手動で再設定する方法もある。この操作ではルーター設定が消えるため、実行前に WAN、Wi-Fi、管理パスワードなどの基本設定を復元できることを確認しておく必要がある。

4. ルーティングと DNS を確認する

VPN は接続済みと表示されるのにウェブサイトを開けない場合、通常はルーティングと DNS を確認する。

ifconfig
route -n
cat /etc/resolv.conf

tun インターフェースが出ているか、デフォルトルートが VPN に引き継がれているか、DNS が名前解決できるかを確認する。一部のトラフィックだけを VPN に通したい場合は、ポリシールーティングのルールがアップグレード後のファームウェアにも引き続き適用できるかも確認する必要がある。

5. 最後に再起動スクリプトを入れる

設定そのものに問題がないことを確認してから、自動再接続スクリプトを有効にする。自動再接続で処理できるのは「たまに切断される」ケースだけであり、「設定ミス」は修復できない。設定自体に互換性がない場合、スクリプトは OpenVPN を延々と再起動するだけで、ログはますます見づらくなる。

実用的な処理順は次のとおりである。

  1. まず一度手動で接続し、ログに設定エラーがないことを確認する。
  2. 次に、切断後の手動再接続をテストする。
  3. 最後に Scheduler による自動チェックを追加する。

このように対処すれば、Tomato 上の VyprVPN はたいていアップグレード前の使用状態に戻せる。