# IP付加機能 / DHCPサーバー

本製品のDHCPサーバー機能について説明します。
Note

セカンダリーIPアドレスを使ってインターフェースに複数のIPアドレスを設定した場合、複数設定した内のいずれか1つのIPサブネット上でDHCPサーバー機能を使用することはできますが、複数のIPサブネット上では使用できません。

Note

DHCPクライアント機能については、「IP」の「IPインターフェース」をご覧ください

DHCP（Dynamic Host Configuration Protocol）は、クライアントに対して動的にIP設定パラメーターを提供する機能です。
DHCPサーバーは、クライアントの要求に対して、あらかじめプールされたIPアドレスの中から使用されていないアドレスを選び、一定期間クライアントに割り当てます。
また、サブネットマスクやデフォルトルート、ネームサーバーアドレスなど、同一サブネット内で共通に用いられるパラメーターをサーバー側で管理し、クライアントに提供することもできます。

## 基本設定

本製品をDHCPサーバーとして機能させるために必要な設定について説明します。
なお、以下の例では、IPの基本設定までは完了しているものとします。IPインターフェースの基本設定については「IP」の「IPインターフェース」をご覧ください。

1. DHCPプールを作成します。ip dhcp poolコマンドを実行すると、指定したDHCPプールの設定を行うDHCPモードに移行します。

       awplus(config)# ip dhcp pool pool10

2. このDHCPプールを使用するIPネットワーク（サブネット）を指定します。DHCPプールを作成したら、最初にnetworkコマンドで対象とするサブネットを設定してください。ここでは、192.168.10.0/24（192.168.10.0～192.168.10.255）を指定します。

       awplus(dhcp-config)# network 192.168.10.0/24

   Note

   クライアントからの要求をDHCPリレーエージェント経由で受け入れる場合は、クライアントの所属するリモートサブネットのアドレスを指定します。
   クライアントが本装置と同じサブネットに存在している場合は、直結サブネットのアドレス（本装置のインターフェースに設定したサブネットアドレス）か、それよりも小さいサブネットアドレスを指定します。

   Note

   DHCPプールの設定を行っていないサブネット（IPインターフェース）でDHCP Discoverメッセージを受信した場合、`daemon.err awplus dhcpd[xxxxx]: DHCPDISCOVER from 00:12:3f:f5:8e:b4 via vlan1: network 172.17.0.0/16: no free leases` のようなerrorレベルのログメッセージが出力されます。このメッセージは、すべての直結サブネットにDHCPプールを設定した場合は表示されません。

3. クライアントに割り当てる動的IPアドレスの範囲を指定します。ここで指定するアドレスは、前の手順で指定したサブネットの範囲内になくてはなりません。ここでは192.168.10.240～192.168.10.249の10アドレスを割り当てます。

       awplus(dhcp-config)# range 192.168.10.240 192.168.10.249

   Note

   192.168.255.0/27（192.168.255.0～192.168.255.31）のIPアドレスは本製品内部およびVCS構成時に管理用サブネットとして使用しているため、割り当てることはできません。なお、管理用サブネットはstack management subnetコマンドで変更できます。

4. 動的IPアドレスの使用期限（リース時間）を設定します。ここでは、IPアドレスの使用期限（リース時間）を2時間とします。本設定を省略した場合は、デフォルトのリース時間1日が適用されます。

       awplus(dhcp-config)# lease 0 2 0

5. 特定のMACアドレスを持つクライアントに対しては、IPアドレスを静的割り当てするよう設定します。ここでは、MACアドレス「00:0c:29:2d:d8:cb」のクライアントに対して、IPアドレス192.168.10.252を静的割り当てするよう設定します。なお、静的割り当てしたアドレスには、leaseコマンドで設定したリース時間は適用されません（無期限となります）。

       awplus(dhcp-config)# host 192.168.10.252 000c.292d.d8cb

6. DHCPクライアントに提供する基本的なIP設定パラメーターを指定します。ここでは、サブネットマスク 255.255.255.0、デフォルトルート 192.168.10.1、プライマリーDNSサーバー 192.168.10.5、セカンダリーDNSサーバー 192.168.10.11、ドメイン名 tw.example.comの情報を提供するものとします。

       awplus(dhcp-config)# subnet-mask 255.255.255.0
       awplus(dhcp-config)# default-router 192.168.10.1
       awplus(dhcp-config)# dns-server 192.168.10.5
       awplus(dhcp-config)# dns-server 192.168.10.11
       awplus(dhcp-config)# domain-name tw.example.com
       awplus(dhcp-config)# exit

   Note

   IPアドレスなどを複数指定するときは、同じコマンドを複数実行してください。

   Note

   上記以外のもさまざまな設定情報をクライアントに提供することができます。詳細はDHCP関連コマンドの説明をご覧ください。なお、DHCPプールで設定していても、クライアントが要求しなかった情報は実際には送信されません。

7. DHCPサーバーを有効にします。

       awplus(config)# service dhcp-server

以上で設定は完了です。
DHCPサーバーの全般的な設定内容を確認するには、show ip dhcp server summaryコマンドを使います。
DHCPサーバーの統計情報を確認するには、show ip dhcp server statisticsコマンドを使います。
DHCPプールの情報を確認するには、show ip dhcp poolコマンドを使います。
DHCPクライアントに対するIPアドレス割り当て状況はshow ip dhcp bindingコマンドで確認できます。

### VRF-Liteとの併用

VRF-Lite使用時は、VRFインスタンスごとにDHCPプールを設定することができます。
ネットワーク構成にもよりますが、対象のVRFインスタンスが異なっていれば、同じIPアドレス範囲を使用するDHCPプールの作成も可能になります。
グローバル以外のVRFインスタンスでDHCPサーバー機能を使う場合は、DHCPプールの設定開始時にvrfコマンド（DHCPモード）でVRFインスタンスを指定してください。vrfコマンド（DHCPモード）を設定していないDHCPプールはグローバルVRFインスタンス用となります。
Note

VRF-Liteについては、「IP」/「VRF-Lite」をご覧ください。

たとえば、グローバル、VRF-BLUE、VRF-PINKの各VRFインスタンス向けにDHCPプールを作成するには、次のようにします。
グローバルVRFインスタンス用のglobal_poolではvrfコマンドを設定しません。
VRF-BLUE用のblue_poolとVRF-PINK用のpink_poolでは、networkコマンド、rangeコマンドの設定前にvrfコマンドで対象のVRFインスタンスを指定してください。

    awplus(config)# ip dhcp pool global_pool
    awplus(dhcp-config)# network 192.168.10.0/24
    awplus(dhcp-config)# range 192.168.10.240 192.168.10.249
    awplus(dhcp-config)# exit

    awplus(config)# ip dhcp pool blue_pool
    awplus(dhcp-config)# vrf VRF-BLUE
    awplus(dhcp-config)# network 192.168.10.0/24
    awplus(dhcp-config)# range 192.168.10.240 192.168.10.249
    awplus(dhcp-config)# exit

    awplus(config)# ip dhcp pool pink_pool
    awplus(dhcp-config)# vrf VRF-PINK
    awplus(dhcp-config)# network 192.168.10.0/24
    awplus(dhcp-config)# range 192.168.10.240 192.168.10.249
    awplus(dhcp-config)# exit

## ポートベースのIP割り当て

DHCPクライアントの接続先スイッチポートによってIPアドレスを静的割り当てする方法を説明します。
この構成では、端末機器を交換しても接続先のポートが同じであれば交換前と同じIPアドレスが割り当てられます。
さらに、DHCPリレーエージェント機能と連携させることで、DHCPサーバーに直結されたローカルクライアントだけでなく、DHCPリレー経由でDHCPサーバーにアクセスするリモートクライアントに対しても同様な割り当てが可能になります。
ここでは次の構成におけるDHCPサーバーとDHCPリレーの設定を説明します。DHCPリレーについては「IP付加機能」の「DHCPリレー」もご覧ください。
また、以下ではIPの基本設定までは完了しているものとします。IPインターフェースの基本設定については「IP」の「IPインターフェース」をご覧ください。

- DHCPサーバー配下（vlan1）のクライアント（ローカルクライアント）
  - ポート1.1.1のクライアント - 192.168.1.101（静的割り当て）
  - ポート1.1.2のクライアント - 192.168.1.102（静的割り当て）
  - ポート1.1.3のクライアント - 192.168.1.103（静的割り当て）
- DHCPリレーエージェント配下（vlan2）のクライアント（リモートクライアント）
  - ポート1.1.1のクライアント - 192.168.2.101（静的割り当て）
  - ポート1.1.2のクライアント - 192.168.2.102（静的割り当て）
  - ポート1.1.3のクライアント - 192.168.2.103（静的割り当て）

### DHCPサーバーの設定

1. スイッチポート1.1.1～1.1.3にip dhcp use-subscriber-idコマンドを設定し、これらのポートに接続されたDHCPクライアントの識別子（クライアントID）として、内部的にポートのインターフェース名「port1.1.1」、「port1.1.2」、「port1.1.3」が使われるようにします。

       awplus(config)# interface port1.1.1-1.1.3
       awplus(config-if)# ip dhcp use-subscriber-id
       awplus(config-if)# exit

2. ローカルクライアント向けのDHCPプール「local」を作成します。

       awplus(config)# ip dhcp pool local

3. DHCPプール「local」の対象サブネットを指定します。

       awplus(dhcp-config)# network 192.168.1.0/24

4. スイッチポート1.1.1～1.1.3に接続されたローカルクライアントにIPアドレスを静的割り当てするよう設定します。
   手順1のip dhcp use-subscriber-id設定により、これらのポートに接続されたDHCPクライアントには内部的にクライアントID「port1.1.1」、「port1.1.2」、「port1.1.3」が割り当てられるため、hostコマンドの`client-id CLIENTID`パラメーターを利用して各ポートのクライアントに固定のIPアドレスを割り当てるよう設定します。

       awplus(dhcp-config)# host 192.168.1.101 client-id port1.1.1
       awplus(dhcp-config)# host 192.168.1.102 client-id port1.1.2
       awplus(dhcp-config)# host 192.168.1.103 client-id port1.1.3

   Note

   他のポート（スイッチポート1.1.1～1.1.3以外）に接続されたローカルクライアントに対しIPアドレスを動的割り当てしたい場合は、rangeコマンドで動的IPアドレスの範囲を指定してください。静的割り当てだけで運用する場合、本設定は不要です。

       awplus(dhcp-config)# range 192.168.1.201 192.168.1.240

5. ローカルクライアントに提供する基本的なIP設定パラメーターを指定します。

       awplus(dhcp-config)# subnet-mask 255.255.255.0
       awplus(dhcp-config)# default-router 192.168.1.1
       awplus(dhcp-config)# dns-server 192.168.1.5
       awplus(dhcp-config)# exit

6. 次にリモートクライアント向けのDHCPプール「remote」を作成します。

       awplus(config)# ip dhcp pool remote

7. DHCPプール「remote」の対象サブネットを指定します。

       awplus(dhcp-config)# network 192.168.2.0/24

8. リモートクライアントをリレーエージェント情報オプション内のSubscriber-IDサブオプションの値で識別するように設定します。これにはuse-subscriber-idコマンドを使います。
   リレーエージェント情報オプションおよびSubscriber-IDサブオプションは、リモートクライアントからのDHCPパケットをDHCPサーバーに転送するときにDHCPリレーエージェントが付加するものです。そのために必要なDHCPリレー側の設定については「DHCPリレーの設定」で説明します。

       awplus(dhcp-config)# use-subscriber-id

9. 各リモートクライアントにIPアドレスを静的割り当てするよう設定します。
   手順8のuse-subscriber-id設定により、リモートクライアントのSubscriber-IDが内部的なクライアントIDとして扱われるようになるため、hostコマンドの`client-id CLIENTID`パラメーターを利用して各クライアントに固定のIPアドレスを割り当てるよう設定します。

       awplus(dhcp-config)# host 192.168.2.101 client-id remote1
       awplus(dhcp-config)# host 192.168.2.102 client-id remote2
       awplus(dhcp-config)# host 192.168.2.103 client-id remote3

10. リモートクライアントに提供する基本的なIP設定パラメーターを指定します。

        awplus(dhcp-config)# subnet-mask 255.255.255.0
        awplus(dhcp-config)# default-router 192.168.2.1
        awplus(dhcp-config)# dns-server 192.168.1.5
        awplus(dhcp-config)# exit

11. service dhcp-serverコマンドでDHCPサーバー機能を有効にします。

        awplus(config)# service dhcp-server

以上でDHCPサーバー側の設定は完了です。

### DHCPリレーの設定

1. （DHCPサーバー側から見た）リモートクライアントを接続するスイッチポートにip dhcp-relay agent-option subscriber-idコマンドを設定し、ポート1.1.1～1.1.3に接続されたクライアントから受信したDHCPパケットをDHCPサーバーに転送するとき、リレーエージェント情報オプションのSubscriber-IDサブオプションとしてそれぞれ「remote1」、「remote2」、「remote3」を付加するよう設定します。
   DHCPサーバー側では、このSubscriber-IDの情報を利用して個々のリモートクライアントを識別し、IPアドレスを静的に割り当てることができます。

       awplus(config)# interface port1.1.1
       awplus(config-if)# ip dhcp-relay agent-option subscriber-id remote1
       awplus(config-if)# exit
       awplus(config)# interface port1.1.2
       awplus(config-if)# ip dhcp-relay agent-option subscriber-id remote2
       awplus(config-if)# exit
       awplus(config)# interface port1.1.3
       awplus(config-if)# ip dhcp-relay agent-option subscriber-id remote3
       awplus(config-if)# exit

2. vlan2で受信したDHCPパケットをDHCPサーバーに転送するための設定を行います。
   ip dhcp-relay server-addressコマンドで転送先のDHCPサーバーを指定し、ip dhcp-relay agent-optionコマンドでリレーエージェント情報オプションを付加するよう設定します。
   また、ip dhcp-relay information policyコマンドでappendを指定し、すでにリレーエージェント情報オプションの付いている（他のリレーエージェントを経由した）DHCPパケットを受信した場合はリレーエージェント情報オプションを追加して転送するよう指示します。

       awplus(config)# interface vlan2
       awplus(config-if)# ip dhcp-relay server-address 192.168.100.1
       awplus(config-if)# ip dhcp-relay agent-option
       awplus(config-if)# ip dhcp-relay information policy append
       awplus(config-if)# exit

3. service dhcp-relayコマンドでDHCPリレーエージェント機能を有効にします。

       awplus(config)# service dhcp-relay

   Note

   DHCPリレーエージェント機能は初期状態で有効に設定されているため、実際には本コマンドは不要です。

以上でDHCPリレー側の設定は完了です。