web-dev-qa-db-ja.com

2つのIP-1つのOpenVPNインスタンス、不可能ですか?

私は完全に機能するopenvpnサーバーを備えたdebian64ビットvps、OpenVZを持っています。

同じopenvpnサーバーで使用したい追加のIPがあり、それを機能させることができません。 openvpn.confで「localADDITIONAL-IP」ディレクティブを指定した場合にのみ機能しますが、最初のIPは機能しません。 「ローカル」ディレクティブを2回指定すると、どちらも機能しません。

root@deal1:/etc/openvpn# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1338 (1.3 KiB) TX bytes:1338 (1.3 KiB)

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.186.35.1 P-t-P:10.186.35.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.186.36.1 P-t-P:10.186.36.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.2 P-t-P:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255 inet6 addr: 2607:ff28:0:12::c4e:18e5/128 Scope:Global inet6 addr: 2607:ff28:0:12::2ad7:f2b1/128 Scope:Global inet6 addr: 2607:ff28:0:12::86d5:56d4/128 Scope:Global inet6 addr: 2607:ff28:0:12::9d21:aba3/128 Scope:Global UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:38904 errors:0 dropped:0 overruns:0 frame:0 TX packets:20408 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:53671396 (51.1 MiB) TX bytes:1712747 (1.6 MiB)

venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:X.2.39.161 P-t-P:X.2.39.161 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1

venet0:5 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:X.2.39.162 P-t-P:X.2.39.162 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1

iptables:

-A POSTROUTING -s 10.186.35.0/24 -j SNAT --to-source X.2.39.161   
-A POSTROUTING -s 10.186.35.0/24 -j SNAT --to-source X.2.39.162

openvpn config:

server 10.186.35.0 255.255.255.0
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
#Push "route 0.0.0.0 0.0.0.0"
#Push "redirect-gateway"
Push "redirect-gateway def1 bypass-dhcp"
Push "dhcp-option DNS 208.67.220.220"
Push "dhcp-option DNS 208.67.222.222"
keepalive 10 120
comp-lzo
user nobody
group users
persist-key
persist-tun
status openvpn-status.log
verb 3
script-security 3
auth-user-pass-verify /etc/openvpn/auth-chap via-env
client-cert-not-required
duplicate-cn
management 127.0.0.1 51194

私が欠けているアイデアはありますか?私はかなりの数のことを試し、たくさん検索しましたが、グーグル可能なインターネットには解決策がありません。

2
user2489483

男openvpn:

- 地元
ホストローカルバインド用のホスト名またはIPアドレス。指定した場合、OpenVPNはこのアドレスにのみバインドします。指定しない場合、OpenVPNはすべてのインターフェースにバインドします。

したがって、「ローカル」ディレクティブを指定しない場合、openvpnサーバーはすべてのインターフェースでリッスンします。これはnetstat -nlpで確認できます。次のようなものが表示されます。

udp 0 0 0.0.0.0:1194 0.0.0.0:* LISTEN 2005/openvpn

プロトコルをtcpに変更し、両方のアドレスの1194ポートに接続してみます。問題がある場合は、ルーティングルールのどこかにエラーがあります。

4
Selivanov Pavel

--multihomeオプションが必要です。

マルチホームの状況と互換性がないため、--localは使用しないでください。

また、ルーティングテーブルがマルチホームセットアップに適していることを100%確認する必要があります。 Linuxユーザーは、特に以下のディストリビューションの詳細を確認する必要があります。

/sbin/ip rule list

クライアントが接続できる特定のIPアドレスごとに少なくとも1つのルールが表示されます。すべてのルールが「すべてから」であり、ルーティングテーブルとしてローカル、メイン、デフォルトしかない場合は、それだけでは不十分です。

2
Tel