このページの本文へ

前へ 1 2 次へ

ネットワークの禁忌に触れる 第7回

Windowsでは複数設定できる理由も知ろう

デフォルトゲートウェイの設定を間違えるとどうなる?

2010年12月21日 09時00分更新

文● NETWORK MAGAZINE

  • この記事をはてなブックマークに追加
  • 本文印刷

デフォルトゲートウェイを間違えてみる

 一般的に、ホストルートやネットワークルートはルーティングテーブルに手動で登録しなければならない。しかし、手動で経路を登録することはまれだ。実際には同一サブネット以外のネットワークに所属するコンピュータにパケットを送信するときは、必ずデフォルトゲートウェイ経由の間接ルーティングになる。「デフォルトゲートウェイを間違って登録すると通信できなくなる」といわれるのはそのためだ。では、実際にデフォルトゲートウェイを間違って登録すると何が起きるのだろうか。実際に試してみよう。

 画面1はIPアドレスを「192.168.0.128」、サブネットマスクを「255.255.255.0」、デフォルトゲートウェイを「192.168.100.1」に設定したコンピュータで、「192.168.1.1」に対するPINGコマンドを実行したところだ。送信元のコンピュータはルーティングテーブルを参照して、宛先が自分とは異なるネットワークにいると判断する。そこでデフォルトゲートウェイを経由した間接ルーティングでPINGのパケットを送信しようとして、デフォルトゲートウェイのIPアドレスである「192. 168.100.1」に対応するMACアドレスをARPで調べる。

画面1 PINGコマンドの実行

 画面2は、PINGコマンドが宛先のMACアドレスを問い合わせるために送信したARPパケットをキャプチャしたときの様子だ。PINGコマンドが表示している「Request timed out.」の表示に対応する4回のARPパケットがあることがわかる。つまり、ARPの問い合わせで失敗したため、PING用のICMPパケットは送信できなかったことになる

画面2●PINGコマンドのキャプチャ。PING用のICMPパケットを送る前のARPで失敗している

 一方、同じ状態でもサブネット内の192.168.0.2に対してはPINGコマンドを実行しても応答が返ってくる。デフォルトゲートウェイを間違って登録して届かなくなるのは、あくまでも異なるサブネットへのパケットなのだ

Windowsには複数のデフォルトゲートウェイ?

 デフォルトゲートウェイは1つだけ登録するのが普通だ。しかし、WindowsのTCP/IP詳細設定では、デフォルトゲートウェイを追加登録できる(画面3)。ルーティングテーブルにホストルートやネットワークルートが存在しないときに使うゲートウェイを複数登録する意味があるのだろうか?

画面3●複数のデフォルトゲートウェイ

 実は、Windowsにはデフォルトゲートウェイが故障したとき、自動的に別のゲートウェイに宛先を切り替える「デッドゲートウェイ検出」という機能がある。デフォルトゲートウェイを複数登録できるようになっているのは、予備のデフォルトゲートウェイを登録するためなのだ。

 PINGコマンドが失敗したときのように、デフォルトゲートウェイ経由でパケットを送信するときは、デフォルトゲートウェイとして登録されているルータのMACアドレスをARPで調べる。このとき、もしARPの問い合わせが返ってこなければ、デフォルトゲートウェイの設定が間違っているか、ルータが故障してしまったと考えられる。これがデッドゲートウェイ検出である。その後、WindowsのTCP/IP機能は、2番目に登録されているゲートウェイを経由してパケットを送信しようする。この方法なら、デフォルトゲートウェイが故障した場合でも、別のルータ経由でサブネット以外のネットワークともやり取りできるわけだ。

 ただし、Windowsのデッドゲートウェイ検出の仕組みは、あらかじめARPエントリに登録したデフォルトゲートウェイのIPアドレスとMACアドレスが存在ないとうまく機能しない場合がある。

 本記事は、ネットワークマガジン2004年12月号の特集を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード