| Red Hat Linux 7.3: Official Red Hat Linux カスタマイズガイド | ||
|---|---|---|
| 前のページ | 第 12章DHCP(Dynamic Host Configuration Protocol) | 次のページ |
DHCPサーバーを設定するには、設定ファイル/etc/dhcpd.confを使用します。
また、DHCPはファイル/var/lib/dhcp/dhcpd.leasesを使用してクライアントのリースデータベースを保存します。詳細についてはリースデータベース項を参照してください。
DHCPサーバーを設定するには、まずクライアントのネットワーク情報を保存する設定ファイルを作成します。すべてのクライアントに対するグローバルオプションを宣言することも、クライアントシステムごとにオプションを宣言することもできます。
設定ファイルには、任意のタブや空白行を使用して書式をわかりやすく整えることができます。キーワードには大文字小文字の区別があり、先頭がシャープ記号(#)の行はコメントとみなされます。
設定ファイルのステートメントには、次の2種類があります。
パラメータ—タスクの実行方法、タスクを実行するかどうか、クライアントに 送信するネットワーク設定オプションを記述します。
宣言—ネットワークのトポロジの記述、クライアントの記述、クライアントのアドレスの指定、宣言のグループに対するパラメータグループの適用を行います。
一部のパラメータは、optionキーワードで開始する必要があります。オプションは、DHCPオプションを設定するものです。一方、パラメータは、オプションでない値を設定したり、DHCPサーバーの動作を制御したりするものです。
![]() | 重要 |
|---|---|
設定ファイルを変更した場合、service dhcpd restartコマンドで DHCPデーモンを再起動するまでは変更内容は反映されません。 |
中かっこ({ })で囲まれたセクションの前に宣言されたパラメータとオプションは、グローバルパラメータとみなされます。グローバルパラメータは、以降のすべてのセクションに適用されます。
例12-1では、routers、subnet-mask、domain-name、domain-name-servers、time-offsetオプションは、apexとraleighの両方のhostステートメントに使用されます。
例12-1に示すように、subnetの宣言が可能です。subnet宣言は、ネットワークのすべてのサブネットに対して記述する必要があります。宣言されていない場合、DHCPサーバーは起動できません。
この例では、サブネット内のすべてのDHCPクライアントに対するグローバルオプションが存在し、rangeが宣言されています。クライアントには、rangeの範囲内のIPアドレスが割り当てられます。
例 12-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 -5; # Eastern Standard Time
range 192.168.1.10 192.168.1.100;
} |
同じ物理ネットワークを共有するすべてのサブネットは、例12-2に示すようにshared-network内に宣言する必要があります。shared-network内のパラメータでsubnet宣言の外にあるものは、グローバルパラメータとみなされます。shared-networkの名前は、たとえばテストラボ環境のすべてのサブネットを記述するtest-labのように、ネットワークの記述名とします。
例 12-2. 共有ネットワーク宣言
shared-network name {
option domain-name "test.redhat.com";
option domain-name-servers ns1.redhat.com, ns2.redhat.com;
option routers 192.168.1.254;
more parameters for EXAMPLE shared-network
subnet 192.168.1.0 netmask 255.255.255.0 {
parameters for subnet
range 192.168.1.1 192.168.1.31;
}
subnet 192.168.1.32 netmask 255.255.255.0 {
parameters for subnet
range 192.168.1.33 192.168.1.63;
}
} |
例12-3に示すように、group宣言を使用して宣言のグループにグローバルパラメータを適用できます。共有ネットワーク、サブネット、ホストやその他のグループをグループ化することができます。
例 12-3. グループ宣言
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 -5; # 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サーバーを設定するには、例12-4を修正し、実際に使用する値を記述します。これにより、クライアントのデフォルトのリース期間、最大リース期間、ネットワークの設定値を宣言します。この例では、range192.168.1.10〜192.168.1.100の範囲内のIPアドレスがクライアントシステムに割り当てられます。
例 12-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パラメータを使用します。例12-5のhost apex宣言では、MACアドレスが00:A0:78:8E:9E:AAのネットワークインターフェイスカードは常にIPアドレス192.168.1.4を受け取るように指定 しています。
オプションパラメータhost-nameを使用してクライアントにホスト 名を割り当てることも可能です。
例 12-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;
} |
![]() | ヒント | |
|---|---|---|
Red Hat Linux 7.3のサンプル設定ファイルを使用して、自らのカスタム設定オプションを追加できます。次のコマンドを使用してサンプルファイルを適当な場所にコピーします。
|
オプションのステートメントの一覧とその機能については、dhcp-optionsのmanページを 参照してください。
DHCPサーバーでは、ファイル/var/lib/dhcp/dhcpd.leasesを使用 してクライアントのリースデータベースを保存します。このファイルは、手動で変更することはできません。リースデータベースには、最近割り当てられた各IPアドレスのDHCP リース情報が自動的に保存されます。この情報には、リース期間、IPアドレスの割り当て先、リースの開始/終了日、リースの取得に使用されたネットワークインターフェイスカードのMACアドレスが含まれます。
リースデータベースにおける時刻はすべて、ローカル時でなくグリニッジ標準時(GMT)を使用します。
リースデータベースは、サイズが大きくなり過ぎるのを避けるために、適宜再作成されます。最初に、すべての既知のリースが一時リースデータベースに保存されます。dhcpd.leasesファイルの名前がdhcpd.leases~に変更され、一時リースデータベースがdhcpd.leasesに書き込まれます。
リースデータベースの名前がバックアップファイルの名前に変更され、新規ファイルが書き込まれる前に、DHCPデーモンがkillされたりシステムがクラッシュしたりすることも考えられます。この場合、サービスの起動に必要なdhcpd.leasesファイルは存在しません。その際に新しいリースファイルを作成しないようにしてください。新しいファイルを作成すると、それまでのリースはすべて失われ、問題が発生します。これを解決するには、dhcpd.leases~バックアップファイルの名前をdhcpd.leasesに変更して、デーモンを起動してください。
![]() | 重要 |
|---|---|
DHCPサーバーを初めて起動するとき、dhcpd.leasesファイルがなければサーバーは起動できません。このファイルが存在しない場合は、コマンドtouch /var/lib/dhcp/dhcpd.leasesを使用して作成してください。 |
DHCPサービスを起動するには、/sbin/service dhcpd startコマンドを使用します。DHCPサーバーを停止するには、/sbin/service dhcpd stopコマンドを使用します。ブート時にデーモンを自動的に起動する必要がある場合は、第8章で説明しているサービスの管理方法に関する情報を参照してください。
システムに複数のネットワークインターフェイスを組み込む場合、そのうちの1つのインターフェイスだけでDHCPサーバーを起動するには、そのデバイスだけでサービスを起動するようにDHCPサーバーを設定します。/etc/sysconfig/dhcpdにあるDHCPDARGSのリストに次のインターフェイス名を追加します。
# Command line options here DHCPDARGS=eth0 |
これは、ファイアウォールマシンにネットワークカードが2つある場合に便利な機能です。一方のネットワークカードをDHCPクライアントとして設定してインターネット用のIPアドレスを取得します。もう一方のネットワークカードは、ファイアウォール内の内部ネットワーク用のDHCPサーバーとして使用できます。内部ネットワークに接続されたネットワークカードだけを指定することにより、ユーザーがインターネット経由でデーモンに接続できなくなるので、システムがより安全になります。
/etc/sysconfig/dhcpdで指定できるその他のコマンドラインオプションには次のようなものがあります。
-p <portnum> — dhcpdにより管理されるudpポート番号を表します。デフォルトはポート67です。DHCPサーバーは、指定されたupdポートよりも1つ大きな番号のポートにあるDHCPクライアントに応答を送信します。たとえば、デフォルトポート67をそのまま使用する場合、サーバーはポート67に来る要求を監視し、ポート68にあるクライアントに応答します。ここにポートを指定し、DHCPリレーエージェントを使用した場合、DHCPリレーエージェントが監視すべきポートとして同じポートを指定する必要があります。詳細についてはDHCPリレーエージェント項を参照してください。
-f — フォアグラウンドプロセスとしてデーモンを実行します。これはおもにデバッグに使用されます。
-d — 標準エラー記述子に、DCHPサーバーデーモンをログします。これはおもにデバッグに使用されます。このオプションを指定しなかった場合、ログは/var/log/messagesに書きこまれます。
-cf filename — 設定ファイルの場所を指定します。デフォルトの場所は/etc/dhcpd.confです。
-lf filename リースデータベースファイルの場所を指定します。リースデータベースファイルがすでに存在する場合、DHCPサーバーを起動するたびに、同じファイルが使用されるようにすることが非常に重要です。このオプションは、生産に関係のないマシンで、デバッグのためだけに使用することを強くお勧めします。デフォルトの場所は/var/lib/dhcp/dhcpd.leasesです。
-q — デーモンを開始するときに、著作権に関するメッセージを表示しません。
DHCPリレーエージェント(dhcrelay)により、DHCPやBOOTPの要求 を、DHCPサーバーを持たないサブネットからほかのサブネットのDHCPサーバーへと中継することができます。
DHCPクライアントが情報を要求すると、DHCPリレーエージェントは自身の起動時に指定された一覧に含まれるDHCPサーバーに要求を転送します。DHCPサーバーのいずれかから応答が返されると、その応答はオリジナルの要求を送信したネットワークにブロードキャストされたりユニキャストされたりします。
DHCPリレーエージェントは、引数-iで監視の対象となるインターフェイスが指定されている場合を除き、すべてのインターフェイスでDHCP要求を監視します。
DHCPリレーエージェントを開始するには、dhcrelayコマンドに続けて、要求のリレー先となるDHCPサーバー名を少なくとも1つ指定して実行します。起動には次のオプションを使用できます。
表 12-1. DHCPリレーエージェントオプション
| 引数 | 説明 |
|---|---|
| -i | 設定するネットワークインターフェイスの名前。インターフェイスを指定しないと、すべてのネットワークインターフェイスが設定され、可能であれば非ブロードキャストインターフェイスは除外されます。 |
| -p | dhcrelayが監視するポート。DHCPリレーエージェントは、このポートでサーバーへの要求を転送し、このポートより1つ番号の大きいポートでクライアントへの応答を転送します。 |
| -d | dhcrelayを常にフォアグラウンドで実行するよう強制します。 |
| -q | 起動時のdhcrelayのネットワーク設定の印刷を無効にします。 |