![]() |
![]() |
@IT|@IT自分戦略研究所|@IT情報マネジメント |
|
@IT > Master of IP Network > DHCPの設定は正しいか? |
![]() 連載:ネットワーク・コマンドでトラブル解決(6) DHCP設定は正しいか? 〜DHCP設定の確認と利用〜 加地眞也 2002/2/26
■DHCPと動的自動設定DHCP(Dynamic Host Configuration Protocol)は名前の示すとおり、動的/自動的にホストの設定を行うためのプロトコルだ。主にクライアントのブート時など、自身のIPアドレスを自動設定するために、DHCPサーバから取得する際に用いられる。 DHCPはもともとBOOTP(BOOTstrap Protocol:RFC951)が基になっており、メッセージ構造などはほぼそのままだ。BOOTPでは単にクライアントに使用させたいIPアドレスを通知するだけだったのに対し、DHCPでは拡張部分を利用して、割り当てられたIPアドレスに利用可能期間(リース期間)を設けたり、クライアントに使用させたいDNSサーバやデフォルト・ゲートウェイのIPアドレスといった設定値も自動設定できるよう、汎用的に定義し直している。これらは、RFC2131とRFC2132で規定されている。
DHCPの最も端的なメリットは、クライアント機のネットワーク設定の自動化だ。DHCPサーバで値さえ設定しておけば、後はクライアント自身が必要に応じて自動的に設定値を読み取り設定してくれる。いちいちすべてのクライアントに対して、個々にIPアドレスを割り振ったり管理する必要がなくなる。 Windowsでは、コントロールパネルの「ネットワークとダイヤルアップ接続」プロパティなどの「TCP/IP」設定において、手動でIPアドレスを取得するのではなく、「自動的に取得する」を選択しておくだけだ。または、ipconfigコマンドによって手動で実行することもできる。 管理者は、DHCPサーバにおいて、まず割り当てるIPアドレスの範囲を決定できる。これがIPアドレスのプールだ。この範囲で、DHCPサーバは個々のクライアントにユニークとなるようにIPアドレスを順に割り当ててくれる。この範囲外の割り当ては拒否されるので、限りあるIPアドレスを、実際に使用する分だけ効率的に活用できる。通常、どのホストにどのアドレスが割り当てられるかはサーバが自動的に決定するが、特定のMACアドレスのクライアントに対して特定のIPアドレスを割り当てるよう設定できる場合もある。 また、リース期間を設けることで、定期的にIPアドレスを再割り当てできる。このリース期間を過ぎると、DHCPクライアントは現在割り当てられているIPアドレスを破棄し、再びDHCPサーバに再割り当てを要求する。また、クライアントはリース期間前に利用を終了し、割り当てられたIPアドレスを返却(リリース)することもできる。これらの機能により、常に必要最小限度のIPアドレスでの運用が可能になる。 一般には、このようにIPアドレスの自動「貸し出し」機能としてとらえられるDHCPだが、IPアドレスの取得機能自体はBOOTPですでに対応している機能にすぎない。IPアドレスに限らず、実際のネットワーク設定では、さらにサブネット・マスク・アドレスやデフォルト・ゲートウェイ・アドレス、DNSサーバ・アドレスなどの設定をする必要があるが、それらさまざまな「オプション」の自動設定にも対応しているのが、DHCPの大きな特徴となっている。 ■DHCPメッセージ以下は、DHCPで用いられる「メッセージ」のデータ構造図だ。クライアント〜サーバ間では、こうしたメッセージのやりとりにより、IPアドレスなどのデータがクライアントにより取得される。
DHCPメッセージはUDPによって送信される。ポート番号は、サーバ側は67、クライアント側では68が使用されることになっている。 BOOTPとメッセージ構造は同じだ。クライアントIPアドレスは最終的にクライアントへ割り当てられたIPアドレス、サーバIPアドレスは割り当てたDHCPサーバのアドレスで、BOOTPと共通している。ただし、DHCPではオプション部分にタグ番号で示されるさまざまな種類のデータを設定して、より詳細なオプション・データを通知できる。
実際のDHCPメッセージでのメインの情報となるのがオプション部分だ。これらのオプション・データは、オプション部分に複数設定される「レコード」データだと思えばよい。 タグ「53」のデータは、「DHCPメッセージ・タイプ」と呼ばれる。DHCPにおけるクライアントからサーバへの要求やデータの通知など、DHCPメッセージとしての主要な意味を伝えるのに使用される。次のような種類が定義されている。
サブネット・マスク・アドレス、デフォルト・ゲートウェイ・アドレスなどの設定値はオプションで示される。大変数多く定義されているが、すべてのDHCPクライアントが、これら設定値を完全に解釈して設定できるとは限らない。例えばWindowsのDHCPクライアントでは、サブネット・マスク・アドレス、デフォルト・ゲートウェイ・アドレス、DNSサーバ名、DNSドメイン名のほか、WINSサーバ・アドレス、ノード・タイプなどに限られる。また、これらRFCなどで定義された標準値以外にも、ベンダなどが独自に定義できる「クラス」も表現可能だ。 なお、どのようなオプションやメッセージ種類が定義されているかは、RFC2132またはIANAのサイトにある「DHCP and BOOTP Parameters」で確認することができる。 ■DHCPの処理フロー●リース時
クライアントがサーバに対してIPアドレスなどの取得を行いたい場合には、まずDHCPDISCOVERメッセージをサブネット全体に対して送出する。つまりブロードキャストだ。イーサネット・フレームの送信先MACアドレスは「FF:FF:FF:FF:FF:FF」、IPパケットの送信先IPアドレスは「255.255.255.255」(サブネット・マスクが「255.255.255.0」の場合)となっている。つまり、クライアントはあらかじめどのホストがDHCPサーバなのかさえも知っている必要がない。そのため、ネットワーク全体に対して問い合わせするわけだ。これは、最大限クライアントでの設定変更を省くために有効だ。クライアントも、まだ自身のIPアドレスを持っていないため、送信元IPアドレスは「0.0.0.0」としている。 DHCPサーバがDHCPDISCOVERメッセージを発見すると、次にDHCPOFFERメッセージを返答する。これは、候補とするIPアドレスをクライアントへ通知するメッセージだ。また、DHCPサーバが自身であることを通知するメッセージでもある。このIPアドレスで問題ないとクライアントが判断した場合には、正式な取得要求であるDHCPREQUESTメッセージが送信される。これを受け、サーバはDHCPACKメッセージによってIPアドレスやそのほかオプションを通知、クライアントで設定が行われることになる。 なお、DHCPOFFERメッセージによって受信したIPアドレスが、ほかのホストによってすでに使用されており、それをクライアントが発見した場合などには、DHCPDECLINEメッセージがサーバへ送られ、再度DHCPDISCOVERが行われる。またDHCPREQUESTメッセージ受信後、何らかの問題でそのIPアドレスをリースできないとサーバが判断した場合には(すでにリースされてしまった場合など)、DHCPACKメッセージではなく、DHCPNAKメッセージがクライアントへ通知され、やはり再度DHCPDISCOVERからやり直される。 これらの通信はすべて、ブロードキャストでのみ実行されることに注意しよう。つまり、実際には複数のDHCPサーバがサブネット内に設置されている可能性もある。その場合には、複数のDHCPサーバからDHCPOFFERメッセージが返信されるかもしれない。クライアントはその中から特定のサーバを選択してDHCPREQUESTを行うが、ほかのサーバがすべてそうした通信も把握できるようにするために、通信はすべてブロードキャストでなければならないのだ。また、実際に割り当てられるIPアドレスはサーバの決定次第だが、以前に使用していたIPアドレスがある場合は、DHCPDISCOVERメッセージでそれを要求する場合もある(Rebindの動作)。 ●リース延長
DHCPACKメッセージで通知されるリース期間として、実際のリース期間のほか、Renewing期間、Rebinding期間も通知されることがある。Renewing期間を過ぎると、同じDHCPサーバへリースの延長(Renew)を求めなければならない。またRebinding期間が過ぎると、どのサーバでもいいのでDHCPDISCOVERメッセージで再度IPアドレスの再取得(Rebind)を行わなければならない。リース期間はIPアドレスを使用できる最大期間で、この期間を過ぎると、サーバ側で現在のIPアドレスがほかのクライアントへ再割り当てされるかもしれないので、クライアントがそのIPアドレスを利用し続けてはならない。一般に、次の順番で期間が長くなる。 Renewing期間 < Rebinding期間 < リース期間 リース延長要求は特定のDHCPサーバに対して行われるため、ブロードキャストではなくユニキャストで行われる。延長要求なので、現在使用しているIPアドレスが必ず指定されるが、それ以外はリース時と同様の動作だ。これは、Windowsのipconfigコマンドなど、ユーザーが手動でRenewingを行うことも可能だ。 ●リリース
DHCPクライアントからIPアドレスのリリース(返却/解放)が行われると、サーバはリリースされたIPアドレスを再びプールして、ほかのクライアントからの要求に再利用できるようになる。リリースでは、単にクライアントからサーバへ通知すれば処理は終了だ。 ●追加設定の問い合わせ
|
![]() |
図6 DHCPリレー・エージェント |
DHCPリレー・エージェントはサブネット内のDHCPメッセージを発見すると、自身の把握しているほかのサブネットのDHCPサーバへメッセージを転送するとともに、クライアントとの通信を中継する。例えば、ダイヤルアップ接続してきたクライアントとDHCPサーバを仲介する、などの利用が行われる。つまり、DHCPクライアントが接続されるサブネットでは、DHCPサーバかDHCPリレー・エージェントを配置すればよい。
ルータなどでサポートしている例もあるほか、Windows 2000では「ルーティングとリモートアクセス」サービス、LinuxではdhcrelayコマンドなどでDHCPリレー・エージェントを構成できる。
●リース期間の設定に注意
多くのWindowsクライアントでもそうだが、DHCPクライアントとして構成されたホストが、シャット・ダウン時に必ずしもIPアドレスをリリースするとは限らない点に注意しよう。ほとんどの場合、リース期間が訪れるまではリリースせず、起動時にリース期間を過ぎていたらリース延長要求を行うだけだ。リリースという行為自体、あまり頻繁には行われない。
例えば、モバイルで使用しているクライアントが多い場合、実際に使用していないクライアントが多いにもかかわらず、ほとんどのIPアドレスがリースされっ放しで、IPアドレスが足りなくなってしまうことがある。これは、リリースが行われずにネットワークから離れるホストが多い場合によく見受けられる現象だ。十分なIPアドレスが確保できている場合には問題ないが、少ないIPアドレスを順に使い回すつもりだと、予想に反して慌ててしまうこともある。
こうした場合には、リース期間を見直して短くしてみよう。通常、リース期間はデフォルト値だと1週間程度となっているはずだが、これを1日〜数時間としてみる。こうすることで、サーバでプールに戻されるIPアドレスの割合が上がり、効率的な割り当ても可能になる。あまり短すぎても、DHCPアクセスが頻繁に起こる結果となるだけなので、このときは適度な期間を見つけ出すしかない。
関連ネットワーク・コマンド/ツール | |
ipconfig 〜Windowsのネットワーク設定を確認する |
|
![]() |
「Master of IP Network総合インデックス」 |
本企画では、各種コマンド/ツール紹介やそれらを活用したTipsを順次追加、各種索引を用意して、読者の方々に手軽にご利用いただける、便利なリソース集としてアップデートしていく予定です。ぜひご期待ください。
![]() |
|
![]() |
7/16無料セミナー in丸の内 ◆プロジェクトの度重なる仕様 変更に柔軟に対応する方法
目指す第二新卒を期間限定募集 ------------------------- 【無料】あなたに合った 最新の仕事情報をメール配信
プロフェッショナル編 ◆UMLモデリングを 業界第一人者が伝授!
開発技術書プレゼント
真のリアルタイムOSに ◆もっと上をめざす 開発者のためのギルド ◆check!あなたのPC 本当はもっと速い! ◆ソフトウェア開発者へ贈る セキュアなコードへの第一歩 ◆顧客に提案ができる自立したエ ンジニアになるには? ◆持ち込みPCなどによる脅威と クライアント・セキュリティ ◆24時間365日無料サポート レンタルサーバの有力候補 ◆SPSS Data Mining Day 2004 詳細なイベントレポート公開 ◆手軽に使えるASP型VPN 「GMOどこでもLAN」登場! ◆オブジェクト指向と業務コン サルのその先にある技術とは? ◆組み込み開発の常識を変える 「intent」の衝撃!全容紹介
|
|
|||||||||
@IT [FYI] 注目記事 ![]() ![]() ![]()
|
Master of IP Networkフォーラムスポンサー |
Copyright(c) 2000-2004 atmarkIT 著作権はアットマーク・アイティまたはその記事の筆者に属します @ITに掲載されている記事や画像などの無断転載を禁止します 「アットマーク・アイティ」「@IT」「@IT自分戦略研究所」「@ITハイブックス」は、株式会社アットマーク・アイティの登録商標です 弊社へのご連絡は「アットマーク・アイティへのお問い合わせ」をご覧ください |