FreeBSD 4.5 + DHCPサーバとクライアント
はじめに
DHCP サーバと、DHCP クライアントをインストールしてみます。
DHCPでリースするIPアドレスは、DNSに登録する方法にしました。参考にしたページは、こちら。 FreeBSD QandA 393(http://www.jp.freebsd.org/QandA/HTML/393.html)
DNS にIPアドレスを登録
DNS に、DHCP でリースするIPアドレスを追加します。
eden# cd /etc/namedb
eden# pwd
/etc/namedb
eden# ls
PROTO.localhost.rev localhost.zone named.conf.sample
hayagui.rev make-localhost named.root
hayagui.zone named.conf named.root.org
localhost.rev named.conf.org
正引きの zone ファイルを開いて追加します。シリアルを更新するのを忘れないように。
# vi hayagui.zone
dhcp15 IN A 192.168.0.15
dhcp16 IN A 192.168.0.16
dhcp17 IN A 192.168.0.17
dhcp18 IN A 192.168.0.18
dhcp19 IN A 192.168.0.19
次に、逆引きの rev ファイルを開いて追加します。シリアルを更新するのを忘れないように。
# vi hayagui.rev
15 IN PTR dhcp15.hayagui.com.
16 IN PTR dhcp16.hayagui.com.
17 IN PTR dhcp17.hayagui.com.
18 IN PTR dhcp18.hayagui.com.
19 IN PTR dhcp19.hayagui.com.
DNS をリスタートします。
eden# /usr/sbin/ndc restart
new pid is 319
eden#
これで、追加は終わり。
確認しましょう。
eden# nslookup
Default Server: eden.hayagui.com
Address: 192.168.0.8
> 192.168.0.15
Server: eden.hayagui.com
Address: 192.168.0.8
Name: dhcp15.hayagui.com
Address: 192.168.0.15
> dhcp15
Server: eden.hayagui.com
Address: 192.168.0.8
Name: dhcp15.hayagui.com
Address: 192.168.0.15
>
正しく引けていますね。
DHCPサーバをインストール
/stand/sysinstall で、isc-dhcp3-3.0.1.r4 をインストール。
/usr/local/etc/dhcpd.conf.sample を dhcpd.conf としてコピーします。
eden# cd /usr/local/etc
eden# pwd
/usr/local/etc
eden# ls dhcpd.conf.sample
dhcpd.conf.sample
eden# cp dhcpd.conf.sample dhcpd.conf
このファイルを開いて、以下のように編集します。
option domain-name-servers eden.hayagui.com;
option domain-name "hayagui.com";
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.15 192.168.0.19;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
}
次に、リース情報ログを書くファイルを作成します。
eden# touch /var/db/dhcpd.leases
起動スクリプトファイルを作成します。
eden# cd /usr/local/etc/rc.d
eden# pwd
/usr/local/etc/rc.d
eden# ls
apache.sh samba.sh.sample webmin.sh
isc-dhcpd.sh.sample slapd.sh.sample
isc-dhcrelay.sh.sample snmpd.sh
eden#
いろいろありますが、isc-dhcpd.sh.sample を isc-dhcpd.sh にコピーします。
eden# cp isc-dhcpd.sh.sample isc-dhcpd.sh
起動させるには、このシェルスクリプトを使用します。
eden# /usr/local/etc/rc.d/isc-dhcpd.sh start
クライアントの設定
FreeBSD 4.5R のPCを DHCP クライアントにする方法を記します。
/etc/rc.conf を開いて、使用しているデバイスの設定に dhcp という文字列に設定します。
mico# cat rc.conf
#ifconfig_fxp0="inet 192.168.0.7 netmask 255.255.255.0"
ifconfig_fxp0="dhcp"
再起動するとIPアドレスを取得します。
> ifconfig
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::220:e0ff:fe60:1be6%fxp0 prefixlen 64 scopeid 0x1
inet 192.168.0.19 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:20:e0:60:1b:e6
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010 mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8002 mtu 1500
IPアドレスがこのように設定されても、ローカルに設定されているホスト名はDNSで登録されている名前と異なることになります。
> hostname
mico.hayagui.com
IPアドレスがリースされると、DHCPサーバの /var/db/dhcpd.leases には、以下のように記録されます。
eden# cd /var/db
eden# ls
dhcpd.leases ipf mountdtab port.mkversion
dhcpd.leases~ locate.database pkg
eden# cat dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.1rc4
lease 192.168.0.19 {
starts 2 2002/09/10 13:57:29;
ends 2 2002/09/10 14:07:29;
binding state active;
next binding state free;
hardware ethernet 00:20:e0:60:1b:e6;
}
MACアドレスを判断して指定したIPアドレスを割り当てる
DHCPサーバに対してIPアドレスのリースを要求したホストのMACアドレスを判断して、
指定したIPアドレスを割り当てる方法を説明します。
/usr/local/etc/dhcpd.conf を開いて、以下のように追加します。
host dhcp15 {
hardware ethernet 00:20:e0:60:1b:e6;
fixed-address 192.168.0.15;
}
DHCP を再起動します。
eden# /usr/local/etc/rc.d/isc-dhcpd.sh restart
Internet Software Consortium DHCP Server V3.0.1rc4
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 1 leases to leases file.
Listening on BPF/sis0/00:a0:cc:79:ac:8a/192.168.0.0/24
Sending on BPF/sis0/00:a0:cc:79:ac:8a/192.168.0.0/24
Sending on Socket/fallback/fallback-net
dhcpdeden#
クライアントが再起動すると、割り当てたIPアドレスを取得していることがわかります。
> ifconfig
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::220:e0ff:fe60:1be6%fxp0 prefixlen 64 scopeid 0x1
inet 192.168.0.15 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:20:e0:60:1b:e6
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500
>
> hostname
mico.hayagui.com
プリントサーバなどに DHCP があるのは、この設定を使うのかな?
戻る
|