[Network]

IPアドレスの自動設定機能(APIPA)を無効にするには(Windows 98編)

デジタルアドバンテージ
2000/08/23

 APIPA(Automatic Private IP Addressing)とは、PCにIPアドレスを自動で割り当てる機能のことで、Windows OSではWindows 98で初めて実装された(その後に登場したWindows 98 Second EditionやWindows 2000にも、APIPAは標準装備されている)。IPアドレスの自動割り当てといえば、最初に思いつくのはDHCPだが、DHCPサーバを構築/運用しなければならない、という点でやや敷居は高い。それに対してAPIPAは、サーバを必要とせず、簡単に小規模なLANでIPアドレスの自動割り当てを実現できるのが特徴である。APIPAの仕様や動作原理は、Internet Draftとして公開されている文書に記されている。

 Windows 98搭載PCで、APIPAによるIPアドレスの自動割り当てを利用するには、DHCPによる自動割り当てとまったく同じネットワーク設定にしておくだけでよい。DHCPサーバがネットワークに見つからなければ、APIPAにより「169.254.x.x」という特別(*1)なIPアドレスの空間から一意なIPアドレスが選択され、PCに対して自動的に割り当てられる。Windows 98では、初期状態でAPIPAが有効になっている。

*1 「169.254.x.x」というIPアドレスは、LINKLOCALアドレスと呼ばれ、外部と接続されていないローカルな単一のネットワーク セグメントだけで利用できるアドレス空間として定義されている。グローバルIPアドレスともプライベートIPアドレスとも異なる。APIPAには「Private」という単語が含まれるが、実際に使われるのは、いわゆるプライベートIPアドレスではなく、このLINKLOCALアドレスである。

デメリットの目立つAPIPA

 一見すると、DHCPよりAPIPAのほうが、DHCPサーバを運用せずに済む分、管理が簡単に思われる。しかし実際のところ、APIPAにはデメリットが少なからず存在する。

 APIPAによりIPアドレスが自動で割り当てられたPCで、winipcfgというIPアドレス等の詳細な情報を出力するツールを実行すると、以下のように表示される(winipcfgの使い方については、「PC TIPS:IPアドレスの詳細情報を得るには(Windows 9x編)」を参照していただきたい)。

APIPAによるIPアドレスの割り当て状況

 まずを見ると、IPアドレスが169.254.x.xというLINKLOCALアドレス(前述の*1参照)であること、またwinipcfgが「IP 自動設定アドレス」と表示していることから、APIPAによりIPアドレスが割り当てられたことが分かる。次に注目すべきはである。では、デフォルト ゲートウェイのIPアドレスが設定されないため、ルータを超えて通信できない。ほかのサブネットとも通信できないので、たとえ同じネットワーク セグメントに複数のPCが接続されていても、APIPAでIPアドレスが割り当てられたPC同士でしか通信できない。さらに、のようにDNSサーバやWINSサーバなどのIPアドレスも割り当てられないので、こうしたサーバからのサービスは受けられない。

 また、APIPAではグローバルIPアドレスを扱えないため、インターネットに直接公開されるPCのように、グローバルIPアドレスを必要とするPCでは利用できない。そのほか、APIPAによるIPアドレスの自動割り当てには、数十秒という単位で時間がかかるのもデメリットの1つである。

 ネットワーク管理者の視点で考えると、APIPAが有効なPCでは、DHCPによるIPアドレスのリースに失敗しても、一見するとIPアドレスは正しく割り当てられているように見えるので、かえって厄介といえる。

 以上のような理由から、よほど小規模で外部との通信がないLANでもなければ、APIPAは無効にしておくほうが無難だ。

APIPAを無効にする方法

 APIPAを無効にする方法は2つある。1つは、IPアドレスを手動で設定することだ。ただし、これではAPIPAだけではなくDHCPによる自動割り当ても無効になってしまう。DHCPの自動割り当てを利用しつつ、APIPAを無効にするには、Windows 98のレジストリを直接書き替える必要がある。

[注意]

レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ エディタの操作は慎重に行うとともに、あくまで御自分のリスクで操作を行ってください。何らかの障害が発生した場合でも、本PC INSIDER編集部では責任を負いかねます。ご了承ください。

 レジストリを編集するために、まずはレジストリ エディタを起動する。レジストリ エディタは[スタート]−[プログラム]メニューなどには登録されていないので、[スタート]−[ファイル名を指定して実行]を実行し、表示されるダイアログで「regedit」と入力して[OK]ボタンをクリックする。

 APIPAを無効(または有効)にするには、以下に記したキーにて、値を新規に作成する必要がある。

項目 内容
キーの名称 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\VxD\DHCP
値の名前 IPAutoconfigurationEnabled
値の型 DWORD
値のデータ 無効:0、有効:1
レジストリの書き替え内容
デフォルトではこの「IPAutoconfigurationEnabled」という値は存在しないので、新規に作成する必要がある。

 レジストリ エディタの書き替え手順は、以下のとおりである。

レジストリ エディタの書き替え手順
  この「DHCP」キーを開く。 このキーには、DHCPクライアントに関する各種のパラメータが保存されている。
  「IPAutoconfigurationEnabled」という名前でDWORD型の値を作成する。ここでは、データを「0」に設定することで、APIPAを無効にしている。

 このAPIPAの無効/有効については、レジストリの書き替え後、いったんPCを再起動して、その設定を反映させる必要がある。また、この設定はすべてのネットワーク アダプタに影響する。

 上記の手順でAPIPAを無効にしたPCで、DHCPによるIPアドレスの自動割り当てをわざと失敗させたところ、winipcfgは以下のようにIPアドレスの情報を表示した(ここではLAN接続の部分だけを抜き出している)。

DHCPによるIPアドレスの自動割り当てに失敗した例(APIPAは無効)

  を見ると、IPアドレスは割り当てられていないことが分かる。また、この欄の表記は「IPアドレス」となっており、APIPAでIPアドレスが割り当てられたときの「IP 自動設定アドレス」とは異なっている。つまりAPIPAは無効であることが分かる。なおは、DHCPサーバが見つからなかったことを表している。記事の終わり

  関連記事(PC INSIDER内)
IPアドレスの詳細情報を得るには(Windows 9x編)
IPアドレスの自動設定機能(APIPA)を無効にするには(Windows 2000編)
  関連リンク
詳説 TCP/IPプロトコル −− ネットワーク技術詳細講座連載

「PC TIPS」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間