OpenVPNでのクライアント静的IPのこの割り当てが失敗するのはなぜですか?


8

OpenVPNサーバーを実行していて、特定のクライアントに静的IPを割り当てたいのですが。

これは私のserver.confです。私が考えるこれが10.5.24.209から10.5.24.223にスパンへの仮想IPアドレスのプールを設定します。

port 443
proto tcp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.5.24.208 255.255.255.240
#This netmask should span IPs .208-.223.
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 168.xx.xx.xx"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
client-to-client
client-config-dir ccd

これはの内容です/etc/openvpn/ccd/W7LocalVM。W7LocalVMはクライアントの共通名です。このディレクティブの機能がよくわかりませんが、最初のIPはクライアントに必要な静的IPであり、2番目のIPはサーバーのIPでなければなりません。

ifconfig-push 10.5.24.210 10.5.24.209

しかし、このサーバー構成でクライアントを接続しようとすると、次のエラーが発生します。

Mon Aug 07 14:07:34 2017 Set TAP-Windows TUN subnet mode network/local/netmask = 10.5.24.208/10.5.24.210/10.5.24.209 [SUCCEEDED]
Mon Aug 07 14:07:34 2017 MANAGEMENT: Client disconnected
Mon Aug 07 14:07:34 2017 ERROR: --ip-win32 dynamic [offset] : offset is outside of --ifconfig subnet
Mon Aug 07 14:07:34 2017 Exiting due to fatal error

IP 10.5.24.210はサーバー側で定義されたサブネット内にあると思いましたが、このエラーが発生する理由がわかりません。誰かが私を助けてくれませんか?


1
代わりに、サーバー障害についてこれを尋ねることをお勧めします。そのサイトはサーバー管理の問題に特化しているため、フィードバックがさらに役立つ可能性があります。
EJoshuaS-モニカを2017年

OK。ありがとうございました。そのコミュニティについて知りませんでした。再投稿する必要がありますか、それとも投稿を移行できる機能はありますか?
Magnus

1
モデレーターの介入のフラグを立てて、移行を依頼することができます。(スーパーユーザーのようないくつかのサイトでは、コミュニティは移行に投票できますが、そのサイトへの移行はモデレーターが行う必要があります)。
EJoshuaS-2017年

回答:


4

この問題は、openvpnがifconfigオプションをIPの後にサブネットマスクが続くものとして解析しようとしているために発生します。

マニュアルページによると:

-トポロジモード

...

サブネット-ポイントツーポイントトポロジーではなくサブネットを使用します。--devタップとイーサネットブリッジングモードで使用されるトポロジーと同様に、ローカルIPアドレスとサブネットマスクでtunインターフェースを構成します。このモードは、接続しているクライアントごとに単一のIPアドレスを割り当て、Windowsでも機能します。サーバーとクライアントがOpenVPN 2.1以降、または--topologyディレクティブコードで手動でパッチされたOpenVPN 2.0.xの場合にのみ使用できます。Windowsで使用する場合、バージョン8.2以降のTAP-Win32ドライバーが必要です。* nixで使用する場合、tunドライバーがリモートエンドポイントIPアドレスの代わりにサブネットを設定するifconfig(8)コマンドをサポートする必要があります。

このオプションは、OpenVPN 2.1以降に存在します。

注:--topologyサブネットを使用すると、-ifconfigの引数の解釈が「アドレスネットマスク」を意味するように変更され、「ローカルリモート」ではなくなります。

--ifconfig l rn

TUN / TAPアダプターのパラメーターを設定します。lは、ローカルVPNエンドポイントのIPアドレスです。ポイントツーポイントモードのTUNデバイスの場合、rnはリモートVPNエンドポイントのIPアドレスです。TAPデバイス、または--topology subnet使用されるTUNデバイスの場合rnは、作成または接続されている仮想ネットワークセグメントのサブネットマスクです。仮想ポイントツーポイントIP接続を容易にするTUNデバイスの場合(--topology net30またはp2pモードで使用される場合)、-ifconfigの適切な使用法は、既存のサブネットのメンバーではない2つのプライベートIPアドレスを使用することです。使用中です。IPアドレスは連続している可能性があり、リモートピアでは順序を逆にする必要があります。VPNが確立された後、rnにpingを実行すると、VPNを介してpingが実行されます。

提供するTAPデバイスの場合...

サーバーコード内でトポロジをsubnetに設定し、serverステートメントを使用してトポロジをクライアントにプッシュします。

上記のドキュメントによると、「ローカル」、「リモート」アドレスを使用してifconfigをプッシュする代わりに、「/ etc / openvpn / ccd / W7LocalVM」に以下を追加する必要があります。

ifconfig-push 10.5.24.210 255.255.255.252
push route 10.5.24.210 255.255.255.252
# ifconfig 10.5.24.209 255.255.255.252

最後の行はおそらく必要ないでしょうが、接続を機能させるためにサーバー側でifconfig-pushが「すべき」ことの例として残されています。


ここに、クライアントごとに4つのIPを割り当てることを提案する理由を尋ねるコメントを書きましたが、FAQでその答えを見つけるのに十分なほど勤勉でした。謎を解いてくれてありがとう!
Magnus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.