DHCP
Dynamic Host Configuration Protocolとは、コンピュータがネットワーク接続する際に必要な情報を自動的に割り当てるプロトコルのことをいいます。この項目においては IPv4 のための DHCP である DHCPv4 を中心として説明し、最後に IPv6 のための DHCP である DHCPv6 について補足します。DHCP は BOOTP の上位互換であり、メッセージ構造などは変わっていません。DHCP では、BOOTP に比べて自動設定できる情報が増え、より使いやすくなっています。身近なものでは、ケーブルテレビや公衆無線LAN等でインターネットサービスプロバイダ (ISP) に接続する場合なども、DHCPを利用してIPアドレスを始めとするネットワーク設定を自動的に行うのが一般的です。一方、ADSLやFTTHでは、PPPoEにより設定を行うのが一般的だが、LAN型のネットワーク構成をとりDHCPを用いているISPも一部に存在します。なお、ダイアルアップ接続におけるIPアドレス自動付与はPPPによるもので、DHCPとは異なる技術です。
自動設定できる情報の例
DHCP を使うことによって、つぎのような情報を自動設定することができる。いずれも、クライアントとサーバの双方が対応している必要があります。■ホスト名
■IPアドレス・サブネットマスク
■デフォルトルート(ゲートウェイ)
■DNSサーバ・DNSドメイン名
■NISサーバ・NISドメイン名
■プリンタサーバ
■NTPサーバ
DHCPの原理について
DHCPサーバ側で、あらかじめDHCPクライアント用にIPアドレスをいくつか用意しておき(アドレスプール)、DHCPクライアントの要求に応じて、この中から一つのアドレスを割り当てます(リースと呼ばれる)。DHCPクライアント(ノートパソコンなど)が物理的にネットワークへ接続されると、宛先IPアドレスが255.255.255.255のブロードキャストのUDPパケットを送出します。このパケットを受信したDHCPサーバは、前述のプールからリースアドレスを選択し、クライアントのMACアドレス向けに返信します。と同時に、リース済みのIPアドレスとリース先のMACアドレスのテーブルを作成管理します。これにより、多数のクライアントをネットワークに接続する際、クライアントごとにネットワーク設定を手動で行う必要がなくなり、また、ノートPCなどを複数の場所でネットワークに接続する場合にも、ネットワーク設定を手動で切り替える必要がなくなるため、手間を削減できるメリットがあります。問題点としては、DHCPサーバの設置が容易なため、混乱が起きやすいです。例としてはコンシューマ用のブロードバンドルータをDHCPサーバ機能が有効なまま、既存のDHCPネットワークに接続してしまうと、DHCPクライアントが間違ったアドレスを取得してしまう問題が起きます。フリーソフトのDHCPサーバアプリケーションを実行することも同様です。また、許可されていないPCをDHCPネットワークで安易に使用されないようにする運用が、セキュリティ上必要になってきます。ルータやアプリケーションは、動作デフォルトを適切にすることにより、ある程度の影響を回避することはできますが、検疫ネットワークの導入や、L2スイッチでのフィルタリングが有効な対策手段となっています。逆に考えると、検疫ネットワークの導入に伴って、DHCPサーバ設置数が増えているのが現状です。
サーバの実装
DHCPサーバが実装されている環境としては、大きく分けて以下の三種類があります。
■UNIX系環境
■Windows系環境
■ルータ内実装
UNIX系環境
もっとも初期の頃から存在しているサーバ実装であり、ISC版とWIDE版の2種類がよく知られていますが、WIDE版DHCPサーバは現在開発が終了しています。Windows系環境
Windows NT 4 Server以降、MicrosoftはサーバOSに標準でDHCPサーバを添付しており、現行のWindows Server 2003でも標準でDHCPサーバが付属しています。Windows 2000 Server以降のDHCPサーバでは、Active Directory環境においてはインストール後にドメイン管理者の「承認」を行わないと起動できないという特徴を持っています(非Active Directory環境下ではこの制限はない)。このほかに、第三者が開発した Windows 95/98系環境で動作する(Windows 2000等でも動作する)フリーソフトのDHCPサーバも存在します。ルータ内実装
2000年頃から増加してきた形態で、ルータ内部にDHCPサーバ機能を組み込んだものです。特に、家庭向けのルータ(いわゆる「ブロードバンドルータ」)では必ずといってよいほど実装されており、現在家庭内で利用されているDHCPサーバでもっとも一般的なものと思われます。クライアントの実装
Windows 9x・Windows NT 4.x・Mac OSなどでDHCPのクライアントモジュールが標準添付されるようになり、広く利用されるようになりました。初期のMac OS 9においては、DHCPの仕様の解釈の違いから、うまく通信できない場合があり、フリーズしたかのような症状になるという問題が発生しました。この問題は、のちにバージョンアップで解決されました。DHCP Relay Agent
DHCPはDHCPサーバの検索にブロードキャストを使用する関係上、通常はクライアントとサーバが同一ブロードキャスト・ドメイン上にないと正常に動作しません。しかしながら、企業や大学など比較的大規模なネットワークでは、サーバを1カ所に集中させたい等の理由でDHCPクライアントとサーバとが全く異なるネットワーク上に設置されることがあります。このような場合に使用されるのがDHCP Relay Agent です。DHCP Relay Agent はサーバまたはルータ(L3スイッチ)上にBootp relay, IP helper, DHCP relay などの呼称で実装されています。AgentがDHCPクライアントからのブロードキャスト(DHCP Request)を受信すると、宛先IPアドレスを設定されているDHCPサーバのアドレスに変換し、送信元を自己のLAN側(クライアントと同一サブネット)のIPアドレスに変換して転送します。また、リクエストデータ内に自己IPアドレスを書き込みます。(ここで、注目したいのは、宛先IP/送信元IP/データを書き換えるという荒業をエレガントに行っていることです。)DHCPサーバは、転送されたパケットを確認し、データ内に書き込まれたAgentのIPアドレスにより割り当てるべきネットワークのアドレスを決定します。また、データ内のクライアントのMACアドレスを読んで、リーステーブルを更新します。リースパケットは、パケットの送信元である、Agentに返信されます。リースパケットを受信したAgentは、宛先IPを0.0.0.0に変換し、リクエストクライアントのMACアドレスに向けたフレームにカプセリングして送出します。DHCP Relay Agentを利用する際の注意点として、以下の2点があります。
■DHCPサーバとDHCP Relay Agentとは同一のサーバもしくはルータ内に同居することは出来ない。
■同一ブロードキャストドメイン内に複数のサブネットが存在する場合、DHCP Relay Agentを経由すると、DHCP RelayAgentのIPアドレスによってDHCPサーバがリースするIPアドレスの範囲が決定される。
割当の種類
IPアドレスの割り当て方法には大きく分けて動的な割り当てと、静的な割り当ての2種類があります。一般的なルータなどに内蔵されているDHCPサーバ機能では、動的割り当てに設定されているものが多く、リース時間は24~48時間程度が多いです。(リース時間は10分程度~無制限まで変更可能)MACアドレスを元にした静的割り当てのできるものは少ないです。