DHCPの役割

DHCP(Dynamic Host Configuration Protocol)は、ネットワークに接続した端末に対して、IPアドレスをはじめとするネットワーク設定情報を自動的に配布するプロトコルです。DHCPが配布する情報には、主に次のようなものがあります。

  • IPアドレスとサブネットマスク
  • デフォルトゲートウェイのアドレス
  • DNSサーバーのアドレス
  • ドメイン名などのその他のオプション情報

DHCPが無ければ、ネットワークに接続するすべての端末に対して、管理者が1台ずつ手作業でIPアドレス等を設定する必要があり、台数が多い環境では非現実的です。

DORAプロセス

DHCPクライアントが初めてIPアドレスを取得する際は、次の4段階のやり取り(DORAプロセス)が代表的に行われます。

  • Discover(発見):クライアントが、ネットワーク上にDHCPサーバーが無いかをブロードキャストで問い合わせます。
  • Offer(提供):Discoverを受信したDHCPサーバーが、割り当て候補のIPアドレス等の情報を提示します。Offerはクライアントの状態や設定により、ユニキャストまたはブロードキャストで送信されます。
  • Request(要求):クライアントが、提示されたIPアドレスを使いたいという要求を送信します。複数のサーバーからOfferを受け取った場合、この要求は通常ブロードキャストで送信され、選ばれなかったDHCPサーバーにも知らせます。
  • Acknowledge(確認応答):DHCPサーバーが、そのアドレスの割り当てを正式に確定させます。Acknowledgeもクライアントの状態や設定により、ユニキャストまたはブロードキャストで送信されます。

クライアントが送信するDiscoverなどのDHCPブロードキャストは、ルータをまたいだ別のサブネットにあるDHCPサーバーには、そのままでは届きません。この課題を解決する仕組みが、後述するDHCPリレーです。

DNSの役割

DNS(Domain Name System)は、www.example.comのような人間にとって覚えやすいドメイン名から、実際の通信に必要なIPアドレスを求める仕組みです。また、IPアドレスからドメイン名を求める逆引きもできますが、対応するPTRレコードが設定されている必要があります。DNSが無ければ、Webサイトへアクセスするたびに、利用者が実際のIPアドレスを直接指定しなければならなくなります。

DHCPとDNSは、実際の運用では密接に関わっています。DHCPサーバーは、IPアドレスと同時にDNSサーバーのアドレスもクライアントへ配布するのが一般的です。そのため、DHCPプールの設定でDNSサーバーのアドレスが誤っていると、IPアドレスの割り当て自体は成功していても、クライアントは名前解決ができず、ドメイン名を指定したインターネット上のサービスへのアクセスが困難になります。

DHCPクライアントの設定

ルータのインターフェイスを、DHCPクライアントとして動作させ、上流のDHCPサーバーからIPアドレスを取得させるには、次のように設定します。

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address dhcp

このルータ自身がDHCPクライアントとして正しくアドレスを取得できたかどうかは、show dhcp leaseコマンドで確認できます。

Router# show dhcp lease

Temp IP addr: 192.168.1.20 for peer on Interface: GigabitEthernet0/0
Temp sub net mask: 255.255.255.0
   DHCP Lease server: 192.168.1.1, state: 3 Bound
   DHCP transaction id: 1A2B
   Lease: 86400 secs,  Renewal: 43200 secs,  Rebind: 75600 secs

show dhcp leaseは、ルータ自身がDHCPクライアントとして取得したリース情報(取得したIPアドレス・リース元のDHCPサーバー・リース期間等)を表示するコマンドです。後述するshow ip dhcp bindingがDHCPサーバー側で払い出したアドレスの一覧を表示するのに対し、show dhcp leaseはDHCPクライアント側(このルータ自身)が受け取ったリースを表示する点で、確認する立場が異なります。

DHCPリレーの設定

前述のとおり、クライアントが送信するDHCPブロードキャストは、クライアントと異なるサブネットにあるDHCPサーバーには、そのままでは届きません。DHCPリレーエージェントは、クライアントが属するサブネットのルータが、受信したDHCPのブロードキャストを、指定したDHCPサーバー宛のユニキャストに変換して中継する機能です。DHCPサーバーからの応答も、リレーエージェントを経由してクライアント側へ転送されます。

Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip helper-address 192.168.100.10

クライアント側のサブネットに面したインターフェイスにip helper-addressを設定し、宛先としてDHCPサーバーのIPアドレスを指定します。この設定により、ルータは中継するパケットの中に、自分自身のインターフェイスアドレス(giaddr)を含めるため、DHCPサーバー側は、そのパケットがどのサブネットからの要求かを識別し、対応するアドレスプールから正しくアドレスを割り当てられます。

Cisco IOSのip helper-addressは、DHCPだけでなく、デフォルトでは一部のUDPブロードキャストも指定先へ転送します。

設定の確認

DHCPサーバーとして動作しているCisco IOSルータで、割り当て済みアドレスのリース状況を確認するには、show ip dhcp bindingコマンドを使用します。

Router# show ip dhcp binding

IP address       Client-ID/Hardware address    Lease expiration       Type
192.168.1.10     0063.6973.636f.2d61.6263      Sep 08 2026 10:38 AM   Automatic

show ip dhcp bindingは、DHCPサーバーが払い出したアドレスの一覧を表示するコマンドです。DHCPリレーとしてだけ動作しているルータには、外部DHCPサーバーが払い出したリース情報は表示されません。DHCPリレーを利用する場合は、DHCPサーバー側のリース情報、リレー設定、およびクライアントが取得したアドレスを確認します。

ip helper-addressの設定そのものが正しく入っているかを直接確認するには、該当インターフェイスのshow ip interfaceコマンドを使います。

Router# show ip interface GigabitEthernet0/1

GigabitEthernet0/1 is up, line protocol is up
  Internet address is 192.168.1.1/24
  Helper address is 192.168.100.10

Helper address is 192.168.100.10という行から、このインターフェイスに設定されているip helper-addressの宛先を直接確認できます。同様に、show running-config interface GigabitEthernet0/1コマンドでも、該当インターフェイスの実行コンフィグに含まれるip helper-addressを確認できます。