Mac OS X 10.8 VPN サーバー: LAN トラフィックの VPN をバイパスする (LAN トラフィックをセカンダリ接続にルーティングする)

Mac OS X 10.8 VPN サーバー: LAN トラフィックの VPN をバイパスする (LAN トラフィックをセカンダリ接続にルーティングする)

私は、OS X Mountain Lion で VPN サーバーを少し変わった設定にしています。これは基本的に、会社のファイアウォールをバイパスしてエクストラネット接続するためのブリッジとして使用されています。私たちのチームが行う必要がある特定の作業には、外部への自由なアクセスが必要であり、メインのファイアウォールを通過できるように IT ポリシーを変更することは選択肢にありません。

エクストラネット接続は、ワイヤレス N ルーター (Wi-Fi X と呼ぶことにします) を通じて提供されます。私の Mac Mini サーバーは、このルーターへの接続をプライマリ接続として設定しているため、ルーター経由でインターネットに自由にアクセスできます。直近のサブネット上のこのデバイスへの接続は LAN ポート経由で可能ですが、サブネット外では信頼性が低くなります。

PPTP と L2TP の両方を使用して、192.168.11.150 ~ 192.168.11.200 の範囲の IP アドレスをクライアントに提供するように VPN サーバーを構成することができ、システム環境設定の標準 Mac OS X VPN クライアントを使用して VPN 経由でエクストラネットに接続できましたが、当然ながら、ローカル アドレス (internal.company.com と呼びます) は何も返しません。

VPN 設定でルートを設定することで、VPN サーバーの制限を回避しようとしました。当社では、すべての内部トラフィックに 10.xxx ではなく 13.xxx を使用しているため、ルーティング テーブルは次のようになります。

IP Address ---------- Subnet Mask ---------- Configuration
0.0.0.0               248.0.0.0              Private
8.0.0.0               252.0.0.0              Private
12.0.0.0              255.0.0.0              Private
13.0.0.0              255.0.0.0              Public
14.0.0.0              254.0.0.0              Private
16.0.0.0              240.0.0.0              Private
32.0.0.0              224.0.0.0              Private
64.0.0.0              192.0.0.0              Private
128.0.0.0             128.0.0.0              Private

ここに何も入力しないと、すべてのトラフィックが VPN 経由でルーティングされるという印象を受けました。何かを入力すると、VPN 経由として明示的にマークされたトラフィックのみが VPN 経由でルーティングされ、その他のトラフィックはクライアントが独自のデフォルト接続を使用してアクセスすることになります。このため、13.xxx 以外のすべてのサブネットをプライベートとして明示的にマークする必要がありました。

私の推測では、ローカル サブネットの外部から VPN サーバーにアクセスできないため、メイン DNS サーバーに接続できず、大規模なネットワークではアクセスできないということです。internal.company.com などのホスト名を入力しても、解決のためにクライアントに返されないのは、サーバーが IP アドレスがパブリック範囲に含まれることを認識していないためだと思います。DNS サーバーにアクセスしてそのホスト名について何かを調べることができないのではないかと思います (おそらく ping テストを行う必要がありますが、現在はアクセスできません)。

これを解決するためのすべての選択肢は、結局は同じタイプの解決策に行き着くように思えます。

サーバーのセカンダリ接続を使用して DNS にアクセスする方法を見つけます。サーバーに認識させるために [何か] を実行できる場合は、ローカル ゲートウェイもチェックする必要があると考えています (サーバー IP == 13.100.100.50、ゲートウェイ IP == 13.100.100.1 とします)。そこから、ゲートウェイ IP は 13.1.1.1 の DNS サーバーを検索し、内部ネットワークに関する情報を提供するように指示します。このパスについては非常に混乱しており、意味をなしているかどうかさえわかりません。

これをクライアント側で実行することも考えましたが、クライアント側の設定ごとに時間がかかるため、それも意味がありません。さらに、サーバー上で解決する方が論理的に思えます。ルーティング テーブルを完全に削除するか、そのままにするかを選択できます。唯一の違いは、内部トラフィックもサーバーを通過することだと思います。おそらくサーバーに不要な負担がかかります。

誰か助けてください。それとも、私の能力を超えているのでしょうか。フォワード プロキシまたは透過プロキシも選択肢の 1 つですが、どちらも設定方法がわかりません。(わかっています。Google は私の友達です。)

答え1

さて、試してみます:

一部のトラフィックだけを通過させる方法がわかりません。あなたの問題は解決できますが、設定を少し変更する必要があります。あなたの Mac には 2 つのネットワーク インターフェイスがあると仮定します。これらを eth0 と eth1 と呼びましょう :-)

eth0 が職場のネットワークに接続されており、内部 (職場のネットワーク) アドレスが 13.1.1.6、サブネットが 255.0.0.0 であると想定します。

また、簡単にするために、eth1 が WiFi X に接続されており、アドレス (eth1 <---> WiFi X ネットワーク) が 192.168.1.10、サブネットが 255.0.0.0 であると仮定します。

私は BSD と Linux に VPN サーバーを設定しましたが、Mac には設定していません。ただし、概念は同じで、オプションがあります。その 1 つを挙げます。

1)Mac のルーティング テーブルに次のエントリがあることを確認します。

$>sudo route add 13.0.0.0/8 eth0

これにより、WiFi X または VPN インターフェイス経由で入ってくる、会社のネットワーク (13 ネットワーク) 宛てのすべてのトラフィックが確実にそこに届くようになります。これがないと、ブリッジを提供する Mac は 2 つのインターフェイス間でトラフィックをルーティングする方法をまったく把握できず、デフォルトでは、デフォルトのインターフェイス (指定した WiFi X) からトラフィックを送信しようとします。

上記の VPN ルーティング テーブルに対して行った操作を元に戻し、まだ存在しない場合はこれを試してください (うまくいけば)。

上記の方法で問題が解決しない場合は、VPN サーバーのルーティング テーブルと IP アドレス リストを更新するか、見つけた修正プログラムで更新してください。これで正しい方向に進むことを願っています。

関連情報