OpenVPNドキュメント

動的IPアドレスでOpenVPNサーバーを実行する

OpenVPNクライアントは特別な設定なしで動的IPアドレス経由でサーバーに簡単にアクセスできますが、サーバー自体が動的IPアドレスを使用している場合は状況が複雑になります。
OpenVPNは動的IPアドレスでのサーバーでも問題なく動作しますが、追加の設定が必要です。

まず最初に、サーバーのIPアドレスが変わるたびにサーバーに追従するよう設定できるダイナミックDNSアドレスを取得することです。
dyndns.orgなど、いくつかのダイナミックDNSサービスサービスが提供されています。

次に、サーバーのIPアドレスが変わるたびにダイナミックDNS名が新しいIPアドレスで迅速に更新され、クライアントが新しいIPアドレスでサーバーを見つけられるようにセットアップすることです。
これには主に2つの方法があります。

  • Linksys BEFSR41などのダイナミックDNS対応のNATルーターアプライアンスを使用してください。
    多くのNATルーターアプライアンスはISPから新しいDHCPリースを取得するたびにダイナミックDNS名を更新する機能を備えています。
    この設定は、OpenVPNサーバーがファイアウォール内の単一NICマシンである場合に最も適しています。
  • ddclientなどのダイナミックDNSクライアントアプリケーションを使用して、サーバーのIPアドレスが変更されるたびにダイナミックDNSアドレスを更新します。
    この設定は、OpenVPNを実行しているマシンに複数のNICがあり、サイト全体のファイアウォール/ゲートウェイとして機能している場合に適しています。
    この設定の実装にはIPアドレスが変更されるたびにDHCPクライアントソフトウェアによって実行されるスクリプトを設定する必要があります。
    (1)ddclientを実行してダイナミックDNSプロバイダに新しいIPアドレスを通知し、(2)OpenVPNサーバーデーモンを再起動する必要があります。

クライアント設定ファイルでダイナミックDNS名を参照するremoteディレクティブを使用している場合、OpenVPNクライアントはデフォルトでサーバーのIPアドレスが変更されたことを検知します。
この動作の流れとしては
(1)OpenVPNクライアントがサーバーの古いIPアドレスからキープアライブメッセージの受信に失敗して再起動が行われ、
(2)再起動によってremoteディレクティブで指定されたアドレスが再解決され、新しいIPアドレスでサーバーに再接続できるようになる、
というものです。