リモートアクセス利用時におけるメトリックの変動について

こんちには。今回はWindows 7 でのリモートアクセス時におけるメトリックの変動についてご紹介します。

 

"メトリック"は、ネットワークのパケットを送るルートが複数ある場合に、どのルートに送るかを決める際に利用される値です。この値が最も小さいルートが選択されることになります。

メトリックの値は、インターフェイス(インタフェースメトリック)とルート(ルートメトリック)にそれぞれ割り当てられており、この2つの値の和が利用されます。

Windows 7 の既定の設定においては、リモートアクセス ( ダイヤルアップ, VPN 接続 ) による接続が行われた場合、ここで接続されたリモートネットワークを優先的に利用するように、接続するより前に存在するインターフェースのインターフェースメトリックの値を 約 4000 増加させています。

この結果接続前から存在するインターフェース上のルートの合計のメトリックが増加します。その上で、この接続によるリモートネットワークを経由するようにリモートネットワークの接続に対し、低い値でインターフェースメトリックが設定され、そのインターフェース上に既定のルート (0.0.0.0/0) を追加しています。

 

インターフェイスメトリックの値は netsh コマンドで取得することができます。

 netsh interface ipv4 show interface

 Metの項目がメトリックス値です。以下の図ではローカルエリア接続(LAN)のみの状態で値を参照し (a)、その後ダイヤルアップを行い再度値を参照したもの(b)です。ローカルエリア接続のインタフェースメトリックスの値が 20 から4245 に増加していることがわかります。 

  •  ダイヤルアップ接続前(a)

   

  • ダイヤルアップ接続後 (b)

  

  • ダイヤルアップ接続後(b) GUIで参照した場合 

  [インターネット プロトコル バージョン 4 (TCP/IPv4)]の[詳細設定]を表示します。接続前は、自動メトリックとして設定してある場合でも、システムによる値の変更により明示的に 4245が設定されています。 

  

 

スプリットトンネル設定

上記で記載しました Windows 7 の既定の動作を変更しリモートアクセス接続後も、既存の既定のルートを利用するようメトリックの変更を行わないように設定(スプリットトンネル設定)を行うことができます。

具体的な手順は以下の通りとなります。

  1. 該当の ダイヤルアップ接続のダイヤルから[プロパティ]をクリックします。
  2. [ネットワーク] タブを選択します。
  3. [インターネット プロトコル バージョン 4 (TCP/IPv4)]を選択し、[プロパティ] をクリックします。
  4. [詳細設定] をクリックします。
  5. [IP 設定] タブにて [リモート ネットワークでデフォルト ゲートウェイを使う] のチェックを外します。
  6. [OK] を 3 回クリックし、プロパティ ダイアログを閉じます。

この設定を行うことで、既存のルートのインターフェースメトリックを増加させる動作と、ダイヤルアップ 接続のリモートネットワークインタフェースに既定のルートを追加する動作を行わないようになります。

ダイヤルアップ接続で付与される仮想 IPアドレスのクラス以外のネットワークは既存のネットワーク インターフェースを経由して通信を行うようになります。

 

関連情報

  • インターネット プロトコルのルートの自動メトリック機能の説明

   <https://support.microsoft.com/kb/299540/ja>

  • IPv4 ユニキャスト ルーティングのしくみ

   <https://technet.microsoft.com/ja-jp/library/cc754012(WS.10).aspx>

 

 コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。