Product SiteDocumentation Site

10.2. DHCP サーバーの設定

dhcp パッケージは ISC DHCP サーバーを含みます。まず、root としてパッケージをインストールします:
yum install dhcp
dhcp パッケージをインストールすることにより、単に空の設定ファイル /etc/dhcp/dhcpd.conf が作成されます:
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see dhcpd.conf(5) man page
#
サンプル設定ファイルが /usr/share/doc/dhcp-version/dhcpd.conf.sample にあります。以下に説明されている /etc/dhcp/dhcpd.conf を設定する助けにするために、このファイルを使用すべきです。
DHCP はクライアントの払い出しデータベースを保存するために /var/lib/dhcpd/dhcpd.leases ファイルも使用します。詳細は「リースデータベース」を参照してください。

10.2.1. 設定ファイル

DHCP サーバーを設定する第一歩は、クライアントのネットワーク情報を保存する設定ファイルを作成することです。クライアントシステムのオプションや全体オプションを宣言するためにこのファイルを使用します。
設定ファイルはフォーマットがしやすいように余計なタブや空白行を含めることができます。キーワードは大文字小文字を区別しません。また、ハッシュ記号 (#) から始まる行はコメント行と見なされます。
設定ファイルのステートメントには、次の2タイプがあります:
  • パラメーター — タスクがどのように実行されるか、またはクライアントに送られるネットワーク設定オプションを述べます。
  • 宣言 — ネットワークのトポロジーを記述します、クライアントを記述します、クライアントのアドレスを提供します、または宣言のグループにパラメーターのグループを適用します。
キーワードオプションで始まるパラメーターはオプションとして見なされます。これらのオプションは DHCP オプションを制御します。一方、パラメーターはオプションではない値を設定します、または、DHCP サーバーがどのように振る舞うかを制御します。
中かっこ ({ }) で囲まれたセクションの前に宣言されたパラメータとオプションは、グローバルパラメータとみなされます。グローバルパラメータは、それ以降のすべてのセクションに適用されます。

変更を反映するには DHCP デーモンを再起動します

設定ファイルが変更されても、DHCP デーモンを再起動するまで、変更が有効になりません。そうするには、root としてシェルプロンプトにおいて以下を入力します:
systemctl restart dhcpd.service

omshell コマンドを使用する

DHCP 設定ファイルを変更して、毎回サービスを再起動する代わりに、omshell コマンドを使用することにより、DHCP サーバーに接続し、その設定を問い合わせ、変更する非対話式の方法が提供されます。omshell を使用することにより、すべての変更はサーバーが実行中に反映されます。omshell の詳細は omshell マニュアルページを参照してください。
例10.1「サブネット宣言」において、routers, subnet-mask, domain-search, domain-name-servers, および time-offset オプションはその下に宣言されたすべての host ステートメントに対して使用できます。
さらに、subnet が宣言され、subnet 宣言がネットワークにあるすべてのサブネットに対して含めなければいけません。もしなければ、DHCP サーバーが起動に失敗します。
この例では、サブネットと宣言された range においてすべての DHCP クライアントに対する全体オプションがあります。クライアントは range の中にある IP アドレスが割り当てられます。
例10.1 サブネット宣言
subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers                  192.168.1.254;
        option subnet-mask              255.255.255.0;
        option domain-search              "example.com";
        option domain-name-servers       192.168.1.1;
        option time-offset              -18000;     # Eastern Standard Time
	range 192.168.1.10 192.168.1.100;
}

動的 IP アドレスをサブネットにあるシステムに払い出す DHCP サーバーを設定するには、値を持つ例10.2「range パラメーター」を変更します。デフォルトの払い出し期間、最大の払い出し期間、およびクライアントに対するネットワーク設定値を宣言します。この例はクライアントシステムに対して range 192.168.1.10 と 192.168.1.100 にある IP アドレスを割り当てます。
例10.2 range パラメーター
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-search "example.com";
subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.10 192.168.1.100;
}

To assign an IP address to a client based on the MAC address of the network interface card, use the hardware ethernet parameter within a host declaration. As demonstrated in 例10.3「DHCP を用いた静的 IP アドレス」, the host apex declaration specifies that the network interface card with the MAC address 00:A0:78:8E:9E:AA always receives the IP address 192.168.1.4.
オプションのパラメーター host-name はホスト名をクライアントに割り当てるために使用されます。
例10.3 DHCP を用いた静的 IP アドレス
host apex {
   option host-name "apex.example.com";
   hardware ethernet 00:A0:78:8E:9E:AA;
   fixed-address 192.168.1.4;
}

All subnets that share the same physical network should be declared within a shared-network declaration as shown in 例10.4「shared-network 宣言」. Parameters within the shared-network, but outside the enclosed subnet declarations, are considered to be global parameters. The name of the shared-network must be a descriptive title for the network, such as using the title 'test-lab' to describe all the subnets in a test lab environment.
例10.4 shared-network 宣言
shared-network name {
    option domain-search              "test.redhat.com";
    option domain-name-servers      ns1.redhat.com, ns2.redhat.com;
    option routers                  192.168.0.254;
    more parameters for EXAMPLE shared-network
    subnet 192.168.1.0 netmask 255.255.252.0 {
        parameters for subnet
        range 192.168.1.1 192.168.1.254;
    }
    subnet 192.168.2.0 netmask 255.255.252.0 {
        parameters for subnet
        range 192.168.2.1 192.168.2.254;
    }
}

As demonstrated in 例10.5「group 宣言」, the group declaration is used to apply global parameters to a group of declarations. For example, shared networks, subnets, and hosts can be grouped.
例10.5 group 宣言
group {
   option routers                  192.168.1.254;
   option subnet-mask              255.255.255.0;
   option domain-search              "example.com";
   option domain-name-servers       192.168.1.1;
   option time-offset              -18000;     # Eastern Standard Time
   host apex {
      option host-name "apex.example.com";
      hardware ethernet 00:A0:78:8E:9E:AA;
      fixed-address 192.168.1.4;
   }
   host raleigh {
      option host-name "raleigh.example.com";
      hardware ethernet 00:A1:DD:74:C3:F2;
      fixed-address 192.168.1.6;
   }
}

サンプル設定ファイルの使用法

The sample configuration file provided can be used as a starting point and custom configuration options can be added to it. To copy it to the proper location, use the following command:
cp /usr/share/doc/dhcp-version-number/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
... ここで version-number は DHCP バージョン番号です。
For a complete list of option statements and what they do, refer to the dhcp-options man page.