[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

パッケージ: DHCPD (ISC-DHCPD)

特に指示がない場合は、つねにインストールして下さい。

Important: チェックポイント

□ ターゲット     /usr/pkgsrc/net/isc-dhcpd4
□ /etc/rc.conf    isc_dhcpd=yes
            dhcpd=no
□ 設定ファイル    /usr/pkg/etc/dhcp/dhcpd.conf
□ ポート番号     67/udp
□ 動作の確認     psとってdhcpdが動いている。67/udp が開いている。
            
            設定した内容と、実際にDHCPを配っているネットワークが
            本当にあっているか?

注意: # や % の意味が分からない人は 用語 を参照してください。

インストール

% su root
# cd /usr/pkgsrc/net/isc-dhcpd4
# make install

Caution

2011/04 以降: make packege ではなく make install を使ってください。 事情の詳細は the Section called 2011 春: make install および make package の動作が変わる 節を参照してください。

/etc/rc.d も入れ換えて

% su root
# cp -p /usr/pkg/share/examples/rc.d/isc_dhcpd /etc/rc.d

/etc/rc.conf に isc_dhcpd=yes を書いてください。 また、OS 本体に入っている dhcpd (同じく ISC-DHCPD)が動かないよう、 念のため dhcpd=no と書いておきます。

[/etc/rc.conf]

isc_dhcpd=yes
dhcpd=no

複数のネットワークインターフェイスがある PC (たとえば nfgw)では、 オプションでインターフェイスも指定してください。 たとえば fxp3 インターフェイスが担当するネットワークに DHCP をくばる場合、 次のようにします。

[/etc/rc.conf]

isc_dhcpd=yes	isc_dhcpd_flags="fxp3"
dhcpd=no

あとは /usr/pkg/etc/dhcp/dhcpd.conf を編集し、

# /etc/rc.d/isc_dhcpd start
してください。

dhcpd の設定: /usr/pkg/etc/dhcp/dhcpd.conf

こんなかんじ。 オプション名は見て分かるとおり

[/usr/pkg/etc/dhcp/dhcpd.conf]

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

authoritative;

subnet 192.168.10.0 netmask 255.255.255.0 {
	range 192.168.10.100 192.168.10.199;
	option routers 192.168.10.1;
	option domain-name-servers 192.168.10.2;
	option domain-name "example.org";
	option broadcast-address 192.168.10.255;
	option subnet-mask 255.255.255.0;
}
注: オプション名を見て意味が想像できない人は、 ネットワークの設定を一からやりなおしからTRYしましょう。 そんなあなたが設定したら危ないです。

動作確認

psとって dhcpd が動いていること。67/udp が開いていること。 これらが確認できたら、 実際に何か PC をつないで DHCP がもらえることを確認してください。

設定例: 固定 IP アドレス

PC の MAC アドレス「 00:1d:69:74:89:00 」に対しては同じ設定を与えます。 次の設定を /usr/pkg/etc/dhcp/dhcpd.conf に追加してください (もちろん IP アドレス等は適当に書き換えてください)。

host mynotepc {
        hardware ethernet 00:1d:69:74:89:00;
        fixed-address mynotepc.example.org;

	option routers             192.168.10.1;
	option subnet-mask         255.255.255.0;
	option broadcast-address   192.168.10.255;

	option domain-name-servers 192.168.10.1;
	option domain-name "example.org";

        option host-name "mynotepc.example.org";
}

「hardware ethernet 00:1d:69:74:89:00;」と指定するところがポイントで、 それ以外は普通のクライアントの場合とほぼ同じです。 この例では「fixed-address mynotepc.example.org; 」としてあり、 与える IP アドレスを DNS で取得しています。 ついでに「option host-name "mynotepc.example.org";」でホスト名も与えています (相手がそれを採用してくれるかどうかはわかりませんが)。

なお、fixed-address の引数は IP アドレスでもかまいません。

[/usr/pkg/etc/dhcp/dhcpd.conf]

host mynotepc {
        hardware ethernet 00:1d:69:74:89:00;
        fixed-address 192.168.10.200;

	option routers             192.168.10.1;
	option subnet-mask         255.255.255.0;
	option broadcast-address   192.168.10.255;

	option domain-name-servers 192.168.10.1;
	option domain-name "example.org";
}

設定例: PXE ブート

NetBSD を PXE ブートさせるための設定です。

注意: 設定は三点セット(DHCP, TFTP and NFS)なので、 DHCP 以外に tftpd と NFS サーバの設定も必要です。

(1) 特定の MAC アドレスの PC に対してのみ PXEブートを許す。

host nbdiskless {
        hardware ethernet 00:9c:d4:2b:69:e1;
        fixed-address nbdiskless.example.org;

        option routers             192.168.10.1;
        option subnet-mask         255.255.255.0;
        option broadcast-address   192.168.10.255;

        option domain-name-servers 192.168.10.2;
        option domain-name "example.org";

        option host-name "nbdiskless.example.org";

        # PXE boot stage1
        filename "pxeboot_ia32.bin";

        # PXE boot stage2 (XXX here we assume NFS server = 192.168.10.10)
        next-server 192.168.10.10;
        option root-path "/var/diskless/client/root";
}

(2) だれにでも PXEブートを許すには、単に普通の例(最初の例)に PXE ブートの設定を。 ただし、単純に全クライアントで PXEブートをやってしまうと問題があります (演習問題: なぜか?)ので、まぁ試験目的程度とおもってください。

[/usr/pkg/etc/dhcp/dhcpd.conf]

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

authoritative;

subnet 192.168.10.0 netmask 255.255.255.0 {
	range 192.168.10.100 192.168.10.199;
	option routers 192.168.10.1;
	option domain-name-servers 192.168.10.2;
	option domain-name "example.org";
	option broadcast-address 192.168.10.255;
	option subnet-mask 255.255.255.0;

        # PXE boot stage1
        filename "pxeboot_ia32.bin";

        # PXE boot stage2 (XXX here we assume NFS server = 192.168.10.10)
        next-server 192.168.10.10;
        option root-path "/var/diskless/client/root";
}

演習問題

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >