web-dev-qa-db-ja.com

VPN接続で特定のIP範囲のみをルーティングする

FortiClientを使用して、クライアントのVPNの1つに接続しています。残念ながら、FortiClientはルーティングしていますデフォルトではVPN経由のすべてのトラフィック

Linuxの場合、それを回避する方法を見つけました。 VPNに接続した後、次のコマンドを実行します。

Sudo route del default ppp0
Sudo route add -net 172.20.0.0 netmask 255.255.0.0 dev ppp0

そして今、172.20.x.xで始まるアドレスだけがVPN接続を介して解決されます。

現在、私はFortiClient 5.4Mac OS X 10.11.6を使用しており、Mac OS Xで機能するように上記を作り直そうとしています。基本的に、最初のステップでも問題があります。私が試してみました:

Sudo route delete -net default -ifp ppp0

しかし、ルーティングはまだ期待どおりに機能しません。 VPNの背後にインターネット接続がないため、簡単にテストできます-Webサイトを閲覧/ pingできません:-)。

私は何が間違っているのですか?手伝ってくれてありがとう!

4
Atais

私は この質問 を使って助けてくれましたが、追加のコマンドが1つ必要であることがわかりました。

基本的に、Mac OS X 10.11.6の実用的なソリューションは次のとおりです。

Sudo route delete -net default -interface ppp0
Sudo route add -net 0.0.0.0 -interface en0
Sudo route add -net 172.20.0.0 -netmask 255.255.0.0 -interface ppp0

これは基本的に次のことを意味します。

  1. FortiClientによって設定されたインターフェースppp0のデフォルトルートを削除します
  2. デフォルトインターフェイスのすべてのIPにデフォルトルートを追加します(私にとってはen0
  3. 特定のIP範囲をppp0(FortiClient)インターフェースを介してルーティングします。

質問で述べたように、Linuxと同等のものは次のとおりです。

Sudo route del default ppp0
Sudo route add -net 172.20.0.0 netmask 255.255.0.0 dev ppp0

したがって、実際にはステップ2をスキップします。

結局、それほど難しくはありません。

4
Atais