[Network]

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

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

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

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

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

デメリットの目立つAPIPA

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

 APIPAによりIPアドレスが自動で割り当てられたPCで、ipconfig /allを実行した結果から、以下のようにLAN接続の部分を抜き出してみた(ipconfigコマンドの使い方については、「PC TIPS:IPアドレスの詳細情報を得るには(Windows NT 4.0/2000編)」を参照していただきたい)。

Ethernet adapter ローカル エリア接続:

Connection-specific DNS Suffix. . :
Description . . . . . . . . . . . : Intel(R) PRO/100+
                   Management Adapter
Physical Address. . . . . . . . . : 00-90-27-D0-F2-E2
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Autoconfiguration IP Address. . . : 169.254.252.219
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :         
DNS Servers . . . . . . . . . . . :         

 まずを見ると、IPアドレスが169.254.x.xというLINKLOCALアドレス(前述の*1参照)であること、またipconfigが「Autoconfiguration IP Address」と表示していることから、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 2000のレジストリを直接書き替える必要がある。

[注意]

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

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

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

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

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

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

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

 注意が必要なのは、たとえ上記の書き替えによりAPIPAを無効にしても、ipconfig /allで表示される「Autoconfiguration Enabled」の内容は「Yes」のままであることだ。これはipconfigコマンドの仕様のようだ。

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

Ethernet adapter ローカル エリア接続:

Connection-specific DNS Suffix. . :
Description . . . . . . . . . . . : Intel(R) PRO/100+
                   Management Adapter
Physical Address. . . . . . . . . : 00-90-27-D0-F2-E2
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes       
Autoconfiguration IP Address. . . : 0.0.0.0     
Subnet Mask . . . . . . . . . . . : 0.0.0.0
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . : 255.255.255.255 
DNS Servers . . . . . . . . . . . :

 によればAPIPAは有効に見えるが、のとおりIPアドレスは割り当てられていない。つまりAPIPAは無効になっていることが分かる。なおは、DHCPサーバが見つからなかったことを表している。記事の終わり

  関連記事(PC INSIDER内)
IPアドレスの詳細情報を得るには(Windows NT 4.0/2000編)
IPアドレスの自動設定機能(APIPA)を無効にするには(Windows 98編)
  関連リンク
詳説 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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

System Insider 記事ランキング

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