戻る | 進む (tftpd) | 進む (nfs) | 目次

Diskless NetBSD HOW-TO dhcpd サーバーの設定

The Internet Dynamic Host Configuration Protocol (DHCP: 動的ホスト構成プロトコル) は、一部のワークステーションの ブート ROM が、 IP アドレスとブートローダーのファイル名を得るために使われています。 dhcpd は大抵はスタンドアローンのデーモンとして動作します。 多くの DHCP サーバーは BOOTP リクエストを処理します。 bootpd に問題がある場合は、かわりに dhcpd を使ってサービスできます。 dhcpd の実行の妨げになるので、 bootpd がシステム上で動作していないようにしてください。

通常の dhcp パッケージはふたつあります。 ISC によるものと CMU によるものです。 NetBSD には ISC の実装が附属しています。 これは活発にサポートされており、多くの種類の OS で動作しているからです。 多くの OS には、このサーバーがインストール済で附属してきます。

/etc/dhcpd.conf ファイルは、各プラットフォームで共通の 標準的な書式を持ちます。この書式はかなり融通がききます。 ここでは、アドレスが固定 (あらかじめ決め打ち) されたクライアント にサービスするだけの単純なものを示します。 ISC dhcpd の設定の より詳しい理解のためには、マニュアルページをお読みください: dhcpd(8)dhcpd.conf(5)dhcpd-options(5)。 また、 NetBSD DHCP HOW-TO を読むのもよいかもしれません。 ISC DHCP の公式 web サイトを見て回ってもよいでしょう。

次の段階のブートロードに tftp を使う場合の next-server ディレクティブの使用には注意してください。クライアントは、この next-servertftp および nfs の両方を 扱うことを仮定しています。

dhcpd.conf の見本にはコメントが 含まれています。これを /etc ディレクトリーに保存して、 あなたのサイト用にアドレスを編集するのがよいでしょう。 ほとんどのクライアントにとっては、このファイル中のオプションが すべて必要なわけではありませんが、そのまま残しておいて、 問題がある場合には削除するというのが一番よいでしょう。

NetBSD での dhcpd の設定
ISC DHCPD での dhcpd の設定 (NetBSD、 OpenBSD、 FreeBSD、 Mac OS X、 Darwin、 Linux、 SunOS、 Solaris、 NEXTSTEP、 HP-UX、 BSD/OS、 OSF/1、 Ultrix)
CMU DHCPD での dhcpd の設定 (古いバージョンの SunOS、 Solaris、 HP-UX、 IRIX、 AIX)
Solaris での dhcpd の設定

[もし、これら以外のプラットフォームについて詳しくご存知なら、 ぜひお知らせください]

もしあなたの OS がここに挙がっていなければ、 下記のパッケージのいずれかをソースからコンパイルしてみてください:


NetBSD

あなたが自分用のカーネルを構築している場合、コンフィグファイルに 下記があるか確認してください:
pseudo-device   bpfilter       4
NetBSD の配布に含まれる GENERIC カーネルは、これを含んでいます。

  1. # touch /var/db/dhcpd.leases
    リース情報を保持するためのファイルがないと、 dhcpd は文句を言います。

  2. /etc/dhcpd.conf がまだない場合、 dhcpd.conf のサンプルをインストールして、 あなたのサイトに合わせて修正します。

  3. # ps -aux | grep dhcpd
    このプロセスを kill します。 kill -HUP しても、 dhcpd 2 は設定ファイルを読み直さない ことに注意してください。

  4. # /usr/sbin/dhcpd -d -f

これで dhcpd がデバッグモードで動きます。 dhcpd がリクエストを受け取ると、 下記のようなメッセージが表示されます:

BOOTREQUEST from CC:CC:CC:CC:CC:CC via le0 (non-rfc1048)
BOOTREPLY for 192.168.1.10 to client.test.net
(CC:CC:CC:CC:CC:CC) via le0
DHCPDISCOVER from CC:CC:CC:CC:CC:CC via le0
DHCPOFFER on 192.168.1.10 to CC:CC:CC:CC:CC:CC via le0
DHCPREQUEST for 192.168.1.10 from CC:CC:CC:CC:CC:CC via le0
DHCPACK on 192.168.1.10 to CC:CC:CC:CC:CC:CC via le0
ブートローダーは何も反応を返さないのが普通です。しかし、カーネルが ルートファイルシステムを探すときには、以下のメッセージを出力します:
boot device: <unknown>
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP server: 0xC0A80105
nfs_boot: my_name=client
nfs_boot: my_domain=test.net
nfs_boot: my_addr=0xC0A8010A
nfs_boot: my_mask=0xffffff00
nfs_boot: gateway=0xC0A80101
root on :/export/client/root

tftpd または nfs の設定に進む


ISC DHCPD のコンパイルとインストール

ISC DHCPD は下記の各プラットフォームに対応しています:
NetBSD、 OpenBSD、 FreeBSD、 Mac OS X、 Darwin、 Linux、 SunOS、 Solaris、 NEXTSTEP、 HP-UX、 BSD/OS、 OSF/1、 そして Ultrix

いくつかのプラットフォームでは、(NetBSD、 OpenBSD、 FreeBSD、 Linux と同様に) ISC DHCPD がインストール済です。 システムにインストール済みかどうか確かめ、インストール済みの場合は、 一から新しいバージョンのものをコンパイルするのではなく、 附属しているバージョンを使うべきです。設定の手順は事実上同じであり、 設定ファイルも同じです。

  1. dhcpd-3.0.1 以降を ISC.org からダウンロードします。

  2. README ファイルの指針に従い、お使いのプラットフォームの制限について 承知しておいてください。この手順は、簡単にいうと、次のとおりです:
    # ./configure
    # make
    # make install
    コンパイルでエラーが出る場合、 cc の実体が gcc であるか確かめてください。多くの商用 unix には、欠陥品の C コンパイラーが 附属しているからです。

  3. # touch /var/db/dhcpd.leases
    リース情報を保持するファイルが存在しないと、 dhcpd は文句を言います。 プラットフォームによって、 dhcpd は異なる場所でこのリースファイルを 探します。

  4. /etc/dhcpd.conf がまだない場合、 dhcpd.conf のサンプルをインストールして、 あなたのサイトに合わせて修正します。

  5. # ps -aux | grep dhcpd
    このプロセスを kill します。 kill -HUP しても、 dhcpd 2 は設定ファイルを読み直さない ことに注意してください。

  6. # /usr/sbin/dhcpd -d -f
    または make install によって dhcpd が置かれた場所で。

これで dhcpd がデバッグモードで動きます。 dhcpd がリクエストを受け取ると、 下記のようなメッセージが表示されます:

BOOTREQUEST from CC:CC:CC:CC:CC:CC via le0 (non-rfc1048)
BOOTREPLY for 192.168.1.10 to client.test.net
(CC:CC:CC:CC:CC:CC) via le0
DHCPDISCOVER from CC:CC:CC:CC:CC:CC via le0
DHCPOFFER on 192.168.1.10 to CC:CC:CC:CC:CC:CC via le0
DHCPREQUEST for 192.168.1.10 from CC:CC:CC:CC:CC:CC via le0
DHCPACK on 192.168.1.10 to CC:CC:CC:CC:CC:CC via le0
ブートローダーは何も反応を返さないのが普通です。しかし、カーネルが ルートファイルシステムを探すときに、以下のメッセージを出力します:
boot device: <unknown>
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP server: 0xC0A80105
nfs_boot: my_name=client
nfs_boot: my_domain=test.net
nfs_boot: my_addr=0xC0A8010A
nfs_boot: my_mask=0xffffff00
nfs_boot: gateway=0xC0A80101
root on :/export/client/root

tftpd または nfs の設定に進む


CMU's DHCPD

CMU dhcp は、古いバージョンの SunOS、 Solaris、 IRIX、 HPUX、 AIX で動作することがわかっています。筆者は Solaris 2.6 と HP-UX 10.20 ではコンパイルに失敗しました。

  1. dhcp-3.3.7.tar.gz をダウンロードし、それ用のディレクトリーに展開します。

  2. # ./configure

  3. # make

  4. # make install

  5. 設定に関しては独力でお願いします。

ブートローダーは何も反応を返さないのが普通です。しかし、カーネルが ルートファイルシステムを探すときに、以下のメッセージを出力します:

boot device: <unknown>
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP server: 0xC0A80105
nfs_boot: my_name=client
nfs_boot: my_domain=test.net
nfs_boot: my_addr=0xC0A8010A
nfs_boot: my_mask=0xffffff00
nfs_boot: gateway=0xC0A80101
root on :/export/client/root

tftpd または nfs の設定に進む


Solaris

Solaris 2.6 以降には標準で dhcpd が含まれています。 それより前のバージョンでは、dhcpd をソースからコンパイルする必要があります。

  1. 準備中。
    Linux on the Sun JavaStation NC HOWTO の指針に従ってください。

tftpd または nfs の設定に進む


戻る | 進む (tftpd) | 進む (nfs) | 目次
NetBSD ホームページ
NetBSD Documentation top level

(連絡先 - 英語, 日本語: www@jp.NetBSD.org)
$NetBSD: dhcpd.html,v 1.3 2007/08/01 15:36:01 kano Exp $
Copyright © 1998-2004 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.