メインコンテンツまでスキップ

VPNに選択的なトラフィックルーティングを設定する

会社のVPNを使用してリモートオフィスに接続していますが、他のローカルの機器を使いたい場合もあります。

設定の説明

ここでは、Macを使用して操作を行います。

問題の説明

例えば、次のような状況です:

  • 会社のVPNネットワーク:192.168.25.XXX
  • 自宅のネットワーク:192.168.1.XXX

この場合、VPNを有効にすると、すべてのトラフィックが会社のネットワークを通過するため、自宅内の同じネットワークの他の機器に接続できなくなります。

さらに、家で面白い動画を見ているときに、知らぬ間に会社のネットワーク管理者も一緒に笑っているかもしれません。(???)

なんかおかしい感じがしませんか?

したがって、私たちがやりたいことは、VPNを会社のネットワークにのみルーティングし、他のトラフィックはローカルにルーティングすることです。

ヒント

ここでは、すでにVPNが設定されており、正常に使用できることを前提に、トラフィックの分割設定のみを行います。

VPNが正常に機能していない場合は、まずVPNの設定が正しいかどうかを確認してください。

問題の解決

最初に、会社の内部ネットワークが何であるかを確認します。例えば:

  • 192.168.25.XXX

この場合、25番のネットワークが使われていることを意味します。次に、以下のコマンドを実行して設定ファイルを開きます:

sudo vim /etc/ppp/ip-up

以下の内容を入力します。必ず自分のネットワークに合わせて変更してください:

警告

ここでの例は、VPNネットワークが192.168.25.XXXであることを前提としています。実際の状況に合わせて変更してください。

#!/bin/sh
/sbin/route add -net 192.168.25.0/24 -interface ppp0

上記のコマンドの簡単な説明:

  1. /sbin/route:これはrouteコマンドのパスで、ネットワークのルーティングテーブルを設定するために使用します。
  2. -net 192.168.25.0/24:このオプションは、ホストルートではなくネットワークルートを指定します。
    • 192.168.25.0/24はネットワークアドレスとサブネットマスクで、192.168.25.0から192.168.25.255までのIPアドレス範囲を示します。
  3. -interface ppp0:このルートがどのネットワークインターフェースを通じてルーティングされるかを指定します。
    • この例ではppp0(ポイントツーポイントプロトコルインターフェース0)です。

このコマンドの機能は、ppp0インターフェースを通じて192.168.25.0/24ネットワークへのルートを追加することです。

システムが192.168.25.0/24ネットワーク内の任意のIPアドレスにアクセスしようとすると、そのトラフィックはppp0インターフェースを経由してルーティングされます。


設定が完了したら、ファイルを保存して終了し、ファイルの権限を設定します:

sudo chmod 755 /etc/ppp/ip-up

それでも問題が解決しない場合

ここまでで、一部の機器がインターネットに接続できない場合がありますので、次のステップに進みます。

MacOSのシステム設定を開き、ネットワーク設定に進みます。以下のように設定します:

vpn-setting

  • ステップ1:システム設定を開き、「ネットワーク」を選択
  • ステップ2:右側の小さな点をクリック
  • ステップ3:「サービス順序の設定」を選択
  • ステップ4:VPNの順序をWi-Fiの後ろにドラッグ

多くの人はVPNを設定した後、VPNのサービス順序を一番上にして、すべてのトラフィックを優先的にVPN経由で送信するように設定します。

そのため、ここではVPNを下にドラッグし、上記のネットワーク設定が有効になるようにします。

これで設定は完了です。VPNを通じて他のトラフィックをルーティングする必要がある場合は、その設定をip-upファイルに追加すれば良いです。

参考資料

  1. shalyf/vpn_route.md
  2. How to selectively route network traffic through VPN on Mac OS X Leopard?