DHCPは『Dynamic Host Configuration Protocol』の略で、クライアントにIPアドレスなどを自動的に割り振ってくれるものです。
クライアント側のネットワーク設定が簡単になるため、複数のネットワークに接続するクライアントマシンなどでは、DHCPサーバがあると非常に便利です。ローカルネットワークにノートマシンを持ち込む場合などに重宝するでしょう。
また、DHCPを利用している場合、サーバ側で設定を変更するだけでクライアント側のネットワーク設定も変更できるというメリットもあります。
DHCPサーバには、ISC版のdhcpdを使います。
以下のソフトをダウンロードし、/usr/local/pubに格納します。
ftp://ftp.isc.org/isc/dhcp/ dhcp-2.0pl5.tar.gz 2000/09/06 300KB |
以下の手順で、DHCPサーバをインストールします。
unix# cd /usr/local/src/ unix# gzip -cd ../pub/dhcp-2.0pl5.tar.gz | tar -xvf - unix# cd dhcp-2.0pl5 unix# ./configure unix# make unix# make install |
dhcpd.confを書き換えたり、routeを設定したりします。
dhcpd.confをetcにコピーして書きかえます。
unix# cp server/dhcpd.conf /etc/. unix# vi /etc/dhcpd.conf (cp /conf/dhcpd/dhcpd.conf /etc/.) |
dhcpd.confの内容 |
---|
# dhcpd.conf # # Configuration file for ISC dhcpd # option domain-name "ash.jp"; default-lease-time 600; max-lease-time 7200; subnet 10.0.1.1 netmask 255.255.255.0 { range 10.0.1.101 10.0.1.120; option domain-name-servers 10.0.1.1; option broadcast-address 10.0.1.255; option routers 10.0.1.254; } |
FreeBSDでは、起動時に/usr/local/etc/rc.d配下のシェルを動作させるので、dhcpd.shを作成します。 ネットワークが複数ある場合、使用するインターフェイスを設定します。 dhcpd.leasesがない場合は、自動的に作成するようにしておきます。
unix# vi /usr/local/etc/rc.d/dhcpd.sh (cp /conf/dhcpd/dhcpd.sh /usr/local/etc/rc.d/.) unix# chmod +x /usr/local/etc/rc.d/dhcpd.sh |
dhcpd.shの内容 |
---|
#!/bin/sh case "$1" in start) touch /var/db/dhcpd.leases /usr/sbin/dhcpd fxp0 /sbin/route add -host 255.255.255.255 -iface fxp0 ;; stop) /sbin/route delete -host 255.255.255.255 -iface fxp0 pid=`ps -acx | grep " dhcpd" | awk '{print $1}'` kill ${pid} ;; *) echo "Usage: `basename $0` {start|stop}" >&2 ;; esac exit 0 |
DHCPサーバを起動して動作を確認します。
dhcpdを起動します。 dhcpd.shを起動するときは、フルパスで指定する必要があります。
unix# /usr/local/etc/rc.d/dhcpd.sh start |
Windowsで、「コントロールパネル」>「ネットワーク」を開き、「TCP/IP」の「プロパティ」を開きます。
そこで、IPを自動取得にチェックします。また、デフォルトゲートウェイや、DNSの設定は空白にします。
再起動して、「スタートメニュー」の「ファイル名を指定して実行」で「winipcfg」と入力して、状態を確認します。
参考までに、DHCPサーバとクライアント間で、ネットワークアドレスを割り当てるときの、DHCPプロトコルのデータの流れは、以下のようになります。
詳しくは、RFC-2131で定義されています。
Client Server ------------------------ ------------------------- DHCPサーバーの問合せ DHCPDISCOVER ---> 応答 <--- DHCPOFFER アドレスの割当て要求 DHCPREQUEST ---> 割り当て結果 <--- DHCPACK /DHCPNAK アドレスの開放 DHCPRELEASE ---> |