web-dev-qa-db-ja.com

同じマシン上で2つの異なるVPN接続を同時に持つことは可能ですか?多分異なるネットワークインターフェース上にありますか?

新しい職場に新しいクラスターをセットアップしていますが、最後の職場で別のクラスターを管理しています。基本的に、最初の構成を「コピー」して、新しい構成をセットアップします。

今、私は家にいます。両方のVPN接続を次々にではなく同時に使用したいと思います。 -)両方のクラスターに同時にアクセスします。私の意見ではこれは不可能ですが、誰かがアイデアを持っているかもしれませんか?

1つのVPN接続はOpenVPNを使用し、もう1つはCiscoVPNクライアントを使用します。それとも、ルートルールを試してそれを取得することは可能ですか?私はネットワーキングの経験があまりありません。

route -nを使用して、さまざまなサブインターフェイスのルールを再定義しようとしています。 VPNがアクティブでない場合に得られるものは次のとおりです。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1        0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0

ここで、Cisco VPN(VPN1)をオンにすると、次のようになります。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

OpenVPN(VPN2)を起動した場合:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1      0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     192.168.2.17    255.255.255.0   UG    0      0        0 tun0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
zzz.zzz.zz.zz   10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

そして今、両方をオンにすると(最初にvpn2、次にvpn1):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

理想的には、xxx.xxx.xxx.0のすべての要求は、VPN1のみがアクティブな場合(cscotun0)のように送信され、192.168.2.0のすべての要求は192.168.2.17(tun0)を通過し、他の要求はeth0を通過する必要があります...

私はルーティングに慣れていないので、助けていただければ幸いです。

編集:routeコマンドで遊んで設定を正しくセットアップしようとしている答えに触発されました。

より明確にするために、上記のルートテーブルを編集して、より有益なroute -nコマンドの結果を反映しました。また、自宅に10.1.0.0 nm 255.255.255.0IPアドレスを持つように自宅のルーターを変更しました。

私がよく理解している場合、VPN2(tun0)のみがアクティブな場合、それは私の家のデフォルトゲートウェイ(10.1.0.1)を使用し、いくつかの新しいルートを定義します。間違っていると理解した場合は教えてください。

192.168.1.0   192.168.2.17 -> this says "everything for 192.162.1.0 network (vpn2 network), then pass through official gateway 192.168.2.17 "
192.168.2.17  0.0.0.0 -> this says "everything for Host 192.168.2.17, goes to default gateway  (0.0.0.0) " , which is currently pointing to my home rooter"
zzz.zzz.zz.zz 10.1.0.1 -> this says "everything for zzz.zzz.zz.zz . pass through my home router (10.1.0.1)

VPN1のみをオンにすると、デフォルトゲートウェイが独自のゲートウェイ(xxx.xxx.xxx.53)で上書きされ、すべてがこれにリダイレクトされます。これは、ホームネットワークが表示されない理由でもあります(私が正しい場合)。

ここで、両方のVPNをオンにすると、デフォルトゲートウェイがVPN1(xxx.xxx.xxx.53)のいずれかにリダイレクトされることがわかります。また、次のように求めています。ルールを設定するにはどうすればよいですか。

  • 198.162.1.0のすべてが198.162.2.17を通過します
  • 198.162.2.17のものは10.1.0.1を通過します
  • xxx.xxx.xxx.0のものはxxx.xxx.xxx.117を通過します
  • 10.1.0.0のものは10.1.0.1に渡されます

私はroute addroute delで遊んでみましたが、多かれ少なかれ試行錯誤してやろうとしているので、自分が何をすべきかを理解したほうがいいでしょう。ここで適用したいのは正しいか基本的に愚かです...

編集2:MariusMatutiaeの提案に従って、両方のVPNがオンの場合のifconfigの結果をここに追加します。

cscotun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:xxx.xxx.xxx.117  P-t-P:xxx.xxx.xxx.117  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1380  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:4007 (4.0 KB)  TX bytes:3789 (3.7 KB)

eth0      Link encap:Ethernet  HWaddr 00:21:cc:6b:3e:ae  
          inet addr:10.1.0.226  Bcast:10.1.0.255  Mask:255.255.255.0
          inet6 addr: fe80::221:ccff:fe6b:3eae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29039 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14287030 (14.2 MB)  TX bytes:5521200 (5.5 MB)
          Interrupt:20 Memory:f3a00000-f3a20000 

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:9928 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9928 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4962141 (4.9 MB)  TX bytes:4962141 (4.9 MB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.2.18  P-t-P:192.168.2.17  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:719 errors:0 dropped:0 overruns:0 frame:0
          TX packets:764 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:103523 (103.5 KB)  TX bytes:56000 (56.0 KB)

編集3:

動作しないものの説明:両方のVPNをオンにした後、VPNtun0に到達できません。 xxx.xxx.xxx.0以外の何かをpingしようとすると、ping: sendmsg: Operation not permittedが表示されます。

理想的には、VPN(VNPネットのDNSが機能しない場合は、直接IPで管理できますが、問題はありません)と理想的にの両方にアクセスしたいと思います。 -)私のローカルLANへのアクセスも...

残念ながら、私はiptablesの専門家では、自分のやり方を理解するのに十分ではありません。

前もって感謝します

6
Danduk82

確かに、複数のVPNを同時に使用できます。これを調整する際の主な問題は、ルーティングテーブルが正しいことを確認することです。これは、すべてのVPNが、同じことを実行するVPNが他にもあると想定せずにルーティングテーブルを変更しようとするためです。

基本的にVPNを使用してリモートLANにアクセスし、すべてのトラフィックをリダイレクトするのではないため、シナリオは非常に単純です。最後の構成では、より複雑なセットアップが必要でしたが、あなたの場合は、はるかに少ない作業で済ませることができます。

これが機能するための前提条件は、すべてのサブネットが異なることです:自宅と2つの職場です。

これをすでに調整しているとすると、OpenVPNのクライアント構成ファイルに次のステートメントが含まれていることを確認する必要がありますnot

    redirect-gateway def1

サーバー構成ファイルにはnot次のステートメントが含まれています。

   Push "redirect-gateway def1 bypass-dhcp"

2つのVPNでの作業にのみ関心があるため、これで問題はすでに解決されています。他のVPNがデフォルトルートを取得した場合でも、ルーティングテーブルにデフォルトルートが1つあり、これで完了です。

ただし、Cisco VPNは、デフォルトではデフォルトルートを取得しません。だからあなたは大丈夫なはずです。確認するには、route -nの出力に次のような行がいくつか含まれていることを確認してください。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.73.1    0.0.0.0         UG    0      0        0 eth0

ここで、192.168.73.1はホームのデフォルトルーターです(ルーターが192.168.73.1でない場合は、必要に応じて変更してください)。

この問題は、両方のVPNを介してすべてのトラフィックを同時にリダイレクトしたい場合は、はるかに楽しいものでした(はい、実行できます)。

編集:

必要に応じて、さまざまなネットワークインターフェイスでOpenVPNを使用することもできます。例として、次のようにイーサネットカードに基づいて仮想インターフェイスを起動できます。

   ip link add link eth0 mac0 address 56:61:4f:7c:77:db type macvlan
   ip link set mac0 up
   dhclient mac0

次に、仮想インターフェイスmac0のIPアドレスを次のように確認します。

   ip addr show

次に、openvpnクライアント構成ファイルでステートメントを導入できます

   local IP_address_of_mac0

また、OpenVPNサーバーに接続すると、接続はインターフェースmac0にのみバインドされます。次に、リモートLANにアクセスするには、すべてのアプリケーションを同じインターフェイスmac0とそのIPアドレスにバインドすることを忘れないでください。たとえば、この方法でssh経由でPCにアクセスするには、次のように言う必要があります。

  ssh -b IP_address_of_mac0 user@remote_LAN_pc

等々。 pingの場合は、

   ping -i IP_address_of_mac0 remote_LAN_pc
6
MariusMatutiae

複数のVPNを同時に実行することは完全に可能です。

セットアップにいくつか問題があります-

実行しようとしていることに応じて、VPNサーバーがデフォルトルートを公開しないようにする必要があります(または、無視するか、正しいメトリックに対してより低いメトリックを使用します)。そうしないと、VPNが相互にルーティングしようとして、壊れてしまいます。もちろん、これは、VPNを使用して特定のネットワーク/ルートにのみ到達していることを意味します

2番目の問題(ネットマスク255.255.255.0の重複する192.168.1.0ネットワークに注意)は、到達しようとしている両方のネットワークが192.168.1.xにあるようです。カーネルはどちらを参照しているのかわからないため、これは問題です。正しい解決策は、ネットワークの1つに番号を付け直して、別のネットワークブロックに配置することです。 (iptablesやhostsファイルを使ってシステム上でこれをエミュレートするためにできる恐ろしい、恐ろしい、恐ろしいハックがあるかもしれませんが、その非常に専門的で壊れやすく、お勧めできません)。

ところで、ルートテーブルを作成するときは、一般に「-n」スイッチを使用して、マシン名を解決しようとするよりもIPを表示する方がよいでしょう。マシン名は私たちにとって何の意味もありません!!!

1
davidgo

VirtualBoxでW7 VMを設定し、それを介して2番目のVPNを使用し、ホストとゲスト間で双方向のフォルダー共有を使用するだけではどうでしょうか?シンプルさ:)

0
OxygenIT