次のページ 前のページ 目次へ

4. DHCP サーバの設定

4.1 UNIX 用の DHCP サーバ

U*X ライク OS 用の DHCP サーバはいくつか存在します。 商用のものもフリーのものもあります。フリーの DHCP サーバの中で よく使われているものは Paul Vixie の ISC DHCPd でしょう。 現在の最新版は 1.0 (ほとんどのユーザはこちらが良いでしょう) ですが、 2.0 もβテストの段階です。これらは ftp://ftp.isc.org/isc/dhcp/ から入手できます。

ダウンロードして展開し、配布ソースのディレクトリに cd して、 以下を実行します。

./configure

設定にはしばらく時間がかかるでしょう。終わったら、

make

続いて

make install

します。

4.2 ネットワークの設定

インストールが終わったら、 ifconfig -a と入力してください。 以下のような表示が出るはずです。


eth0      Link encap:10Mbps Ethernet  HWaddr 00:C0:4F:D3:C4:62
          inet addr:183.217.19.43  Bcast:183.217.19.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2875542 errors:0 dropped:0 overruns:0
          TX packets:218647 errors:0 dropped:0 overruns:0
          Interrupt:11 Base address:0x210

MULTICAST という文字が現れない場合はカーネルを設定しなおして multicast のサポートを追加する必要があります。ほとんどのシステムでは これは不要でしょう。

次に行うことは 255.255.255.255 への経路の追加です。 DHCPd の README から引用します。

"dhcpd を細かいことにうるさい DHCP クライアント (Windows 95 のこと) と正しく動作させるには、dhcpd は destination address が 255.255.255.255 の IP パケットを送ることができるように なっている必要があります。残念ながら Linux は 255.255.255.255 をローカルなサブネットのブロードキャスト (ここでは 192.5.5.223) に変換してしまうのです。 この結果は DHCP プロトコルに違反することになります。 たいていの DHCP クライアントはこれに気がつきませんが、 気がつくもの (Microsoft の DHCP クライアント全部) もあります。 後者の様なクライアントはサーバからの DHCPOFFER メッセージを 受信する事ができないのです。"

次のように入力しましょう。

route add -host 255.255.255.255 dev eth0

もしも

"255.255.255.255: Unknown host"

のようなメッセージが出力された場合は、 次の様なエントリを /etc/hosts ファイルに追加する必要があります。

255.255.255.255 all-ones

追加したら

route add -host all-ones dev eth0

あるいは

route add -net 255.255.255.0 dev eth0

としてください。もちろん eth0 が使おうとしている ネットワークデバイス名です。異なる場合は適宜変更してください。

4.3 DHCPd のオプション

ここで DHCPd を設定しなければなりません。 /etc/dhcpd.conf を作成します。

一番普通なのは IP アドレスをランダムに割り当てることでしょう。 これには以下のような設定を用います。


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 "mydomain.org";

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.10 192.168.1.100;
   range 192.168.1.150 192.168.1.200;
}

こうすると DHCP サーバがクライアントに与える IP アドレスは 192.168.1.10-192.168.1.100 または 192.168.1.150-192.168.1.200 の範囲となります。特にクライアントからの時間枠の要求がなければ、 600 秒の間 IP アドレスが貸し出されます。要求があった場合に 最大限許される貸し出し時間は 7200 秒です。またサーバは クライアントに 255.255.255.0 をサブネットマスクとして用い、 192.168.1.255 をブロードキャストアドレスとして用い、 192.168.1.254 をゲートウェイとして用い、 192.168.1.1 か 192.168.1.2 を DNS サーバとして用いるように 「アドバイス」します。

特定の IP アドレスをクライアントの Ethernet アドレスに応じて 割り当てることもできます。


host haagen {
   hardware ethernet 08:00:2b:4c:59:23;
   fixed-address 192.168.1.222;
}

このようにすると IP アドレス 192.168.1.222 が Ethernet アドレス 08:00:2b:4c:59:23 を持ったクライアントに 割り当てられます。

これらを適当に混ぜる事もできます。つまり特定のクライアントには スタティックな IP アドレスを与え (サーバなど)、他には 動的な IP を与える (ラップトップユーザなど) ことができます。 他にもたくさんのオプションがあります。 wins サーバのアドレスを 与えたり、タイムサーバを教えたり、などです。これらが必要な 場合は dhcpd.conf のマニュアルページを読んでください。

4.4 サーバを起動する

いよいよ DHCP サーバを起動できます。単に以下のように入力 するだけです (あるいはブートアップスクリプトに書きます)。

/usr/sbin/dhcpd

ちゃんと動作しているかどうかを確かめたい場合は、 まずデバッグモードをオンにしてサーバをフォアグラウンドで 実行してみましょう。以下のようにします。

/usr/sbin/dhcpd -d -f

そしてどれかクライアントを一つブートしてみて、 サーバのコンソールを確認しましょう。 たくさんのデバッグメッセージが現れるはずです。


次のページ 前のページ 目次へ