1.概要
aqua にDHCPサーバを構築して、各講義室でDHCPを使用できるようにします。
この作業の前に、IPマスカレードが正常に動くことを確認してください。 正常に動いていることが確認できたら以下の作業に移ります。
aqua にDHCPサーバを構築して、各講義室でDHCPを使用できるようにします。
この作業の前に、IPマスカレードが正常に動くことを確認してください。 正常に動いていることが確認できたら以下の作業に移ります。
まずはDHCPパッケージをインストールしてください。
# apt-get install dhcp
(もちろん dselect など他の方法でインストールしてもらっても構いませんが)
IPマスカレードでも行ったように、設定ファイルを編集することで DHCPを使用できるようにします。
まず、/etc/dhcpd.conf の編集を行いますが、その前に、オリジナルの ファイルのバックアップとして /etc/dhcpd.conf.bk をとっておきましょう。
# cp /etc/dhcpd.conf /etc/dhcpd.conf.bk
バックアップを取り終わったら、いったん /etc/dhcpd.conf ファイルの中身を 全部消して、以下のものを書き込んでください。
default-lease-time 6000;
max-lease-time 72000;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 133.87.45.70, 133.87.45.66, 133.87.1.11;
option domain-name "ep.sci.hokudai.ac.jp";
subnet 192.168.0.0 netmask 255.255.255.0 {
   range 192.168.0.130 192.168.0.254;
}
各行の意味は次の通りです。
DHCP では動的にIPアドレスを振ることが出来ますが、 特定の PC に固定のIPアドレスを割り振ることも可能です。 情報実験機(電脳大飯店)などには固定のIPアドレスを割り振ります。 なお、PC を特定するのには MACアドレス(ネットワークカード固有の番号) を使用します。
なお、ここに書いてあることはあくまで参考なので、 この段階で固定プライベートアドレスを設定する必要はありません。
例:
「00:90:cc:a2:f4:e8」という MACアドレスを持つ
情報実験機13番 に IPアドレス「192.168.0.113」
を割り振るためには以下の行を /etc/dhcpd.conf に書き加えます。
host joho13 {
   hardware ethernet 00:90:cc:a2:f4:e8;
   fixed-address 192.168.0.113;
}
書式は
host ホスト名 {
   hardware ethernet MACアドレス ;
   fixed-address IPアドレス ;
}
となっています。これは PC 一つ一つを個々に設定する必要があります。 また、動的アドレスと重ならないようにIPアドレスを設定してください。 (「ホスト名」に関しては、便宜上分かりやすいものをつけているだけで、 何を書き込んでも動作はします。)
一度dhcpd(DHCPサーバとして機能するためのdaemon) を起動した後に 設定変更をするためには /etc/dhcpd.conf を書き換える必要があります。 しかし、書き換えただけでは設定は反映されません。 反映するためには dhcpd を再起動する必要があります。 再起動の方法は こちら を見てください。
/etc/init.d/dhcp の編集を行いますが、こちらもその前にオリジナルのファイルの バックアップを /etc/init.d/dhcp.bkとして取っておきます。
# cp /etc/init.d/dhcp /etc/init.d/dhcp.bk
バックアップを取り終わったら、いったん /etc/init.d/dhcp ファイルの中身を 全部消して、以下のものを書き込んでください。
#!/bin/sh
# Start or stop dhcpd daemon
test -x /usr/sbin/dhcpd || exit 0
DHCPDPID=/var/run/dhcpd.pid
 case "$1" in
   start)
       start-stop-daemon --start --verbose --pidfile $DHCPDPID \
               --exec /usr/sbin/dhcpd -- -cf /etc/dhcpd.conf eth1
     ;;
   stop)
       start-stop-daemon --stop --verbose --pidfile $DHCPDPID
     ;;
   restart)
       start-stop-daemon --stop --verbose --pidfile $DHCPDPID
       sleep 2
       start-stop-daemon --start --verbose --pidfile $DHCPDPID \
               --exec /usr/sbin/dhcpd -- -cf /etc/dhcpd.conf eth1
     ;;
   *)
     echo "Usage: /etc/init.d/dhcp {start|stop|restart}"
     exit 1
 esac
 exit 0
先ほど編集した、/etc/init.d/dhcpの各行の意味は次の通りです。 (空白行は飛ばして数えています)
/usr/sbin/dhcpd というファイルが無ければ、
    この段階で実行中止
    DHCPDPIDという変数に/var/run/dhcp.pid
    の中身を引用する。
    (/var/run/dhcp.pid にはdhcpのdaemonの
    プロセス番号が書き込まれている)
    DHCPDPIDのプロセスがあることを確認し、
    詳しい参考情報を出力する。(→次の行へ続く)
    /usr/sbin/dhcpdを実行する。
    なお、実行の際には、設定ファイルの/etc/dhcpd.conf
    を読み込む。また、
    
    内部ネット用のネットワークカード(eth1)でdhcpdを動かす。
    
    DHCPDPIDのプロセスを停止させる。
    詳細な参考情報も出力される。
    Usage: /etc/init.d/dhcp {start|stop|restart}」と出力
    なお、このファイルに書いてある内容の詳細については start-stop-daemon や dhcpd の man を見るか、 関連書籍を参考にするなどして下さい。
$ man start-stop-daemon![]()
$ man dhcpd
今編集した /etc/init.d/dhcp は実行ファイルです。 これは、dhcpdというDHCPサーバとしての役割を果たす daemon を動かすのに使用するファイルなので、 パーミッションを調べて実行権限があるかどうか調べてください。 もしなければ、実行権限を付けてください。 また、/etc/init.d/dhcp.bk はバックアップファイルなので このファイルの実行権限ははずしておいてください。
# chmod 755 /etc/init.d/dhcp
# chmod 644 /etc/init.d/dhcp.bk
/etc/network/interfaces に次の一行を追加してください
route add -host 255.255.255.255 dev eth1
設定した dhcp を起動・停止させる方法はいくつかありますが、 まずは、先ほどの実行ファイルを使わずにそれを行ってみます。
まず、起動させるには以下のコマンドを入力します。 すると、その下の文字群が出てきて、dhcpdが起動されます。
# /usr/sbin/dhcpd -cf /etc/dhcpd.conf eth1  | 
後ろの「-cf /etc/dhcpd.conf」は設定ファイルを参照
   することを指定しています。
   また「eth1」は、このDHCPサーバの機能を内部ネット用の
   ネットワークカード(eth1)で稼動させることを指定しています。
停止させるには、まずdhcpdのプロセス番号を調べ、そのプロセスを 「kill」コマンドで停止させます。
# ps aux | grep dhcp  | 
これで、dhcpdは停止されます。
他にも、パソコン自体を再起動してしまう方法もあります。 ただし、少々時間はかかります。
# reboot
こうすると、自動的にdhcpdは停止、そして再起動されます。
今度は少々賢く、/etc/init.d/dhcp を使用して起動・停止を行ってみます。
まず、起動させるには以下のコマンドを入力します。 すると、その下の文字群が出てきて、dhcpdが起動されます。
# /etc/init.d/dhcp start  | 
コマンドが何を意味するのかは /etc/init.d/dhcp の解説 を参照してください。 (実際にはさきほどの起動方法と変わらないことをやっています。)
/etc/init.d/dhcp でdhcpd のプロセス番号を自動的に探し出してくれるので 以下のコマンドでdhcpdを停止できます。
# /etc/init.d/dhcp stop  | 
これで、dhcpdは停止されます。
起動・停止をいっぺんに行うこともできます。
# /etc/init.d/dhcp restart  | 
こうして、自動的にdhcpdは停止、そして再起動されます。
以上のどれかの方法を用い、dhcpdを起動させてください。 起動したらサーバ側の準備はOKです。次はクライアント側の 設定に移ります。
Debian GNU/Linux でDHCPを使用する際には、 クライアント側もそれに応じたパッケージをインストールする必要があります。
DHCPのクライアントになるにはクライアント側もそのための パッケージ dhcpcd をインストールする必要があります。
# apt-get install dhcpcd
このパッケージはインストールと同時に設定もしてくれるはずなので、 インストールが終了したらケーブルを接続して再起動してください。 (ケーブルの接続はIPマスカレードのときと同じで構いません。)
再起動を確認したらちゃんとDHCPで動いているのか確認してみましょう。
$ /sbin/ifconfig -a
こうすると、
eth0      Link encap:Ethernet  HWaddr 00:90:CC:A2:F7:BA
          inet addr:192.168.0.130  Bcast:192.168.0.255  Mask:255.255.255.0
・・・・・
 | 
上のような表示がずらずら出てくると思います。 この中で問題なのが「 inet addr 」です。これはそのパソコンに割り振られた IPアドレスです。これが「 192.168.0.130 〜 192.168.0.254」のいずれかとなっていればOKです。 ルータ側の /etc/dhcpd.conf の編集 で 「192.168.0.130から192.168.0.254までのIPアドレスを貸し出す 」としましたよね?
以上でDHCPの設定は終了です。
Windows では Linux のように新たにインストールする必要はありません。 こちらの設定はIPマスカレードでおこなったのと同じ場所を書き換える事になります。
こんどはDHCP用に以下のように設定値を書き換えてください。
| 設定タグ | 詳細項目 | 答え方 | 
|---|---|---|
| IP アドレス | IP アドレス | 「IPアドレスを自動的に取得」にチェックをつけてください。 | 
| ネットマスク | ||
| ゲートウェイ | ゲートウェイ | 不要です。 | 
| DNS設定 | ホスト名 | 「DNSを使わない」にチェックをつけてください。 | 
| ドメイン名 | ||
| DNS サーバ | 
こちらでもDHCPでネットワークに接続できているのか、確認します。
 
 | 
「ファイル名を指定して実行」を選び, winipcfg と打鍵してください。 | 
IPアドレスの欄の所に「 192.168.0.130 〜 192.168.0.254」 のいずれかであれば、DHCPでの接続ができています。
以上でDHCPの設定は終了です。
| 最終更新日: 2001/09/02(森川靖大) | Copyright © 2001 EPnetFan |