LPIC 202 対策:DHCPの設定と管理
個人のメモ書きとして整理しました。
間違えているところがあれば指摘お願いします
DHCPは、ネットワーク上のクライアントにIPアドレスやサブネットマスクなどのネットワーク設定を自動的に割り当てるために使用されるプロトコルです。
1. DHCPの主要コンポーネント
| コンポーネント | 役割 | LPICでのポイント |
|---|---|---|
dhcpd |
DHCPサーバーデーモン。ネットワーク上のクライアントからの要求に応答し、IPアドレスなどの設定をリースします。 | サービス名は環境によって異なりますが、一般的にdhcpdまたはisc-dhcp-serverとして管理されます。 |
dhcpd.conf |
DHCPサーバーの主設定ファイル。リースするアドレスの範囲、クライアントに提供する各種オプション(DNS、ルーターなど)を定義します。 |
構文とオプションの理解が最も重要です。通常、/etc/dhcp/dhcpd.confに配置されます。 |
dhcpd.leases |
リースデータベースファイル。DHCPサーバーが現在リースしているIPアドレス、クライアントのMACアドレス、リース期間などの情報を記録します。 | サーバーの状態確認やトラブルシューティングに不可欠なファイルです。 |
dhcrelay |
DHCPリレーエージェント。DHCP要求はブロードキャストですが、ルーターを越えることができません。クライアントのブロードキャスト要求をDHCPサーバーへユニキャストで中継する役割を持ちます。 | 複数セグメントにまたがるネットワークでDHCPサービスを提供するために使用されます。 |
2. dhcpd.conf の設定ディレクティブ
dhcpd.confは、ネットワーク全体に適用されるグローバルパラメータと、特定のネットワークやクライアントに適用される宣言で構成されます。
2-1. グローバルオプション(option ディレクティブ)
DHCPサーバーがクライアントに提供するネットワーク設定情報です。すべてoptionキーワードに続けて記述します。
| ディレクティブ | 意味 | 備考 |
|---|---|---|
option domain-name |
クライアントが使用するドメイン名(例: "example.com")。 |
|
option domain-name-servers |
クライアントが使用するDNSサーバーのIPアドレス(複数指定可能)。 | |
option routers |
クライアントのデフォルトゲートウェイ(ルーター)のIPアドレス。 | |
option subnet-mask |
クライアントに割り当てるサブネットマスク。 | |
option broadcast-address |
クライアントが属するネットワークのブロードキャストアドレス。 | |
option ntp-servers |
ネットワークタイムプロトコル (NTP) サーバーのIPアドレス。 | クライアントの時刻同期に使用されます。 |
option nis-domain |
NIS(Network Information Service)ドメイン名。 | |
option nis-servers |
NISサーバーのIPアドレス。 | |
option netbios-name-servers |
NetBIOSネームサーバー(WINSサーバー)のIPアドレス。 | Windowsネットワーク環境で使われます。 |
dhcpd.conf 設定ファイル
# ----------------------------------------------------------------------
# 1. グローバルパラメータ設定 (サーバー全体に適用される設定)
# ----------------------------------------------------------------------
# DHCPサーバーがデフォルトで提供するリース期間(秒)。
# クライアントが特定の期間を要求しなかった場合に適用される。
default-lease-time 86400; # 24時間 (24 * 60 * 60 = 86400)
# DHCPサーバーが許可する最長のリース期間(秒)。
# クライアントがこの期間を超えて要求しても、この値に制限される。
max-lease-time 604800; # 7日間 (7 * 24 * 60 * 60 = 604800)
# option domain-name: クライアントに提供するドメイン名(DNSサフィックス)。
# 文字列(ダブルクォーテーションで囲む)。
option domain-name "example.local";
# option domain-name-servers: クライアントに提供するDNSサーバーのIPアドレス。
# IPアドレス(カンマ区切りで複数指定可能)。
option domain-name-servers 192.168.1.1, 8.8.8.8;
# option ntp-servers: クライアントに提供するNTP(時刻同期)サーバーのIPアドレス。
# IPアドレス(カンマ区切りで複数指定可能)。
option ntp-servers 192.168.1.5, 133.243.238.243;
# option nis-domain: クライアントに提供するNIS(Network Information Service)ドメイン名。
# NIS環境で使用。文字列(ダブルクォーテーションで囲む)。
option nis-domain "nis.example.local";
# option nis-servers: クライアントに提供するNISサーバーのIPアドレス。
# IPアドレス(カンマ区切りで複数指定可能)。
option nis-servers 192.168.1.6;
# option netbios-name-servers: クライアントに提供するNetBIOSネームサーバー(WINSサーバー)のIPアドレス。
# Windows環境での名前解決に使用。IPアドレス(カンマ区切りで複数指定可能)。
option netbios-name-servers 192.168.1.7;
# ----------------------------------------------------------------------
# 2. サブネット宣言 (アドレス割り当てのスコープ定義)
# ----------------------------------------------------------------------
# subnet: 192.168.1.0/24 ネットワークに対する設定を定義するブロック。
# 必須項目:ネットワークアドレスとnetmaskを指定。
subnet 192.168.1.0 netmask 255.255.255.0 {
# range: このサブネットでクライアントに動的に割り当てるIPアドレスの範囲。
# 開始IPアドレスと終了IPアドレスを指定する。
range 192.168.1.100 192.168.1.199;
# option routers: クライアントに提供するデフォルトゲートウェイ(ルーター)のIPアドレス。
# IPアドレス形式。複数指定可能だが通常1つ。
option routers 192.168.1.1;
# option subnet-mask: クライアントに提供するサブネットマスク。
# IPアドレス形式。
option subnet-mask 255.255.255.0;
# option broadcast-address: クライアントに提供するブロードキャストアドレス。
# IPアドレス形式。
option broadcast-address 192.168.1.255;
}
# ----------------------------------------------------------------------
# 3. ホスト宣言 (固定IPアドレスの割り当て)
# ----------------------------------------------------------------------
# host: 特定のクライアント(ホスト)に対する固定設定を定義するブロック。
# MACアドレスと固定IPを紐づけるために使用。
host webserver {
# hardware ethernet: 割り当て対象のクライアントのMACアドレス(ハードウェアアドレス)。
# MACアドレスを識別子として使用。コロンまたはハイフン区切りで記述する。
hardware ethernet 00:1A:2B:3C:4D:5E;
# fixed-address: このMACアドレスを持つクライアントに固定で割り当てるIPアドレス。
# 動的割り当てのrange外のIPを使用することが一般的。
fixed-address 192.168.1.50;
}
host printer-01 {
hardware ethernet AA:BB:CC:DD:EE:FF;
fixed-address 192.168.1.51;
}
# ----------------------------------------------------------------------
2-2. リース期間とスコープの定義
| ディレクティブ | 意味 | 備考 |
|---|---|---|
default-lease-time |
デフォルトのIPアドレスリース期間(秒単位)。クライアントが期間を要求しなかった場合に適用されます。 | 試験で期間の計算が問われることがあります。 |
max-lease-time |
最長のIPアドレスリース期間(秒単位)。クライアントが要求できる最長のリース期間を制限します。 | |
subnet 宣言 |
IPアドレスをリースするネットワーク全体のスコープ(範囲)を定義します。 |
subnet 192.168.1.0 netmask 255.255.255.0 { ... } のように使用します。 |
range |
subnet宣言内で、クライアントに動的に割り当てるIPアドレスの範囲を指定します。 |
range 192.168.1.100 192.168.1.200; |
3. 特定クライアントの設定(固定割り当て)
特定のクライアントに常に同じIPアドレスを割り当てる設定(固定リース)を行うために**host**宣言を使用します。
| ディレクティブ | 意味 | 備考 |
|---|---|---|
host 宣言 |
特定のクライアント(ホスト)に対する固定設定を定義します。 |
host webserver { ... } のように使用します。 |
fixed-address |
そのクライアントに固定で割り当てるIPアドレス。 | |
hardware ethernet |
該当クライアントのMACアドレス。このMACアドレスを基にクライアントを識別します。 | 構文は hardware ethernet 00:11:22:33:44:55; のようになります。 |
LPICでの重要ポイント(固定割り当ての仕組み)
- DHCPサーバーは、クライアントのMACアドレスを**
hardware ethernet**で照合します。 - MACアドレスが一致すれば、その
host宣言内で指定された**fixed-address**を割り当てます。 - これは、サーバーやプリンターなど、常に同じIPアドレスを使用させたい機器に必須の設定です。
4. リース期間と管理ファイル
4-1. リース期間と更新
- リース期間: クライアントがIPアドレスを借用できる期間。
- 更新プロセス: 通常、クライアントは**リース期間の半分(T1時間)**が経過した時点で、DHCPサーバーにIPアドレスの更新(延長)を試みます。サーバーから応答がなければ、**リース期間の7/8(T2時間)**で再度更新を試みます。
4-2. dhcpd.leases ファイル
このファイルは、DHCPサーバーの状態を反映するデータベースとして機能します。
-
内容: 割り当てられたIPアドレス、クライアントのMACアドレス、割り当てられた日時、リース期間、次の更新試行日時、リースが
active(有効)かabandoned(破棄)かなどが記録されます。 - LPICポイント: トラブルシューティングの際、**「IPアドレスが正しく割り当てられているか?」「リース期間は有効か?」**を確認するために、このファイルをチェックすることが求められます。
5. dhcrelay の役割
DHCPリレーの仕組み
| 項目 | 詳細 |
|---|---|
| 問題点 | DHCPクライアントの要求(Discover)はブロードキャストであり、ルーターを越えてDHCPサーバーがいるセグメントまで届きません。 |
| 解決策 |
dhcrelayを、DHCPクライアントと同じセグメント内(またはルーター自身)に設置します。 |
| 動作 |
dhcrelayはクライアントからのブロードキャスト要求を受け取り、DHCPサーバーへユニキャスト(単一アドレス)で転送します。サーバーからの応答もクライアントへ中継します。 |
| LPICでのポイント |
dhcrelayの設定では、DHCPサーバーのIPアドレスを指定する必要があります。 |