OpenVPN はプールから IP を除外します。

OpenVPN はプールから IP を除外します。

Linux Ubuntuシステム上で動作するOpenVPNサーバーがあります。複数のクライアントがこのサーバー(500台以上)に接続されているため、サーバーブリッジオプションを次のように設定しました。

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254

これは非常にうまく機能します。クライアントは動的IPアドレスを持ち、クライアント数が255を超えると、200ブロックから201ブロックに変わります。

これらのクライアントに接続する内部アプリケーションがありますが、IPアドレス10.0.200.255と10.0.201.0でアプリケーションがクラッシュします。

このIPアドレスは私が提供した範囲内ですが、使用できません。

私のプールから除外する方法はありますか?

それとも設定を変更する必要がありますか?

ベストアンサー1

単一の設定ファイルを使用してOpenVPNの組み込みDHCPサーバーを使用して複数のIP範囲を使用したり、特定のIPを除外したりする直接的な方法はありません。

私は3つの可能な解決策を提案します:

  • 解決策しかし、効果は保証されません。
  • DHCPプロキシモード、シンプルでスッキリと他の様々なオプション
  • 複数のインスタンス、より複雑でパフォーマンス上の利点があるかもしれません。

ただし、問題の根本原因である内部アプリケーションの障害を解決することをお勧めします。

解決策

サーバー構成ファイルに以下を追加します。

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254
ifconfig-pool-persist ipp.txt 0

この0ディレクティブの末尾にある設定ファイルは読み取り専用と見なされますifconfig-pool-persistipp.txt

ファイルの作成/etc/openvpn/ipp.txt:

reserved-not-used-cn-1,10.0.200.255
reserved-not-used-cn-2,10.0.201.0
reserved-not-used-cn-3,10.0.201.255
...

すべての予約済みIPアドレスをフォーマットでこのファイルに追加します<Common-Name>,<IP-address>。フィールド値に対して、<Common-Name>どのクライアント証明書にも使用されない値を選択します。

OpenVPNのマニュアルページに記載されているように、これが常に機能することを保証するわけではありません。

OpenVPNは、このファイルのエントリのみが、公開名とIPアドレスの間の過去の相関に基づく推奨事項と見なします。指定された一般名が常に指定されたIPアドレスを受信するという保証はありません。割り当てを保証するには、以下を使用してください。--ifconfig-push

DHCPプロキシモード

使ってるから蛇口設定を考慮すると、これはおそらく最善の解決策です。完全な機能を使用できるようにします。DHCPサーバー構成に応じて、サーバー側のサブネットまたはサーバー自体から。イーサネットブリッジングを設定する前に、オペレーティングシステムのブリッジング機能を使用してTAPインターフェイスを別のインターフェイスにブリッジする必要があります。

オープンVPNサーバー構成:

server-bridge

ディレクティブは次のように拡張されます。

mode server
tls-server
push "route-gateway dhcp"

DHCPDサーバー構成:

subnet 10.0.100.1 netmask 255.255.0.0 {
  range 10.0.200.1 10.0.200.254;
  range 10.0.201.1 10.0.201.254;
  range 10.0.202.1 10.0.202.254;
  range 10.0.203.1 10.0.203.254;
  ...
}

複数のインスタンス

別のアプローチは、/24複数の構成ファイルを使用して各サブネットごとに別々の openvpn インスタンスを作成することです。ただし、これにはインスタンスごとに異なるポートを使用する必要があります。

インスタンス 1 構成ファイル:

port 11941
server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.200.254

例2構成ファイル:

port 11942
server-bridge 10.0.100.1 255.255.0.0 10.0.201.1 10.0.201.254

...

これには次のものが必要です。

  • そのポート番号を含むIP範囲固有のクライアント構成、
  • iptablesまたは、たとえば、ポートからの着信接続にロードバランシングを使用1194し、インスタンス間で均等にデプロイします。

説明したように、このソリューションにはパフォーマンス上の利点があります。ここ

おすすめ記事