Dynamic Host Configuration Protocol

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
TCP/IP群
アプリケーション層

BGP / DHCP / DNS / FTP / HTTP / IMAP / IRC / LDAP / MGCP / NNTP / NTP / POP / RIP / RPC / RTP / SIP / SMTP / SNMP / SSH / Telnet / TFTP / TLS/SSL / XMPP

カテゴリ
トランスポート層

TCP / UDP / DCCP / SCTP / RSVP / ECN

カテゴリ
ネットワーク層

IP (IPv4, IPv6) / ICMP / ICMPv6 / IGMP / IPsec

カテゴリ
リンク層

ARP/InARP / NDP / OSPF / トンネリング (L2TP) / PPP / MAC (イーサネット, IEEE 802.11, DSL, ISDN, FDDI)

カテゴリ

Dynamic Host Configuration Protocol(ダイナミック ホスト コンフィギュレーション プロトコル、DHCP)とは、コンピュータネットワーク接続する際に必要な情報を自動的に割り当てるプロトコルのことをいう。

この項目においては IPv4 のための DHCP である DHCPv4 を中心として説明し、最後に IPv6 のための DHCP である DHCPv6 について補足する。DHCP は BOOTP上位互換であり、メッセージ構造などは変わっていない。DHCP では、BOOTP に比べて自動設定できる情報が増え、より使いやすくなっている。

身近なものでは、ケーブルテレビ公衆無線LAN等でインターネットサービスプロバイダ (ISP) に接続する場合なども、DHCPを利用してIPアドレスを始めとするネットワーク設定を自動的に行うのが一般的である。 一方、ADSLFTTHでは、PPPoEにより設定を行うのが一般的だが、LAN型のネットワーク構成をとりDHCPを用いているISPも一部に存在する。

なお、ダイアルアップ接続におけるIPアドレス自動付与はPPPによるもので、DHCPとは異なる技術である。

自動設定できる情報の例[編集]

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系環境[編集]

もっとも初期の頃から存在しているサーバ実装であり、ISC版とWIDE版の2種類がよく知られているが、WIDE版DHCPサーバは現在開発が終了している。

Windows系環境[編集]

Windows NT 4 Server以降、MicrosoftはサーバOSに標準でDHCPサーバを添付しており、現行のWindows Server 2008 R2でも標準でDHCPサーバが付属している。

Windows 2000 Server以降のDHCPサーバでは、Active Directory環境においてはインストール後にドメイン管理者の「承認」を行わないと起動できないという特徴を持つ(非Active Directory環境下ではこの制限はない)。

このほかに、第三者が開発した Windows 95/98系環境で動作する(Windows 2000等でも動作する)フリーソフトのDHCPサーバも存在する。

ルータ内実装[編集]

2000年頃から増加してきた形態で、ルータ内部にDHCPサーバ機能を組み込んだものである。特に、家庭向けのルータ(いわゆる「ブロードバンドルータ」)では必ずといってよいほど実装されており、現在家庭内で利用されているDHCPサーバでもっとも一般的なものと思われる。

クライアントの実装[編集]

Windows 9xWindows NT 4.xMac 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のプロトコルが流れることになる。長くするとクライアントは安定してIPアドレスを保持できるが、使用されていないにもかかわらず割り当てできないIPアドレスが多くなる。一般に、ノートPCが多くてIPアドレスを一時的にしか使用しないネットワークの場合は数十分~1日程度、デスクトップPCが多くIPアドレスも十分に足りている場合は一週間以上とすればいいだろう。

有効期間を無期限とすることも可能だが、この場合はリースしたアドレスが回収されないので、時々使用していないIPアドレスを手動で開放する必要がある。

なお、同一ブロードキャストネットワーク内のIPアドレスに対して、複数種類の有効期限を指定できないようなサーバ実装が多い。

静的割り当て[編集]

事前に管理者が決めておいたIPアドレスを クライアントに割り当てる方法。クライアントは、イーサネットカードのMACアドレスで識別する。固定したIPアドレスが必要となる各種サーバに適している。

DHCPv6[編集]

IPv6 環境のための DHCP の仕様 DHCPv6 が RFC 3315 で定められている。DHCPv6 は DHCPv4 とは互換性がないが、そのかわり IPv6 だけでなく IPv4 のアドレスを割り当てることもできる。

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)