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