Windows TIPS
[Network]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

高速なネットワーク・インターフェイスを自動的に選択可能にする

―― メトリックを利用したルーティングの制御 ――

解説をスキップして操作方法を読む

デジタルアドバンテージ
2003/05/17
 
対象OS
Windows 2000 Professional
Windows XP Professional
Windows XP Home Edition
Windows 2000 Server
Windows 2000 Advanced Server
無線LANとイーサネットなど、PCに複数のインターフェイスを装備している場合には、常に高速な方を優先して利用できると便利である。
ネットワーク・インターフェイスのメトリック値を設定すると、このような使い分けが可能になる。
ただしイーサネット・ケーブルを抜き差しすると現在通信中のアプリケーションがエラーを起こすので、タイミングには注意が必要である。
 
解説

 最近のノートPCには、標準で10/100BASE-TXイーサネット・インターフェイスが標準搭載されるようになった。これによりノートPCユーザーは、ネットワーク・ケーブルを接続するだけで、ネットワークに参加できる。

 しかしその一方で、安価になった無線LAN製品も広く普及しつつある。ひと昔前、会議に必要な資料は紙に印刷して、それを参加者に配布するのが常だった。しかし最近では、会議室までノートPCを持ち込んで、資料はコンピュータ・ディスプレイで参照するという人も多いようだ。この際、会議室から無線LANのアクセス・ポイントに接続できるようになっていると、あらかじめハードディスクにファイルをコピーしなくても、普段自分のデスクにいるときと同様にして、会議室からファイル・サーバにアクセスして必要なファイルを取り出したり、最寄りのプリンタからドキュメントを印刷してほかのメンバーに配布したりできるようになる(あまり大声ではいえないが、退屈な会議なら、こっそりWebニュースをのぞいたり、メールをチェックしたりもできる)。

 より高速な無線LAN規格も出始めているが、現時点で最も普及している無線LAN技術はIEEE 802.11bだろう。IEEE 802.11bは、2.4GHz帯の無線電波を利用して、最大11Mbit/sの転送レートを実現する無線LAN規格である。ただし11Mbit/sというのはあくまで理論上の最大値で、電波状態などの環境にもよるが、実効レートはおおよそ4〜5Mbit/s程度といったところだ。100BASE-TX(最大100Mbit/s程度)と比較するとかなり遅いが、メールの送受信や一般的なWebページの参照程度なら、これでも問題なく使える。このため人によっては、会議などの移動時だけでなく、自分のデスクにいるときでも、無線LANを使っているというケースもあるようだ。

 しかし、場面によっては、どうしても高速な100BASE-TXを使いたいと思うときがある。最も典型的なケースは、大量のデータをバックアップする場合である。例えばノートPCで電子メールを受信しているなら、定期的に受信メールのバックアップをとりたいと考えるだろう。添付ファイルなどもあるので、受信ボックスはすぐに数百Mbytes級のサイズになってしまう。これを遅い無線LANでバックアップするのは厄介だ。

 10/100BASE-TXインターフェイスが別にあるなら、大量のデータをバックアップするなどの場合だけ、これにケーブルをつないで、高速な100BASE-TXでファイルを転送すればよい。バックアップが完了したら、ケーブルを抜いて、無線LANを使用するいつもの状態に戻る。

 ところでこの際でも、無線LANインターフェイスは有効なまま(接続状態のまま)で操作できると非常に便利である。つまり、100BASE-TXインターフェイスにケーブルが接続されていないときは無線LANを使い、ケーブルを接続すると自動的に100BASE-TX側を(優先して)使い、再度ケーブルを抜くと自動的に無線LANを使うようになるということだ。2つのインターフェイスが利用可能な場合には、高速な方を優先して使わせたいということである。

 Windowsでは、ネットワーク・インターフェイスのメトリック値をうまく設定することでこれが可能になる。

 ここでいうメトリック(metric=「距離」とか「計量」の意味)とは、ネットワーク・インターフェイスのルート(経路)に割り当てられる値で、そのルートを使用する場合の「通信コスト」を表す。具体的には、リンク・スピード(データ転送速度)やホップ数、遅延時間などからそのルートのコストが計測される。メトリック値が小さいルートほど、通信にかかるコストが小さいということを意味している。実際にはTCP/IPのプロトコル・スタックは、ルーティング・テーブル上に利用可能なルートが複数存在する場合には、このメトリックの小さなルート(インターフェイス)を優先的に使用するようになっている。ルーティングとメトリックの関係などについては「TIPS―ルーティング・テーブルを操作する」などを参照していただきたい。

 つまり今回のような場合、100BASE-TXインターフェイスに対して、無線LANインターフェイスよりも小さいメトリック値が割り当てられるようになっていれば、100BASE-TXが使える場合にはそちらを、使えない場合は無線LANを使うようになる。

 現在使用しているインターフェイスのメトリック値を確認するには、コマンドラインから「netstat -r」を実行して、IPのルーティング・テーブルを表示すればよい。Windows 2000で「netstat -r」を実行すると、以下のようになる。一番右端に表示されているのがメトリック値である。この例では、すべてが1になっている。Windows 2000では、手動で設定しないかぎり、インターフェイスのメトリック値としてはすべて1が割り当てられる。

C:\>netstat -r

Route Table
==============================================================
==================
Interface List
0x1 ........................... MS TCP Loopback interface
0x1000005 ...00 80 45 12 0a 89 ...... Intel 8255x-based Integrated Fast Ethernet
===============================================================
=================
===============================================================
=================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
…メトリック
          0.0.0.0          0.0.0.0     192.168.0.56   192.168.0.102       1
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.0.0    255.255.255.0    192.168.0.102   192.168.0.102       1
    192.168.0.102  255.255.255.255        127.0.0.1       127.0.0.1       1
    192.168.0.255  255.255.255.255    192.168.0.102   192.168.0.102       1
        224.0.0.0        224.0.0.0    192.168.0.102   192.168.0.102       1
  255.255.255.255  255.255.255.255    192.168.0.102               2       1
Default Gateway:      192.168.0.56
=============================================================
===================
Persistent Routes:
  None

 これに対しWindows XPでは、各ルートに対して自動的にメトリック値が割り当てられる機能が追加された。具体的には、インターフェイスのリンク・スピード(物理的な通信速度)に応じて、以下のメトリック値が割り当てられる。

リンク・スピード メトリック値
200Mbits/sより高速 10
20Mbits/s超〜200Mbits/s以下 20
4Mbits/s超〜20Mbits/s以下 30
500Kbits/s超〜4Mbits/s以下 40
500Kbits/s以下 50
(内部ループバック) 1
リンク・スピードとメトリック値の関係
Windows XPでは、デフォルトではこのようにネットワーク・インターフェイスのリンク・スピードに応じてメトリック値が決定される。メトリック値が小さい方が優先度が高い(通信コストが少ない)とされる。数値の絶対値にはあまり意味はなく、大小関係だけに基づいて判断される。ただしここでいうリンク・スピードとは、各インターフェイスが本来持っている(はずの)物理的な最高速度のことである。無線LANのように、通信状態によって時々刻々と変わる現在の実効通信速度を反映したものではないし、途中で変動したりもしない。

 つまり100BASE-TXインターフェイスにはメトリック値20が、IEEE 802.11b無線LANインターフェイス(11Mbits/s)にはメトリック値30がそれぞれ自動的に割り当てられることになる。これによりWindows XPでは、この自動メトリック機能により、何の設定を行うことなく、今回の目的を達成できる。Windows XPにIEEE 802.11b無線LANカードと100BASE-TXイーサネットを接続し、netstat -rコマンドを実行すると次のようになった。

C:\>netstat -r

Route Table
====================================================================
============
Interface List
0x1 ........................... MS TCP Loopback interface
0xf0004 ...00 07 40 0f 82 1b ...... BUFFALO WLI-CF-S11G Wireless LAN Adapter
パケット スケジューラ ミニポート
…IEEE 802.11b無線LANインターフェイス
0x120002 ...00 09 6b 8d 0a db ...... Intel(R) PRO/100 VE Network Connection
ケット スケジューラ ミニポート
…100BASE-TXインターフェイス
====================================================================
============
====================================================================
============
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.0.56   192.168.0.104       30
…無線LAN
          0.0.0.0          0.0.0.0     192.168.0.56   192.168.0.119       20
…イーサネット
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.0.0    255.255.255.0    192.168.0.104   192.168.0.104       30
      192.168.0.0    255.255.255.0    192.168.0.119   192.168.0.119       20
    192.168.0.104  255.255.255.255        127.0.0.1       127.0.0.1       30
    192.168.0.119  255.255.255.255        127.0.0.1       127.0.0.1       20
    192.168.0.255  255.255.255.255    192.168.0.104   192.168.0.104       30
    192.168.0.255  255.255.255.255    192.168.0.119   192.168.0.119       20
        224.0.0.0        240.0.0.0    192.168.0.104   192.168.0.104       30
        224.0.0.0        240.0.0.0    192.168.0.119   192.168.0.119       20
  255.255.255.255  255.255.255.255    192.168.0.104   192.168.0.104       1
  255.255.255.255  255.255.255.255    192.168.0.119   192.168.0.119       1
Default Gateway:      192.168.0.56
=====================================================================
============
Persistent Routes:
  None

 デフォルトのルートが2つあるが(いずれも同じゲートウェイを指している)、上側のメトリックが30の方が無線LAN、下側のメトリックが20の方が100BASE-TXのイーサネットである。このようにWindows XPでは、各インターフェイスの持つリンク・スピードに応じて、メトリック値が自動的に変わるようになっている。

 しかし手元で実験したところでは、最大11Mbits/sのIEEE 802.11b無線LANインターフェイスでありながら、メトリック値として100BASE-TXと同じ20が割り当てられる場合があった(詳細は不明だが、より高速な無線LAN規格も存在するので、それらとまとめて同じように扱われているのかもしれない)。このような場合には、インターフェイスのメトリック値をマニュアルで指定すればよい。また前述のとおり、Windows 2000にはメトリックの自動割り当て機能はないが、マニュアルで指定すれば、今回の目的を達成できる。


操作方法

インターフェイスのメトリック値をマニュアル設定する

 ネットワーク・インターフェイスのメトリック値を設定するには、コントロール・パネルの[ネットワーク接続](Windows XPの場合。Windows 2000では[ネットワークとダイヤルアップ接続])でインターフェイスのプロパティ・ダイアログを表示し、コンポーネント一覧から「インターネット プロトコル(TCP/IP)」を選択して[プロパティ]ボタンをクリックし、次に表示される[インターネット プロトコル(TCP/IP)のプロパティ]ダイアログの[全般]タブにある[詳細設定]ボタンをクリックし、次に表示される[TCP/IP 詳細設定]ダイアログの[IP設定]タブを表示する。

[TCP/IP 詳細設定]ダイアログ
画面はWindows XPでのもの。メトリック値をマニュアル設定するには、チェック・ボックスをオフにし、任意の値を入力する。
  マニュアル設定を行うには、このチェック・ボックスをオフにする。すると、下のエディット・コントロールが有効化され、値を入力可能になる。Windows 2000の場合にはこのチェック・ボックスは存在しない。でユーザーが指定しない限り、メトリックは1になる。
  指定したいメトリック値を入力する。

 画面はWindows XPのものである。自動メトリック機能のないWindows 2000では、[インターフェイス メトリック]という名前のエディット・コントロールがあるだけで、チェック・ボックスはない(そしてエディット・コントロールには、デフォルトで「1」が指定されている)。

 今回のケース(100BASE-TXとIEEE 802.11b無線LAN)なら、Windows XPでの自動設定に従って、100BASE-TXには20を、無線LANには30をそれぞれメトリック値として指定すればよいだろう。ただしWindows XPでは、100BASE-TXには自動的に20が割り当てられるので、無線LAN側だけをより大きな値に設定して、優先度を下げればよいはずだ。

 メトリック値を設定したら、それらが有効になっているかどうか、コマンド・プロンプトから「netstat -r」を実行して確認しておこう。

インターフェイスの切り替えにともなう注意点

 以上では、100BASE-TXケーブルの抜き差しによるデフォルト・ルートの変更について解説しているが、このケーブルの抜き差しはいつでも行えるわけではないことに注意していただきたい。その原理を考えると分かるが、これは、100BASE-TXのイーサネット・インターフェイスを有効にしたり、無効にしたりしている。その結果、より優先度の低い無線LAN側のルートが無効になったり、有効になったりして、デフォルト・ルートが切り替わっている。

 無線LANインターフェイスに対して割り当てられたIPアドレスは、システムを起動してから終了するまで(DHCPサーバ側で変更したりしなければ)ずっと同じである。それに対してイーサネット側のIPアドレスは、有効になったり、無効になったりする。もしイーサネット側のIPアドレスを使って動作しているアプリケーションがあると、ケーブルを抜いたとたんにTCPやUDPのソケットが無効化され、上位アプリケーションには通信エラーが伝えられる。例えばメールの送受信処理中やInternet Explorerなどを使ったブラウズの途中でケーブルを抜くと、それらのアプリケーションはエラーを起こし、終了してしまうことになる。ファイルの転送やFTPによる送受信処理などもエラーとなるだろう。

 だが、実際にはWindowsネットワークにおけるファイル・サービスなどは、通信が一時途絶えたとしても、何度か自動的にリトライを行うようになっている(IPアドレスが変わっても問題ない)。またメールを始めとして、Windows上のアプリケーションは、実際に送受信中でなければIPアドレスが変わったりしてもエラーとはならないものが多いし、ユーザーが明示的に再処理(再表示)などの操作を行えば、問題なく処理を継続できる場合も多い。

 このような事情があるため、ネットワーク・ケーブルの抜き差しによるデフォルト・ルートの変更は、まったく問題がないとはいえないが、現実的にはかなりの場面で有効に使えると思われる(特にクライアント用途では)。ネットワークのトラフィックが(明らかに)発生しているときにケーブルを抜き差しするのは問題だが、システムがアイドル状態(外部との通信が行われていない状態)ならば構わないだろう。あえていうならば、システムをサスペンドやリジュームするような感覚で(これらを行う場合は、何も作業をしていないのが普通)、利用するとよいだろう。End of Article

「Windows TIPS」

@IT Special

- PR -

TechTargetジャパン

Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間
ソリューションFLASH