[Network] | |||||||||||
Windows VistaでDHCPサーバからIPアドレスが取得できない不具合を解消する
|
|||||||||||
|
解説 |
Windows XPやWindows 7ではIPアドレスが取得できるのに、Windows Vistaでは取得できないルータやDHCPサーバがある。これは、Windows VistaのDHCP発見パケットのBROADCASTフラグがセットされていることに起因する。
DHCPのBROADCASTフラグとは? |
DHCPは、RFC2321で定義されている、IPアドレス設定を自動化するためのプロトコルである。 DHCPクライアントが、DHCPでIPアドレスを取得するとき、IPアドレスを配布するDHCPサーバを発見するため、ネットワークに対して、DHCP発見(DHCPDISCOVER)パケットをブロードキャストする。DHCPサーバは、その発見パケットに対して、DHCP提供(DHCPOFFER)パケットで応えると、DHCPクライアントがDHCP要求(DHCPREQUEST)パケットをブロードキャストし、サーバがこれに応えて必要な情報(DHCPACKパケット)を提供する。これによりDHCPクライアントは、DHCPサーバからIPアドレスが取得できることになる。 クライアントから送信されるDHCPパケットでBROADCASTフラグがセットされていた場合、DHCPサーバや(DHCPのリレーを行う)ルータは、クライアントに対してブロードキャストで応答を返す。Windows Vista以前のOSではこのフラグは0だったので、ブロードキャストではなく、可能な場合はユニキャスト(特定のコンピュータだけに対する送信)で応答を返していた。これは、IPアドレスなどが確定する前には、ユニキャストのパケットを受け取ることができないようなシステムのために用意されている機能である。 Windows Vistaでは、BROADCASTフラグをセットするようにデフォルト設定を変更したが、DHCPサーバやリレー・エージェントの実装によっては、BROADCATフラグがセットされているパケットを正しく処理できないものがある。そのような環境ではWindows VistaがIPアドレスを取得できないという問題が発生する可能性がある。 Windows 7以降ではBROADCASTフラグに関する扱いが変更され、状況に応じて両方のパケットを順次試行し、応答が得られたフラグ設定を次回以降も使用する、などの変更が行われている。 |
この問題を解消するためには、BROADCASTフラグを正しく処理できるルータやDHCPサーバを導入するか、Windows Vistaのレジストリを編集してBROADCASTフラグの扱いを変更すればよい。BROADCASTフラグを常に0に設定させるという方法もあるが、より柔軟な対応としては、0と1の両方で順次試行させるのがよいだろう。以下ではそのためのレジストリ設定の方法を紹介する。
操作方法 |
BROADCASTフラグの扱いを変更するには、レジストリを編集する方法と、サポート技術情報で提供されている「Fix it」を利用する方法がある(「Fix it」については「Windows TIPS:サポート技術情報にある[Fix it]アイコンとは」参照のこと)。
■レジストリを編集する方法
[注意] |
レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ・エディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。 |
Windows Vistaで、BROADCASTフラグの扱いを変更するには、レジストリ・エディタを起動し、以下のキーに名前「DhcpConnEnableBcastFlagToggle」(DWORD値)を新規作成し、データを「1」にセットする。キーの{GUID}は、ネットワーク・インターフェイスに対応したGUIDになるので、複数のネットワーク・インターフェイスが搭載されている場合は、それぞれに対して設定を行う必要がある。
項目 | 内容 |
キー | HKEY_LOCAL_MACHINEの\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID} |
名前 | DhcpConnDisableBcastFlagToggle |
種類 | REG_DWORD |
データ | 1 |
BROADCASTフラグの設定を変更するレジストリ設定 |
これを1に設定しておくと、まずBROADCASTフラグを無効にしてDHCPパケットを送信し、応答がなければ、次はセットしてDHCPパケットを送信するようになる(トグル機能)。
0に設定しておくと、BROADCASTフラグはデフォルトの設定にしたがってどちらかだけが利用される。BROADCASTフラグのデフォルト値を変更するレジストリもこれとは別に存在するが、さまざまな環境に柔軟に対応するには、このトグル機能を利用するのがよいだろう。
■Fix itを利用する方法
レジストリを編集したくなかったり、設定変更の台数が多かったりする場合は、サポート技術情報のWebページで提供されているFix itを利用するとよい。以下のサポート技術情報のWebページを開き、真ん中付近にある[Fix it]アイコンをクリックすると、「MicrosoftFixit50357.msi」がダウンロードできる。このMSIファイルを実行すると、上記のレジストリ設定が反映され、DhcpConnDisableBcastFlagToggleが1に設定される。
- Windows Vistaで特定のルーターやマイクロソフト製以外の特定のDHCPサーバーからIPアドレスを取得できない(マイクロソフト サポート技術情報)
この記事と関連性の高い別の記事
- 不正なDHCPサーバを見付ける(TIPS)
- DHCPリレー・エージェントを使う(TIPS)
- DHCPサーバのスコープ・オプションを追加定義する(TIPS)
- DHCPサーバを冗長構成で運用する方法(TIPS)
- DHCPのスコープを分割して冗長構成にする(Windows Server 2008 R2編)(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|