デフォルトゲートウェイを間違えてみる
一般的に、ホストルートやネットワークルートはルーティングテーブルに手動で登録しなければならない。しかし、手動で経路を登録することはまれだ。実際には同一サブネット以外のネットワークに所属するコンピュータにパケットを送信するときは、必ずデフォルトゲートウェイ経由の間接ルーティングになる。「デフォルトゲートウェイを間違って登録すると通信できなくなる」といわれるのはそのためだ。では、実際にデフォルトゲートウェイを間違って登録すると何が起きるのだろうか。実際に試してみよう。
画面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で調べる。
画面2は、PINGコマンドが宛先のMACアドレスを問い合わせるために送信したARPパケットをキャプチャしたときの様子だ。PINGコマンドが表示している「Request timed out.」の表示に対応する4回のARPパケットがあることがわかる。つまり、ARPの問い合わせで失敗したため、PING用のICMPパケットは送信できなかったことになる。
一方、同じ状態でもサブネット内の192.168.0.2に対してはPINGコマンドを実行しても応答が返ってくる。デフォルトゲートウェイを間違って登録して届かなくなるのは、あくまでも異なるサブネットへのパケットなのだ。
Windowsには複数のデフォルトゲートウェイ?
デフォルトゲートウェイは1つだけ登録するのが普通だ。しかし、WindowsのTCP/IP詳細設定では、デフォルトゲートウェイを追加登録できる(画面3)。ルーティングテーブルにホストルートやネットワークルートが存在しないときに使うゲートウェイを複数登録する意味があるのだろうか?
実は、Windowsにはデフォルトゲートウェイが故障したとき、自動的に別のゲートウェイに宛先を切り替える「デッドゲートウェイ検出」という機能がある。デフォルトゲートウェイを複数登録できるようになっているのは、予備のデフォルトゲートウェイを登録するためなのだ。
PINGコマンドが失敗したときのように、デフォルトゲートウェイ経由でパケットを送信するときは、デフォルトゲートウェイとして登録されているルータのMACアドレスをARPで調べる。このとき、もしARPの問い合わせが返ってこなければ、デフォルトゲートウェイの設定が間違っているか、ルータが故障してしまったと考えられる。これがデッドゲートウェイ検出である。その後、WindowsのTCP/IP機能は、2番目に登録されているゲートウェイを経由してパケットを送信しようする。この方法なら、デフォルトゲートウェイが故障した場合でも、別のルータ経由でサブネット以外のネットワークともやり取りできるわけだ。
ただし、Windowsのデッドゲートウェイ検出の仕組みは、あらかじめARPエントリに登録したデフォルトゲートウェイのIPアドレスとMACアドレスが存在ないとうまく機能しない場合がある。
本記事は、ネットワークマガジン2004年12月号の特集を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。 |
この連載の記事
-
第10回
TECH
スパムに返事をしてはいけないのは本当か? -
第9回
ネットワーク
DHCPサーバーを勝手に立てるとどうなるの? -
第8回
ネットワーク
光ファイバは曲げるとどうなる? -
第6回
ネットワーク
「サブネットマスクが正しくないと通信できない」は本当か? -
第5回
ネットワーク
LAN内のパソコンのIPアドレスが重なるとどうなる? -
第4回
ネットワーク
11gと11bを同じチャネルで使うと本当に干渉するのか -
第3回
ネットワーク
ADSLは本当にラジオや電子レンジの干渉を受けるのか -
第2回
ネットワーク
2台のスイッチを2本のケーブルでつなぐと何が起こる? -
第1回
ネットワーク
古いLANケーブルでギガビットEthernetは使えるか -
TECH
ネットワークの禁忌に触れる<目次> - この連載の一覧へ