VPNをつなぎながら社内のLAN環境やインターネットなどにアクセスする方法

VPNで本番環境などにつないでいるとき、社内の共有フォルダやTracサーバなどにアクセスできずに不便だ、という声があります。
この解消方法です。

VPNにつながっている状態で設定すると分かりやすいです(以下の手順はWindowsXP)。

  1. VPN で使用している仮想 LAN カードを特定する

    VPNを使用しているときに右下のタスクトレイで通信中になっているアイコンを見つける)
  2. アイコンを右クリックし、「状態(S)」をクリック
  3. 表示されたダイアログボックスの左下の「プロパティ(P)」をクリック
  4. 表示された LAN カードのダイアログボックスの中ほどで、「インターネット プロトコル (TCP/IP)」を選択して「プロパティ(R)」をクリック
  5. 「インターネット プロトコル (TCP/IP)のプロパティ」ダイアログボックスの「詳細設定(V)」をクリック
  6. 「IP 設定」タブの中ほどの「デフォルトゲートウェイ(E)」から、メトリックが「自動」となっているゲートウェイを選択して「編集(T)」をクリック
  7. 「自動メトリック」のチェックを外し、「5」(1より大きいがそれほど大きくない値)を入力して「OK」をクリック
  8. 今までのダイアログを全て閉じる

変更は以上で完了です。


このメトリックというのは、OSが通信で使用するLANカードの優先順位のようなもので、小さいほど優先順位が高いです。

通常、デフォルトゲートウェイVPNをつながない場合に使用している、仮想ではないLANカード(例:192.168.0.123)からつながるゲートウェイ(例:192.168.0.1など)が使用されます(このメトリック(優先順位)は1です)。

しかし、VPNをつないだ瞬間に、VPNの仮想LANカードからつながるデフォルトゲートウェイ(例:172.21.0.1)が候補として浮上します。
これら2つのゲートウェイに適切にルート探索の優先順位が付けられていれば問題はないのですが、後者のメトリックが自動である場合、優先順位が1となり、結果的に優先順位が既存のLANカードと衝突してしまいます。この場合、後から来たVPNデフォルトゲートウェイが勝ってしまうようで、そのデフォルトゲートウェイからしかルートを探さなくなってしまいます。

結果、192.168.0.1 からしか到達できないホストへのアクセスができなくなっています。

そこで、VPNの仮想LANカードのメトリックを1よりも大きくすることでルート探索を適切に行えるようにします。


これらの現在の優先順位などは、コマンドプロンプトから次を入力すると表示されます。

route print

今まで、いちいち社内環境にアクセスするごとにVPNを切断していた方は能率が上がるかと。