Windowsネットワークに強くなる(第2回)  続き

自分で自動的にIPアドレスを設定するAPIPA
 では,[IPアドレスを自動的に取得する]設定が有効になっているWindows 2000のノート・パソコンを,DHCPサーバーがない場所へ持っていくと,どうして「169.254.81.54」というIPアドレスが割り当てられるのだろう。



△ 図表をクリックすると拡大されます
表1●IPアドレスの設定方法

 実はこれは「自動プライベートIPアドレス指定(Automatic Private IP Addressing: APIPA)」というWindowsの機能が原因だ。マイクロソフトはWindows 98以降にリリースされたOSにこの機能を実装している。[IPアドレスを自動的に取得する]を有効にしていると表1のようにDHCPサーバーがないときにこのAPIPAが動き出す。

 前述のようにDHCPによるIPアドレスなどの自動割り当てには,DHCPサーバーが必要になる。小規模なシステムではそれは面倒だ。そこで,DHCPサーバーがないネットワークでもIPアドレスなどを自動的に割り当てるAPIPAが作られた。コンピュータのTCP/IP設定を[IPアドレスを自動的に取得する]にしておくと,169.254.0.1から169.254.255.255までの範囲にあるIPアドレスを選択して設定する。このIPアドレスは,前回紹介したプライベートIPアドレスとは別に予約されているものである。



△ 図表をクリックすると拡大されます
図4●APIPAによるIPアドレスの決定手順


△ 図表をクリックすると拡大されます
図5●DHCPサーバーがあってもAPIPAがIPアドレスを割り振ってしまう例
図1の営業所のように,DHCPサーバーがないネットワークにつながれたクライアント・パソコンも最初はDHCPサーバーにIPアドレスを要求する。ただし,応答がないと先ほど示した169.254.0.1から169.254.255.255までの範囲にあるIPアドレスをランダムに選択する。そして選んだアドレスでARP(Address Resolve Protocol)要求メッセージをブロードキャストでネットワーク上に送信する。ARPとはIPアドレスからネットワーク・アダプタ固有のMACアドレスを知るプロトコルである。もしARP要求に対して応答があれば,他のコンピュータでそのIPアドレスを使用していることになるので,もう一度ランダムにIPアドレスを選択してARP要求で確認する。こうしてネットワーク上で使用されていないIPアドレスを自分の使うアドレスとして設定する(図4)。

 このAPIPAは,前述のようにDHCPサーバーがない小規模ネットワークを前提に考えられた。そのため,APIPAでは前回説明したデフォルト・ゲートウエイが設定されない。また,ネットワーク同士を接続するルーターでは,APIPAで割り当てられたIPアドレスを持つ通信データを中継しないようになっている。

 図1と似たトラブルは,DHCPサーバーがあってもそれがダウンしたときや,DHCPサーバーに接続したネットワークが断線したときなど,DHCPクライアントがDHCPサーバーにアクセスできないとき常に起こり得る。例えば,クライアントとDHCPサーバーの間にあるハブが故障したときは複数のパソコンがAPIPAでIPアドレスを割り当てるため,APIPAが有効になったパソコン同士では正常に通信ができる(図5)。しかし,IPアドレスやサブネット・マスクなどが通常利用しているものと異なるので社内のサーバーに正常に接続できない。また,ルーターを越えた通信ができないため,インターネットに接続できなくなる。このように,APIPAは便利な仕組みである半面,トラブルの現象を複雑にする場合がある。