最新更新日 '99.10.02.


自宅に DHCP サーバを導入。
 この間、FreeBSD な人々との宴会に参加してきました。おもしれかったぁぁ;-)。users-ML で有名な人に沢山会えました。ふふふ。また宜しくお願いします。

 例えば、宴会の席でみんな NotePC を引っ張り出す訳です。もう怪しい宴会になってしまうのですが、その時、さっと、自分の NotePC を出して、

「はーーい。ここに DHCP サーバ用意したんで使ってくださいぃぃ。」

なんて言えたらかっちょ良いですよね。あっと言う間に宴会 LAN の出来上がり;-)。って感じです。ふふふ(^^)V。

 と。言う事でミエと羨望の眼差しを集める為に DHCP サーバの設定をしてみましょう\(^^)/。

#ただ、DHCP サーバの動いている NotePC を取り出して「羨望の眼差し」で見られるか、「白い目」で見られるか、私は責任を取りません;-P。

 さて、DHCP には、WIDE 版のヤツと、ISC 版のヤツの二つがありますが、今回は (正確には「今回も」です;-) ISC 版の DHCP の設定をします。まずは、packages で、isc-dhcp-2.0.tgz を pkg_add します。はい。これでおしまい;-)。

 これで、/usr/local/sbin に dhcpd をインストールしてくれます。後、良く見ると以下、いろいろインストールしてくれました。ちょっと見てみましょう。

----------------
dhclient:       なんとっ!!クライアントまでインストールされています;-)。  
dhcpd:          おっ!! DHCP のデーモンだ。
dhcrelay:       なんじゃこりゃ?
----------------
 上の二つは容易に想像が付きますね。今回使うデーモン君と、DHCP クライアントのプログラムですね。で、後、一個ですが、簡単に説明すると以下の様になります。

 例えば、3 個 の Class C を持っていて、一個の Class C 毎に HDCP サーバを起動した時、そのサーバ間のやりとりを行ってくれます。

 ただ、今回はこれに付いては説明しません。必要が無いと思われるし、僕にも設定方法解らないし・・(^^;;。

 と、言う事で、今回は、dhcpd の設定です。packages および、ports からインストールした場合は必要になる設定ファイルは /usr/local/etc に格納される事になっています。ここを覗いてみると・・。dhclient-script と dhclient.conf の二つが見付かりましたね。けど、これはクライアント側の設定ファイルで、サーバ用の設定ファイルは、dhcpd.conf と、言うのになり、これは自分で作らないとだめなんです。

 と、言う事で、dhcpd.conf を作りましょう。以下がそのサンプルです。私が利用しているモノです。順番に説明して行く事にしましょう。

----------------
################################################
# ISC-DHCP-2.0 DHCP Server Conf
################################################

#
option domain-name "running-dog.net";
option domain-name-servers ns01.running-dog.net, ns02.running-dog.net;

#
default-lease-time 86400;
max-lease-time 86400;

#
subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.129 192.168.1.254;
   option routers 192.168.1.5;
   option  subnet-mask 255.255.255.0;
   option broadcast-address 192.168.1.255;
}
----------------
 その前に私の家のネットワーク構成を・・。

 ・ドメイン名は running-dog.net を利用。
 ・DNS は贅沢にも ns01/ns02.running-dog.net の二つを用意。
  そして、DHCP で利用する IP アドレスはちゃんと設定します。
 ・IP アドレスは 192.168.1.0/24 の ClassC を使って 1-128 迄は静的 IP の利用。
  129-254 迄を DHCP として利用する事にします。

・option domain-name "running-dog.net";
ドメイン名の指定です。"running-dog.net" と指定します。

・option domain-name-servers ns01.running-dog.net, ns02.running-dog.net;
DNS サーバを指定します。二つある場合は、"," で区切ります。

・default-lease-time 86400;
クライアントが掴んだ IP アドレスは一旦解除されるのですが、その時間を書く事にします。一日分として設定しました。

・max-lease-time 86400;
これは、上記の最大時間です。一日分として設定しました。

・subnet 192.168.1.0 netmask 255.255.255.0 {
サブネットの設定をします。192.168.1.0/24 を利用して、ネットマスクを記述します。

・range 192.168.1.129 192.168.1.254;
DHCP サーバが利用する IP アドレスの範囲を記述します。今回は 192.168.1.129 から 192.168.1.254 までを利用する様に設定しました。

・option subnet-mask 255.255.255.0;
ネットマスクを記述します。

・option broadcast-address 192.168.1.255;
プロードキャストアドレスを書きます。

 まぁ、設定ファイルはこんな感じです。他の設定に付いては、mand hcpd.conf して確認してみてください。

 さて、これで /usr/local/sbin/dhcpd を起動するのですが、その前に 2,3 のおまじないをします。DHCPD は syslog を吐き出す事が出来るのでその設定をしましょう。/etc/syslog.conf に以下の様に設定します。

----------------
!dhcpd
*.*                                             /var/log/dhcpd.log
----------------
 "*.*" の後は TAB を入れて下さい。これが出来たら以下の様にリスタートします。そしていよいよ起動です;-)。
----------------
# cp /dev/null /var/log/dhcpd.log
# kill -HUP `cat /var/run/syslog.pid`
# /usr/local/sbin/dhcpd
----------------
 起動すると、/var/log/dhcpd.log に起動した旨の log が吐き出されます。え?動かない?あ、カーネルに一行追加する必要があります;-)。以下の一行をカーネルのコンフィグファイルに追加します。そして新しいカーネルを作ってあげましょう。

 あ、3.3-RELEASE にはデェフォルトで GENERIC の一番下に書いてありますね。

----------------
pseudo-device   bpfilter 1      #Berkeley packet filter
----------------
 これでサーバが起動したと思います。後はクライアントで、例えば、 Windows95/98 で試してみて下さい。

[スタート]→[設定]→[コントロールパネル]→[ネットワーク]→[TCP/IP]→[DHCP を利用する]

 で、OK です。マシンをリブートしてみてください。その時、DHCP サーバが起動しているマシンでは tail -f /var/log/dhcpd.log なんてしとくと、接続されて IP が取られる事が解ると思います。

 クライアント側では、DOS プロンプトから winipcfg.exe を起動して取得した IP アドレスを見る。なんて事は朝飯前ですね;-)。

 と、言う事で、DHCP サーバが起動しました。むひひひ(^^)V。これであなたは宴会できっと羨望の眼差しを浴びる事でしょう。ふふふ。

 え? FreeBSD の DHCP のクライアントの設定を教えてくれ。って? うぅぅみゅ。今から書くのか・・。しくしく。

 ・・。と、思われますが、クライアントの方は実はもうずいぶん昔に書いているのです。うひひひひひ(^^)V。PAO の所にあるのです。ThinkPad 535E で動いている FreeBSD に DHCP のクライアントの設定方法が書いてあります。クライアントはやはり、ISC 版の DHCP を利用しました。と、言う事はさっきインストールされた、クライアントソフトである、/usr/local/sbin/dhclient を利用する。と、言う事になります。後はちびっとの設定と、/etc/rc.conf への設定が必要ですが、詳細に付いては、DHCP 使う? を見て下さい。

 これでサーバとクライアントはもうばっちりですね。しかし・・。私の家では、よほどの事が無い限り DHCP サーバを利用する事は無いでしょう。ふふふ。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.