16.2. DHCPv4 サーバーの設定
dhcp パッケージには、インターネットシステムの Consortium(ISC)DHCP サーバーが含まれます。まず、パッケージをスーパーユーザーとしてインストールします。
~]# yum install dhcp
dhcp パッケージをインストールすると、ファイル
/etc/dhcp/dhcpd.conf
が作成されます。これは、空の設定ファイルです。
~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
設定ファイルの例は、
/usr/share/doc/dhcp-<バージョン>/dhcpd.conf.sample
にあります。/etc/dhcp/dhcpd.conf
を設定するする際に、このファイルを使用してください。詳細は以下で説明します。
DHCP は
/var/lib/dhcpd/dhcpd.leases
ファイルを使用してクライアントリースデータベースを保存します。詳細は、「リースデータベース」を参照してください。
16.2.1. 設定ファイル
DHCP サーバーを設定する最初のステップは、クライアントのネットワーク情報を格納する設定ファイルを作成することです。このファイルを使用して、クライアントシステムのオプションとグローバルオプションを宣言します。
設定ファイルには追加のタブや空白行が含まれているため、簡単に書式を整えることができます。キーワードは大文字と小文字を区別せず、ハッシュ記号(#)で始まる行はコメントとみなされます。
設定ファイルのステートメントには、次のような 2 つのタイプがあります。
- パラメーター: タスクの実行方法、タスクを実行するかどうか、クライアントに送信するネットワーク設定のオプションを規定します。
- 宣言 - ネットワークトポロジの記述、クライアントの記述、クライアントのアドレス指定、宣言グループへのパラメーターグループの適用を行います。
キーワードオプションから始まるパラメーターは、オプション と呼ばれます。これらのオプションは DHCP オプションを制御しますが、パラメーターはオプションではなく、DHCP サーバーの動作を制御する値を設定します。
中括弧({ })で囲まれたセクションの前に宣言されたパラメーター(オプションを含む)はグローバルパラメーターとみなされます。グローバルパラメーターは、これ以降のすべてのセクションに適用されます。
重要
設定ファイルを変更すると、コマンド service dhcpd restart で DHCP デーモンを再起動するまで変更は反映されません。
注記
DHCP 設定ファイルを変更し、毎回サービスを再起動する代わりに、omshell コマンドを使用して、DHCP サーバーへの接続、クエリー、および設定を変更するインタラクティブな方法を提供します。omshell を使用すると、DHCP サーバーの実行中でも変更を行うことができます。omshell の詳細については、omshell の man ページを参照してください。
例16.1「サブネットの宣言」 では、
ルーター
、subnet-mask
、domain-search
、domain-name-servers
、および time-offset
オプションは、以下に宣言された ホスト
ステートメントに使用されます。
提供されるすべての
サブネット
、および DHCP サーバーが接続されているすべての サブネット
について、サブネット
宣言が 1 つ必要です。これは、DHCP デーモンに対して、アドレスがその サブネット
上に存在することを認識する方法を示しています。サブネット
にアドレスが動的に割り当てられない場合でも、サブネット
ごとに subnet
宣言が必要です。
以下の例では、サブネットの DHCP クライアントごとにグローバルオプションがあり、
範囲
が宣言されています。クライアントには、範囲
内の IP アドレスが割り当てられます。
例16.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 サーバーを設定するには、例16.2「Range パラメーター」 を実際の値で変更します。これにより、クライアントのデフォルトのリース時間、最大リース時間、ネットワークの設定値を宣言します。この例では、192.168.1.10 および 192.168.1.100 の
範囲
の IP アドレスをクライアントシステムに割り当てます。
例16.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; }
ネットワークインターフェースカードの MAC アドレスに基づいて IP アドレスをクライアントに割り当てるには、
host
宣言内の ハードウェアイーサネット
パラメーターを使用します。例16.3「DHCP を使用した静的 IP アドレス」 で説明されているように、ホスト apex
宣言は、MAC アドレス 00:A0:78:8E:9E:AA が常に IP アドレス 192.168.1.4 を受信するように指定します。
オプションのパラメーター
host-name
を使用して、クライアントにホスト名を割り当てることもできます。
例16.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; }
同じ物理ネットワークを共有するすべてのサブネットは、例16.4「Shared-network 宣言」 に示されるように
shared-network
宣言内で宣言する必要があります。shared-network
内のパラメーターですが、囲まれた subnet
宣言以外は、グローバルパラメーターとみなされます。shared-network
の名前は、テストラボ環境内のすべてのサブネットを記述するために「test-lab」というタイトルを使用するなど、ネットワークの説明的なタイトルである必要があります。
例16.5「Group 宣言」 で説明されているように、
group
宣言はグローバルパラメーターを宣言のグループに適用するために使用されます。たとえば、共有ネットワーク、サブネット、ホストをグループ化することができます。
例16.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; } }
サンプル設定ファイルの使用
提供される設定ファイルのサンプルを開始点として使用し、カスタム設定オプションを追加できます。このファイルを適切な場所にコピーするには、
root
で以下のコマンドを実行します。
~]# cp /usr/share/doc/dhcp-<version_number>/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
... ここで、<version_number& gt; は DHCP バージョン番号になります。
オプションステートメントの完全なリストと、それらの操作は、
dhcp-options
の man ページを参照してください。