Product SiteDocumentation Site

10.7. DHCP

DHCP (Dynamic Host Configuration Protocol の略語) はマシンが起動時にネットワーク設定を自動的に取得することを可能にするプロトコルです。DHCP のおかげでネットワーク設定の管理を中央集権化し、すべてのデスクトップマシンに類似した設定を行うことが可能になります。
DHCP サーバは多くのネットワーク関連パラメータを提供します。DHCP サーバが提供する最も一般的なパラメータは IP アドレスとマシンの所属するネットワークです。しかしながら、DHCP サーバは DNS サーバ、WINS サーバ、NTP サーバなどの情報を提供することも可能です。
(bind の開発にも参加している) Internet Software Consortium は DHCP サーバの主開発者です。彼らの開発した DHCP サーバを含む Debian パッケージは isc-dhcp-server です。

10.7.1. 設定

DHCP サーバの設定ファイル (/etc/dhcp/dhcpd.conf) で最初に編集する必要がある場所はドメイン名と DNS サーバです。DHCP サーバがローカルネットワーク (ブロードキャストが届く範囲として定義されます) に 1 台しかない場合、authoritative 指示文を有効化しなければいけません (コメントを外さなければいけません)。また、subnet セクションを作成し、そこに通知先のローカルネットワークと設定情報を記述する必要があります。以下は 192.168.0.1 にゲートウェイを担当しているルータが存在する 192.168.0.0/24 ローカルネットワーク用の設定例です。配布される IP アドレスは 192.168.0.128 から 192.168.0.254 までの範囲です。

例 10.15 /etc/dhcp/dhcpd.conf の抜粋

#
# Debian の ISC dhcpd 用設定ファイルの見本
#

# ddns-update-style パラメータは IP アドレスのリースが確認されたら
# このサーバが DNS 更新を試行するか否かを制御します。
# デフォルト設定値はバージョン 2 パッケージの挙動です
# ('none'。なぜなら DHCP v2 は DDNS をサポートしていなかったからです)。
ddns-update-style interim;

# すべてのネットワークに共通のオプションを定義します。
option domain-name "internal.falcot.com";
option domain-name-servers ns.internal.falcot.com;

default-lease-time 600;
max-lease-time 7200;

# この DHCP サーバがローカルネットワークの公式 DHCP サーバならば、
# authoritative 指示文を有効化するべきです。
authoritative;

# dhcp ログメッセージを別のログファイルへ送信するには以下の設定を使います
# (これを正しく動作させるには syslog.conf の設定も必要です)。
log-facility local7;

# 自分のサブネット
subnet 192.168.0.0 netmask 255.255.255.0 {
    option routers 192.168.0.1;
    option broadcast-address 192.168.0.255;
    range 192.168.0.128 192.168.0.254;
    ddns-domainname "internal.falcot.com";
}

10.7.2. DHCP と DNS

DNS ゾーン内に DHCP クライアントを自動登録するという便利な機能を使うことが可能です。自動登録機能を使えば、各マシンの意味のある名前を使ってアクセスできるようになります (自動登録機能を使わない場合、machine-192-168-0-131.internal.falcot.com などの匿名性のある名前を使ってアクセスすることになります)。自動登録機能を使うには、DHCP サーバから internal.falcot.com DNS ゾーンの更新を受け入れるように DNS サーバを設定して、各クライアントの登録情報の更新を DNS サーバに送信するように DHCP サーバを設定します。
bind の場合、DHCP サーバから更新を受け入れる各ゾーンに allow-update 指示文を追加する必要があります (internal.falcot.com ドメインと逆引きゾーンの両方に追加する必要があります)。allow-update 指示文は更新を受け入れる IP アドレスをリストします。つまり、考え得る DHCP サーバの全アドレスを列挙します (必要に応じて、ローカルアドレスと公開アドレスの両方を指定します)。
allow-update { 127.0.0.1 192.168.0.1 212.94.201.10 !any };
注意してください! 更新を受け入れることを許可したゾーンは bind により変更され、設定ファイルは定期的に上書きされます。この自動手続きにより作成されるファイルは手作業で書かれたものよりも人間にとって読みづらいため、Falcot の管理者は権限委譲された DNS サーバを使って internal.falcot.com ドメインを管理しています。これは falcot.com ゾーンファイルは手作業で管理されることを意味します。
上で引用した DHCP サーバの設定には、既に DNS ゾーンの更新に必要な指示文が含まれています。すなわちその指示文とは ddns-update-style interim; とサブネットを表すブロック中の ddns-domain-name "internal.falcot.com"; です。