Dynamic Host Configuration Protocol
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アプリケーション層 |
---|
DNS, ENRP, FTP, HTTP IMAP, IRC, NNTP, POP3 SIP, rlogin, RTP, SMTP SNMP, SSH, SSL, TELNET CMIP |
トランスポート層 |
DCCP, IL, RSVP, RUDP SCTP, TCP, UDP |
ネットワーク層 |
ARP, BGP, IP(IPv4,IPv6) ICMP, IGMP, IGP, RARP |
データリンク層 |
ATM, DTM, FDDI, PPP SLIP, SMDS, イーサネット Wi-Fi, トークンリング フレームリレー |
Dynamic Host Configuration Protocol(ダイナミック ホスト コンフィギュレーション プロトコル、DHCP)とは、コンピュータがネットワーク接続する際に必要な情報を自動的に割り当てるプロトコルのこと。
BOOTPの上位互換で、メッセージ構造などは変わっていない。DHCPでは、BOOTPに比べて自動設定できる情報が増え、より使いやすくなっている。
身近なものでは、ケーブルテレビやホットスポット等でインターネットサービスプロバイダ (ISP) に接続する場合なども、DHCPを利用してIPアドレスを始めとするネットワーク設定を自動的に行うのが一般的である。 一方、ADSLやFTTHでは、PPPoEにより設定を行うのが一般的だが、LAN型のネットワーク構成をとりDHCPを用いているISPも一部に存在する。
目次 |
[編集] 自動設定できる情報の例
[編集] 原理
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系環境
もっとも初期の頃から存在しているサーバ実装であり、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 Relay AgentのIPアドレスによってDHCPサーバがリースするIPアドレスの範囲が決定される。
[編集] 割り当ての種類
IPアドレスの割り当て方法には大きく分けて動的な割り当てと、静的な割り当ての2種類がある。
一般的なルータなどに内蔵されているDHCPサーバ機能では、動的割り当てに設定されているものが多く、リース時間は24~48時間程度が多い。(リース時間は10分程度~無制限まで変更可能)MACアドレスを元にした静的割り当てのできるものは少ない。
[編集] 動的割り当て
クライアントに対し、有効期限つきでIPアドレスを割り当てる(リースする)方法。クライアントがネットワークから離れ、アドレスの有効期限が来たら回収して再利用する。もっとも一般的な利用方法であるが、クライアントの種類(ノートPC、デスクトップ)と数、割り当て可能なIPアドレスの総数によって適切な有効期間は異なってくる。
短くするとIPアドレスを効率よく使えるが、ネットワーク上に頻繁にDHCPのプロトコルが流れることになる。長くするとPCは安定してIPアドレスを保持できるが、IPアドレスの利用効率は悪くなる。一般に、ノートPCが多くてIPアドレスを一時的にしか使用しないネットワークの場合、IPアドレスは数十分~1日程度、デスクトップPCが多く、IPアドレスも十分に足りている場合は一週間以上とするケースが多く見受けられる。
有効期間を無期限とすることも可能だが、この場合はリースしたアドレスが回収されないので、時々使用していないIPアドレスを手動で開放する必要がある。
なお、同一ネットワーク(ブロードキャスト・ドメイン)内のプールIPに対して、有効期限を複数種類設定することは出来ない。
[編集] 静的割り当て
事前に管理者が決めておいたIPアドレスを クライアントに割り当てる方法。クライアントは、イーサネットカードのMACアドレスで識別する。固定したIPアドレスが必要となる各種サーバに適している。
[編集] DHCPv6
IPv6環境でもDHCPが利用できるようにするための規約がRFC 3315で定められている。
IPv6ではIPアドレスとネットマスクの情報をルータから自動取得することが出来るが、DNSサーバやNTPサーバなどほかの情報も自動取得するためにはDHCPが必要になる。
[編集] 関連RFC
- RFC 951 - BOOTSTRAP PROTOCOL (BOOTP)
- RFC 1542 - Clarifications and Extensions for the Bootstrap Protocol
- RFC 2131 - Dynamic Host Configuration Protocol
- RFC 2132 - DHCP Options and BOOTP Vendor Extensions
- RFC 2241 - DHCP Options for Novell Directory Services
- RFC 3315 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)