本記事は 2013 年 10 月 4 日に公開された記事を本ブログに移行した記事になります。
こんちには。今回は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アドレスのクラス以外のネットワークは既存のネットワーク インターフェースを経由して通信を行うようになります。
関連情報
・インターネット プロトコルのルートの自動メトリック機能の説明
http://support.microsoft.com/kb/299540/ja
・IPv4 ユニキャスト ルーティングのしくみ
http://technet.microsoft.com/ja-jp/library/cc754012(WS.10).aspx
[特記事項]
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。