マルチクライアント構成の場合、OpenVPNサーバーはクライアントIPアドレスをどのように割り当てますか?

マルチクライアント構成の場合、OpenVPNサーバーはクライアントIPアドレスをどのように割り当てますか?

マルチクライアントOpenVPN構成の場合は、server.conf関連資料(注)にあります。

サーバーモードを設定し、クライアントアドレスを取得できるVPNサブネットをOpenVPNに提供します。サーバーは10.8.0.1を取り、残りはクライアントに提供されます。すべてのクライアントは10.8.0.1のサーバーにアクセスできます。

サーバー 10.8.0.0 255.255.255.0

したがって、私たちが理解したのは、実際には256のアドレスをプールに割り当て、最初に使用可能なアドレスは10.8.0.1、最後に使用可能なアドレスが10.8.0.254でなければなりません。これらの最初のアドレス(10.8.0.1)は、上記で明確に説明したようにサーバーに割り当てられます。

また、クライアント構成ファイルで同様のものが見つかりました。

サーバーのホスト名/ IPとポート。サーバー間の負荷分散を行うには、複数のリモート項目を持つことができます。

リモートマイサーバー-1 1194

私の推論によると、最後の行は次のように書かなければなりません。

remote 10.8.0.1 1194

サーバーアドレスと一致します。

(この声明は正しくありません。この回答.)

今私の質問は、サーバーが使用可能なアドレスプール(10.8.0.2-10.8.0.254)からクライアントにアドレスを割り当てるためにどのアルゴリズムに従うかということです。

最初のクライアントは.2アドレスを取得し、次のクライアントは.3アドレスを取得しますか?または、アドレスはランダムに割り当てられますか?それとも他のもの、0.5、9.なら、なぜですか?

ベストアンサー1

OpenVPNは、プール内の無料アドレスを見つけるために使用する正確なアルゴリズムを文書化しません。これは、無料アドレスである限り、実際には重要ではない実装の詳細であるためです。ただしifconfig_pool_find、次の関数を見ると、使用されるアルゴリズムを理解できますpool.c

  • モードの場合は、duplicate_cn最初の無料アドレスを使用してください。
  • 同じクライアントが以前に使用していたIPアドレスがまだ利用可能な場合は、それを選択してください。
  • それ以外の場合は、最近最も使用されていない無料アドレスがプールから選択されます。

他の質問は次のとおりです。

remote 10.8.0.1 1194

remoteいいえ、絶対アドレスとして使用しないでください。トンネル自体を介してトンネルサーバーに接続しようとしていますが、この時点(初期化中)にはトンネルが設定されていないため、サーバーに接続できません。どういうわけかトンネルを設定できる場合は、ルーティングループがあります。

トンネルを設定するには、トンネルを利用せずにトンネルの他のエンドポイントに接続できるIPアドレスが必要です。これは通常、このエンドポイントにアクセスできるパブリックインターネットアドレスです。それがあなたが与えなければならないことですremote

おすすめ記事