DHCPサーバーの機能説明
DHCPサーバーは、クライアントに割り当てるIPアドレスなどの情報を自動的に発行する機能です。DHCPサーバーを使用するには、必要な情報を設定してからservice dhcpコマンドで有効にします。
セカンダリーIPアドレスで指定したサブネットでは、DHCPサーバー機能は動作しません。
DHCPサーバーが有効な状態では、設定の変更内容が反映されません。変更内容を反映するには、no service dhcpコマンドを使用してDHCPサーバーを一度無効にした後、再度DHCPサーバーを有効にしてください。
DHCPサーバーの概要
DHCPサーバーは、DHCPクライアントにIPアドレスを割り当てる前に、そのIPアドレスがすでに使用されているかどうかをpingによって確認します。pingによる事前確認で応答がない場合、そのIPアドレスは割り当て可能と判断され、DHCPクライアントに割り当てられます。pingによる事前確認で応答があった場合は、そのIPアドレスは割り当て候補から除外され、DHCP競合エントリーとして登録されます。
pingによる事前確認の送信回数を変更するには、ip dhcp ping packetsコマンドを使用します。応答タイムアウト時間を変更するには、ip dhcp ping timeoutコマンドを使用します。
DHCP競合エントリーとして登録されたIPアドレスは、clear ip dhcp conflictコマンドで手動で削除されるまでリース対象になりません。
DHCPアドレスプール
クライアントに割り当てるIPアドレスなどの情報は、DHCPアドレスプールを作成してその中で設定します。サブネットごとに1つのDHCPアドレスプールを作成し、DHCPアドレスプールごとにDHCPクライアントに提供する情報を設定できます。DHCPアドレスプールは、ip dhcp poolコマンドで作成します。
動的割り当てのためのDHCPアドレスプールは最大32個設定でき、1つのプールあたり最大1,024個のアドレスをリースできます。ただし、NP2100、NP2000、およびNP2500でサポートする動的割り当てのためのDHCPアドレスプールは、最大23個です。
DHCPプール(動的割り当てのためのDHCPアドレスプール、手動バインディングエントリーのためのDHCPアドレスプール、DHCPリレーのためのDHCPリレープール)は、装置全体であわせて最大96個まで設定できます。
DHCPアドレスプールごとに設定できる情報は以下のとおりです。()内は使用するコマンドです。
- ネットワークアドレスとサブネットマスク(network)
- DHCPクラス(class)
- リース期間(lease)
- デフォルトルーター(default-router)
- ドメイン名(domain-name)
- DNSサーバー(dns-server)
- NetBIOSノードタイプ(netbios-node-type)
- WINSサーバー(netbios-name-server)
- ブートサーバー(next-server)
- ブートファイル(bootfile)
- オプション(option)
DHCPクラスは、DHCPクライアントが送信したDHCPパケットのオプション情報を基に、DHCPクライアントを分類する機能です。分類したDHCPクラスごとに、DHCPサーバーがリースするIPアドレスの範囲を指定したり、DHCPリレーのリレー先IPアドレスを指定したりできます。
DHCPクラスは、ip dhcp classコマンドで作成します。DHCPクラスを利用する場合は、ip dhcp use classコマンドを使用して、DHCPクラスの利用設定を有効化する必要があります。
装置全体で設定できるDHCPクラスは最大10個ですが、DHCPクラスは複数の異なるDHCPプールに適用できます。また、1つのDHCPアドレスプールでは最大10個のDHCPクラスを利用できます。
DHCPクラスの一致条件を設定するには、option hexコマンドを使用します。なお、一致条件が未設定のDHCPクラスは「一致条件=any」の扱いになり、すべてのDHCPクライアントが対象になります。
DHCPサーバーにおいて、分類したDHCPクラスごとにリースするIPアドレスの範囲を指定するには、address rangeコマンドを使用します。
IPアドレスのリース範囲の限定方法
IPアドレスのリース範囲を限定するには、以下の2種類の方法が使用できます。
- リース除外範囲の指定(ip dhcp excluded-address)
- DHCPクラスを利用したリースするIPアドレスの範囲指定
自装置に設定したIPアドレス、または手動バインディングエントリーとして設定済みのIPアドレスは、リース対象から自動的に除外されます。
ip dhcp excluded-addressコマンドを使用すると、リースするIPアドレスから除外する範囲を設定できます。
ip dhcp excluded-addressコマンドは、装置全体で最大5個設定できます。
DHCPクラスは、一致条件が未設定の場合はすべてのDHCPクライアントが対象になります。そのため、一致条件が未設定のDHCPクラスを利用することにより、1つのDHCPアドレスプールあたり最大10個のリースするIPアドレスの範囲指定ができます。
装置全体で設定できるDHCPクラスは最大10個ですが、DHCPクラスは複数の異なるDHCPプールに適用できます。また、1つのDHCPアドレスプールでは最大10個のDHCPクラスを利用できます。
リースするIPアドレスの範囲指定を行う例を以下に示します。
- 192.168.10.0/24のサブネットでは、リースするIPアドレスの範囲を「192.168.10.20~192.168.10.50」「192.168.10.130~192.168.10.160」「192.168.10.220~192.168.10.230」に限定
- 192.168.20.0/24のサブネットでは、リースするIPアドレスの範囲を「192.168.20.10~192.168.20.99」「192.168.20.200~192.168.20.253」に限定
DHCPクラスを利用したリースするIPアドレスの範囲指定の例
手動バインディングエントリー
手動バインディングエントリーは、特定のMACアドレスまたは特定のクライアントIDからの要求に対して、リースするIPアドレスを固定できます。
手動バインディングエントリーのためのDHCPアドレスプールは最大64個設定でき、1つのプールあたり1個の手動バインディングエントリーを設定できます。
DHCPプール(動的割り当てのためのDHCPアドレスプール、手動バインディングエントリーのためのDHCPアドレスプール、DHCPリレーのためのDHCPリレープール)は、装置全体で合わせて最大96個まで設定できます。
手動バインディングエントリーのためのDHCPアドレスプールでは、以下のいずれかの方法でリースするIPアドレスを手動で設定します。
- hostコマンドで「手動バインディングエントリーのIPアドレス」を設定し、それをリースするMACアドレスをhardware-addressコマンドで紐付ける。
- hostコマンドで「手動バインディングエントリーのIPアドレス」を設定し、それをリースするクライアントIDをclient-identifierコマンドで紐付ける。
また、「ネットワークアドレスとサブネットマスク(network)」「DHCPクラス(class)」以外の情報は、手動バインディングエントリーのためのDHCPアドレスプールでも設定できます。
バインディングエントリーの手動削除
DHCPサーバーからリースされたIPアドレスは、DHCPサーバーのバインディングエントリーとして登録されます。登録されているバインディングエントリーを削除するには、clear ip dhcp bindingコマンドを使用します。
競合エントリーの手動削除
リース時のpingによる事前確認で応答がない場合、対象のIPアドレスはDHCP競合エントリーとして登録されます。登録されているDHCP競合エントリーを削除するには、clear ip dhcp conflictコマンドを使用します。