Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.2. DHCP サーバーの設定

dhcp パッケージには、ISC DHCP サーバーが含まれています。まず、スーパーユーザーとして パッケージをインストールします。
~]# yum install dhcp
dhcp パッケージをインストールすると、/etc/dhcpd.conf ファイルが作成されます。これは単に空の設定ファイルになります。
~]# cat /etc/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
サンプル設定ファイルは、/usr/share/doc/dhcp-<version>/dhcpd.conf.sample にあります。このファイルは、/etc/dhcpd.conf の設定に役立ちます。これについては、以下で説明します。
また、DHCP は /var/lib/dhcpd/dhcpd.leases ファイルを使用してクライアントのリースデータベースを保存します。詳細は、「リースデータベース」 を参照してください。

23.2.1. 設定ファイル

DHCP サーバーを設定する最初のステップは、クライアントのネットワーク情報を保存する設定ファイルを作成します。このファイルを使用して、クライアントシステムのオプションとグローバルオプションを宣言します。
設定ファイルには追加のタブや空白行が含まれているため、簡単に書式を整えることができます。キーワードは大文字と小文字を区別せず、ハッシュ記号(#)で始まる行はコメントとみなされます。
現在、2 つの DNS 更新スキームが実装されています。アドホック DNS 更新モードと、DHCP-DNS インタラクションのドラフト更新モードです。これら 2 つが Internet Engineering Task Force (IETF)標準プロセスの一部として許可される場合、3 番目のモード(標準の DNS 更新メソッド)があります。これらのスキームとの互換性を確保するために、DNS サーバーを設定する必要があります。バージョン 3.0b2pl11 以前のバージョンでは、アドホックモードを使用していましたが、非推奨になっています。同じ動作を維持するには、以下の行を設定ファイルの上部に追加します。
ddns-update-style ad-hoc;
推奨されるモードを使用するには、以下の行を設定ファイルの上部に追加します。
ddns-update-style interim;
さまざまなモードの詳細は、dhcpd.conf の man ページを参照してください。
設定ファイルのステートメントには、次のような 2 つのタイプがあります。
  • パラメーター: タスクの実行方法、タスクを実行するかどうか、クライアントに送信するネットワーク設定のオプションを規定します。
  • 宣言 - ネットワークトポロジーの記述、クライアントの記述、クライアントのアドレス指定、宣言グループへのパラメーターグループの適用を行います。
キーワードオプションから始まるパラメーターは、オプション と呼ばれます。これらのオプションは DHCP オプションを制御しますが、パラメーターはオプションではない値を設定するか、DHCP サーバーの動作を制御します。
中括弧({ })で囲まれたセクションの前に宣言されたパラメーター(オプションを含む)はグローバルパラメーターとみなされます。グローバルパラメーターは、これ以降のすべてのセクションに適用されます。
重要な影響
設定ファイルが変更された場合、コマンド service dhcpd によって DHCP デーモンが再起動されるまで変更は反映されません。
ヒント
毎回 DHCP 設定ファイルを変更してサービスを再起動する代わりに、omshell コマンドを使用すると、DHCP サーバーへの接続、クエリー、設定の変更をインタラクティブに行うことができます。omshell を使用すると、DHCP サーバーの実行中でも変更を行うことができます。omshell の詳細は、omshell の man ページを参照してください。
例23.1「サブネットの宣言」 では、ルーターsubnet-mask、domain-name、domain-name -servers、および time-offset オプションは、その下に宣言された host ステートメントに使用されます。
また、サブネット を宣言することもできます。サブネット 宣言は、ネットワーク内のすべてのサブネットに含める必要があります。そうでない場合、DHCP サーバーは起動に失敗します。
この例では、サブネット内のすべての DHCP クライアントに対してグローバルオプションと 範囲 が宣言されています。クライアントには、の 範囲 内の IP アドレスが割り当てられます。

例23.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-name              "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;
}
同じ物理ネットワークを共有するすべてのサブネットは、例23.2「Shared-network 宣言」 に示されるように shared-network 宣言内で宣言する必要があります。shared-network 内のパラメーター(ただし囲まれた subnet 宣言の外)は、グローバルパラメーターとみなされます。shared-network の名前は、'test-lab' というタイトルを使用してテストラボ環境のすべてのサブネットを説明するなど、ネットワークの説明的なタイトルである必要があります。

例23.2 Shared-network 宣言

shared-network name {
    option domain-name              "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;
    }
}
例23.3「Group 宣言」 で示すように、group 宣言は、宣言のグループにグローバルパラメーターを適用するために使用されます。たとえば、共有ネットワーク、サブネット、ホストをグループ化することができます。

例23.3 Group 宣言

group {
   option routers                  192.168.1.254;
   option subnet-mask              255.255.255.0;

   option domain-name              "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;
   }
}
サブネット内のシステムに動的 IP アドレスをリースする DHCP サーバーを設定するには、例23.4「Range パラメーター」 を実際の値で変更します。これにより、クライアントのデフォルトのリース時間、最大リース時間、ネットワークの設定値を宣言します。この例では、192.168.1.10 および 192.168.1.100 の 範囲 の IP アドレスをクライアントシステムに割り当てます。

例23.4 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-name "example.com";

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.10 192.168.1.100;
}
ネットワークインターフェイスカードの MAC アドレスに基づいてクライアントに IP アドレスを割り当てるには、host 宣言内の hardware ethernet パラメーターを使用します。例23.5「DHCP を使用した静的 IP アドレス」 で示すように、host apex 宣言は、MAC アドレス 00:A0:78:8E:9E:AA を持つネットワークインターフェイスカードを常に IP アドレス 192.168.1.4 を受け取るように指定します。
オプションのパラメーター host-name を使用して、クライアントにホスト名を割り当てることもできます。

例23.5 DHCP を使用した静的 IP アドレス

host apex {
   option host-name "apex.example.com";
   hardware ethernet 00:A0:78:8E:9E:AA;
   fixed-address 192.168.1.4;
}
ヒント
提供される設定ファイルのサンプルは開始点として使用でき、カスタム設定オプションをこれに追加できます。これを適切な場所にコピーするには、以下のコマンドを使用します。
cp /usr/share/doc/dhcp-<version-number>/dhcpd.conf.sample /etc/dhcpd.conf
< version-number> は DHCP バージョン番号に置き換えてください。
オプションステートメントの完全なリストと機能については、dhcp-options の man ページを参照してください。