DHCP(設定)

目次

CiscoルータをDHCPサーバとして利用する方法

CiscoルータやL3スイッチは、DHCPサーバの機能を持っており、PCなどのクライアントに自動的にIPアドレスを割り当てることができます。大規模な環境では専用のDHCPサーバを使うのが一般的ですが、小規模なネットワークではルータ自身にDHCPサーバの役割を持たせるケースがあります。試験でも「ルータをDHCPサーバとして動作させる設定」は頻出テーマですので、流れをしっかり覚えておきましょう。

DHCPサービスの有効化

Cisco IOSでは、DHCPサービスは基本的にデフォルトで有効化されています。もし何らかの理由で無効にしている場合は、次のコマンドで有効化します。

(config)# service dhcp

除外するIPアドレスの設定

DHCPで割り当ててはいけないアドレス(ルータのインターフェースIPやサーバの固定アドレスなど)は、除外リストに登録しておきます。

(config)# ip dhcp excluded-address 192.168.0.250 192.168.0.254

この例では、192.168.0.250 ~ 192.168.0.254 の範囲をDHCP割り当て対象外にしています。

DHCPプールの作成と設定

DHCPで配布するアドレス範囲を定義するため、まずプール名を設定します。

プール名の定義

(config)# ip dhcp pool SALES
(dhcp-config)#

配布するネットワークの指定

(dhcp-config)# network 192.168.1.0 255.255.255.0

デフォルトゲートウェイの設定

(dhcp-config)# default-router 192.168.1.254

DNSサーバの設定(任意)

(dhcp-config)# dns-server 172.16.1.10 172.16.1.11

ドメイン名の設定(任意)

(dhcp-config)# domain-name infraexpert.com

リース期間の設定(任意)

(dhcp-config)# lease 7

この例では7日間有効。
無期限にする場合は lease infinite を指定します。

DHCPデータベースエージェントの設定(オプション)

DHCPの割り当て情報を外部のFTP/TFTPサーバに保存する場合には、以下のように設定します。

(config)# ip dhcp database tftp://192.168.1.100/dhcp.db

特に外部保存を行わない場合は、以下を推奨設定として入れておきます。

(config)# no ip dhcp conflict logging

DHCPサーバのステータス確認コマンド

設定後は、以下のコマンドで状況を確認できます。

  • show ip dhcp pool … 設定したDHCPプールの情報を表示
  • show ip dhcp binding … 割り当てられたIPアドレスとMACアドレスの対応関係を表示
  • show ip dhcp conflict … IPアドレスの競合が発生した場合の情報を確認
  • debug ip dhcp server packet … DHCP関連のパケットをリアルタイムで追跡(試験ラボで有効、本番環境では非推奨)

試験対策:
・除外アドレスの設定を忘れると、ゲートウェイやサーバのIPまで配布されてしまう
・DHCPプール設定では networkdefault-router が必須
lease のデフォルトは「1日」
show ip dhcp binding で「どのPCがどのIPを割り当てられているか」を確認できる

試験では「どのコマンドが必須で、どのコマンドがオプションなのか」がよく問われます。必須要素(networkとdefault-router)は確実に覚えておきましょう。

DHCPリレーエージェントの設定

DHCPサービスの有効化について

CiscoルータやスイッチでDHCP関連の設定を行うときは、まず機器自体がDHCPサービスを扱える状態である必要があります。とはいえ、Cisco IOSでは初期状態からDHCPサービスが有効化されているため、通常は特別な操作は不要です。もし手動で再度有効にしたい場合には、グローバルコンフィグモードで service dhcp コマンドを入力します。

DHCPリレーエージェントの役割

DHCPはブロードキャスト通信を利用します。そのため、異なるネットワークに存在するDHCPサーバとは直接やり取りができません。ここで登場するのが「DHCPリレーエージェント」です。リレーエージェントは、クライアントからのDHCP要求を受け取り、目的のDHCPサーバへユニキャストで転送します。

試験対策としては、「DHCPリレーはどのインターフェースで設定するか」を正確に押さえることが重要です。クライアントが接続するインターフェースに設定する、と覚えておくと混乱しません。

ip helper-address コマンド

リレーエージェントを有効化する際には、インターフェースコンフィグモードに入り ip helper-address DHCPサーバのIPアドレス を指定します。例えば、DHCPサーバが 192.168.2.10 にある場合には以下のように設定します。

(config)# interface GigabitEthernet 0/0
(config-if)# ip helper-address 192.168.2.10

これで、ルータはクライアントからのDHCP要求をサーバへ転送できるようになります。

ip forward-protocol コマンド

実は ip helper-address で転送されるのはDHCP通信(UDP 67・68番ポート)だけではありません。Cisco IOSではデフォルトで8種類のUDPブロードキャストがユニキャストに変換され、サーバに転送されます。

ポート番号プロトコルサービス名内容
37UDPtime時刻同期
42UDPnameserverホスト名解決
53UDPdomainDNS
67UDPbootpsDHCPサーバ側
68UDPbootpcDHCPクライアント側
69UDPtftp軽量ファイル転送
137UDPnetbios-nsNetBIOS名解決
138UDPnetbios-dgmNetBIOSデータグラム

もし不要なものを転送したくない場合は、no ip forward-protocol udp サービス名 を使って制限できます。逆に、新しいサービスを追加で転送したいときは ip forward-protocol udp サービス名 を入力します。

不要な転送を禁止する設定例

例えば、DHCP関連の「bootps」と「bootpc」だけを残し、他の転送をすべて無効にしたい場合には次のように設定します。

(config)# interface vlan 10
(config-if)# ip address 192.168.1.254 255.255.255.0
(config-if)# ip helper-address 192.168.2.10

(config)# no ip forward-protocol udp tftp
(config)# no ip forward-protocol udp nameserver
(config)# no ip forward-protocol udp domain
(config)# no ip forward-protocol udp time
(config)# no ip forward-protocol udp netbios-ns
(config)# no ip forward-protocol udp netbios-dgm

このようにすることで、DHCP以外の不要な転送を抑制できます。

転送対象を追加する設定例

もし「mobile-ip」というUDP通信も転送したい場合には次のように追加入力します。

(config)# interface vlan 10
(config-if)# ip address 192.168.1.254 255.255.255.0
(config-if)# ip helper-address 192.168.2.10

(config)# ip forward-protocol udp mobile-ip

試験対策:「ip helper-address はDHCPだけでなく複数のUDPサービスを転送する」ことが狙われやすいポイントです。特に、デフォルトで転送される8種類のUDPサービスは表ごと覚えておくと安心です。

DHCPクライアントの設定

CiscoルータをDHCPクライアントにするケース

通常、CiscoルータはDHCPサーバやDHCPリレーとして動作することが多く、ルータ自身がDHCPクライアントになることはほとんどありません。しかし例外として、ISP(インターネットサービスプロバイダ)からブロードバンド回線を提供される場合には、WAN側のインターフェースがDHCPでアドレスを取得することがあります。例えば、家庭用ルータがプロバイダから自動的にグローバルIPをもらう仕組みと同じイメージです。

ip address dhcp コマンド

ルータのインターフェースに ip address dhcp を設定すると、そのインターフェースはDHCPクライアントとして動作し、DHCPサーバから自動的にIPアドレスを受け取ります。このとき、DHCPメッセージに含まれるデフォルトゲートウェイ(デフォルトルート情報)も一緒に反映されるため、ルータのルーティングテーブルには自動的にデフォルトルートが追加されます。

(config-if)# ip address dhcp

ISP接続を想定した設定例

以下の例では、LAN側を 192.168.1.0/24 ネットワークに固定し、WAN側をDHCPでアドレス取得する構成を示しています。さらに、LANからインターネットへ接続できるようにNATを併用しています。

R3(config)# interface GigabitEthernet 0/0
R3(config-if)# ip address 192.168.1.254 255.255.255.0
R3(config-if)# ip nat inside

R3(config)# interface GigabitEthernet 0/1
R3(config-if)# ip address dhcp
R3(config-if)# ip nat outside

R3(config)# ip route 0.0.0.0 0.0.0.0 dhcp

R3(config)# ip nat inside source list 1 interface GigabitEthernet 0/1 overload
R3(config)# access-list 1 permit 192.168.1.0 0.0.0.255

この設定のポイントを整理すると、以下のようになります。

  • GigabitEthernet0/0(LAN側)
    固定IPアドレス(192.168.1.254)を設定し、NATの「内側」として指定しています。
  • GigabitEthernet0/1(WAN側)
    DHCPでIPアドレスを取得し、NATの「外側」として指定しています。ISPから自動的にアドレスが割り当てられる部分です。
  • デフォルトルートの設定
    ip route 0.0.0.0 0.0.0.0 dhcp により、DHCPで配布されたゲートウェイに従ってデフォルトルートが自動的に張られます。
  • NATの設定
    LAN内のプライベートアドレスをWAN側のグローバルアドレスへ変換しています。overload を付与することでPAT(ポート番号を使ったアドレス変換)が有効になります。

試験対策:「ルータをDHCPクライアントにできる」という点そのものが問われることがあります。また、ip route 0.0.0.0 0.0.0.0 dhcp によってデフォルトルートがDHCPサーバから受け取れる、という仕様も狙われやすいところです。特に、NATやISP接続のシナリオと合わせて出題されるケースがあるため、単なるDHCPクライアント設定だけでなく「NATと組み合わせてWAN接続を実現する流れ」を理解しておくと安心です。

DHCPオプション

DHCPオプションとは

DHCPサーバがクライアントへ渡す情報は、単なるIPアドレスやサブネットマスクだけではありません。実際には「DHCPオプション」と呼ばれるタグ付きの項目を通じて、デフォルトゲートウェイやDNSサーバなどの追加情報も一緒に伝えられます。さらに、特定の機器に合わせた拡張設定を渡すこともできるため、企業ネットワークでは重要な役割を持っています。

イメージとしては「アパートを借りたときに、部屋の鍵だけでなくゴミ出しのルールや非常口の場所も一緒に説明される」ようなものです。IPアドレスが「鍵」だとすると、DHCPオプションは「生活に必要な補足情報」にあたります。

よく使われるDHCPオプション番号

Cisco機器で特によく登場するオプションは次の通りです。試験では番号と用途をセットで覚えておくと安心です。

オプション番号説明
43WLC(ワイヤレスLANコントローラ)のIPアドレスをCisco Aironetアクセスポイントに通知する
60VCI(Vendor Class Identifier)を伝える
150Cisco IP PhoneにTFTPサーバのIPアドレスを通知する

DHCPオプションの設定方法

オプションはDHCPプール設定モードで option コード番号 [ ascii | hex | ip ] の形式で指定します。渡したい情報の種類によって、文字列(ascii)、16進数(hex)、IPアドレス(ip)を選びます。

(dhcp-config)# option code [ ascii string | hex string | ip address ]

Cisco IP Phone への配布例

Cisco製IP Phoneを利用する場合、特に「オプション150」を使ってTFTPサーバのIPアドレスを通知するのが定番です。IP Phoneは起動時にTFTPから設定ファイルをダウンロードし、CUCM(Cisco Unified Communications Manager)と通信を開始するためです。

以下の例では、IP Phoneに基本的なネットワーク情報とTFTPサーバ(172.16.10.11 と 172.16.10.12)の情報を配布しています。

(config)# no ip dhcp conflict logging
(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.10

(config)# ip dhcp pool IP-Phone-Net
(dhcp-config)# network 192.168.10.0 255.255.255.0
(dhcp-config)# default-router 192.168.10.1
(dhcp-config)# domain-name infraexpert.com
(dhcp-config)# dns-server 10.1.1.11 10.1.1.12
(dhcp-config)# option 150 ip 172.16.10.11 172.16.10.12
(dhcp-config)# lease infinite

このように、Cisco製品同士の場合は比較的シンプルに設定が完了します。

Avaya IP Phone への配布例

一方、他社製のIP Phone(例:Avaya)では、より複雑なオプション設定が必要になる場合があります。Avayaの場合は「オプション242」に文字列(ascii)で複数のパラメータをまとめて渡します。

(config)# no ip dhcp conflict logging
(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.10

(config)# ip dhcp pool IP-Phone-Net
(dhcp-config)# network 192.168.10.0 255.255.255.0
(dhcp-config)# default-router 192.168.10.1
(dhcp-config)# option 242 ascii MCIPADD=172.16.10.10,HTTPSRVR=172.16.10.10,HTTPDIR=tftpboot
(dhcp-config)# lease infinite

このように、Cisco以外のベンダー機器ではDHCPサーバ設定が複雑化することがあり、実務ではInfobloxなど専用のDHCPアプライアンスを利用するケースも多いです。

試験対策:特に「DHCPオプション150=Cisco IP Phone用のTFTPサーバ通知」という知識がよく問われます。番号と用途を確実に押さえておきましょう。また、オプション設定の基本的な書式(option code の使い方)を理解しておくことも重要です。

◆まとめスライド

目次