IPマスカレードのルータである blue にDHCPサーバを構築して、 内部ネットワークでDHCPを使用できるようにします。
この作業の前に、IPマスカレードが正常に動くことを確認してください。 正常に動いていることが確認できたら以下の作業に移ります。
DHCPサーバの構築 | ▲戻る | ||
IPマスカレードのルータである blue にDHCPサーバを構築して、 内部ネットワークでDHCPを使用できるようにします。
この作業の前に、IPマスカレードが正常に動くことを確認してください。 正常に動いていることが確認できたら以下の作業に移ります。
まずは dhcp パッケージをインストールしてください。
# apt-get install dhcp
(もちろん dselect など他の方法でインストールしてもらっても構いませんが)
[2002年度] dhcp のバージョンは 2.0pl4-2 でした。
パッケージ 「dhcp」の設定ファイルは /etc/dhcpd.conf です。
IPマスカレードでも行ったように、設定ファイルを編集することで DHCPを使用できるようにします。
まず、/etc/dhcpd.conf の編集を行いますが、 その前に、オリジナルのファイルのバックアップとして /etc/dhcpd.conf.org をとっておきましょう。
# cp /etc/dhcpd.conf /etc/dhcpd.conf.org
バックアップを取り終わったら、いったん /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 のクライアントの ネットワークパラメータに使用されることになります。
DHCP では動的にIPアドレスを振ることが出来ますが、 特定の PC に固定のIPアドレスを割り振ることも可能です。 PC の特定には MACアドレス(ネットワークデバイス固有の番号) を使用します。
[2002年度] 情報実験機 (電脳大飯店) には固定のIPアドレスを 割り振ってあります。
なお、ここに書いてあることはあくまで参考なので、 この段階で固定プライベートアドレスを設定する必要はありません。
例:
「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アドレスを設定してください。 (「ホスト名」に関しては、便宜上分かりやすいものをつけているだけで、 何を書き込んでも動作はします。)
詳細は/etc/dhcpd.conf.orgなどに書いてあります。
一度dhcpd(DHCPサーバとして機能するためのdaemon) を起動した後に 設定変更をするためには、 /etc/dhcpd.conf を書き換えた後に dhcpd を再起動する必要があります。 再起動の方法は あとで説明します。
/etc/init.d/dhcp の編集を行いますが、こちらもその前にオリジナルのファイルの バックアップを /etc/init.d/dhcp.orgとして取っておきます。
# cp /etc/init.d/dhcp /etc/init.d/dhcp.org
バックアップを取り終わったら、いったん /etc/init.d/dhcp ファイルの中身を 全部消して、以下のものを書き込んでください。
ここ に同じものを置いておくので, こちらを使っても良いでしょう.
#!/bin/sh # # Start or stop dhcpd daemon # # 2003/01/20 Morikawa Yasuhiro# # dhcpd が無ければ停止 test -x /usr/sbin/dhcpd || exit 0 # インターフェース (eth0 や eth1等) の指定 INTERFACES="eth1" DHCPDPID=/var/run/dhcpd.pid case "$1" in start) echo "Starting DHCP server: dhcp" start-stop-daemon --start --verbose --pidfile $DHCPDPID \ --exec /usr/sbin/dhcpd -- -cf /etc/dhcpd.conf $INTERFACES sleep 1 ;; stop) echo "Stopping DHCP server: dhcp" start-stop-daemon --stop --verbose --pidfile $DHCPDPID sleep 1 ;; restart) echo "Stopping DHCP server: dhcp" start-stop-daemon --stop --verbose --pidfile $DHCPDPID sleep 1 echo "Starting DHCP server: dhcp" start-stop-daemon --start --verbose --pidfile $DHCPDPID \ --exec /usr/sbin/dhcpd -- -cf /etc/dhcpd.conf $INTERFACES ;; *) echo "Usage: /etc/init.d/dhcp {start|stop|restart}" exit 1 esac exit 0
先ほど編集した、/etc/init.d/dhcpの各行の意味は次の通りです。
DHCPDPID
という変数に
/var/run/dhcp.pid
の中身を引用する。
(/var/run/dhcp.pid にはdhcpのdaemonの
プロセス番号が書き込まれている)
DHCPDPID
のプロセスがあることを確認し、
詳しい参考情報を出力する。(→次の行へ続く)
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.org はバックアップファイルなので このファイルの実行権限ははずしておいてください。
# chmod 755 /etc/init.d/dhcp
# chmod 644 /etc/init.d/dhcp.org
/etc/network/interfaces に次の一行を追加してください
up route add -host 255.255.255.255 dev eth1
その後, ネットワークの設定を再起動してください。
# /etc/init.d/networking restart
設定した dhcp を起動・停止させる方法はいくつかありますが、 まずは、先ほどの実行ファイルを使わずにそれを行ってみます。
まず、起動させるには以下のコマンドを入力します。 すると、その下の文字群が出てきて、dhcpdが起動されます。
# /usr/sbin/dhcpd -cf /etc/dhcpd.conf eth1 Internet Software Consortium DHCP Server 2.0pl4 Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved. Please contribute if you find this software useful. For info, please visit http://www.isc.org/dhcp-contrib.html Listening on LPF/eth1/00:90:cc:a2:f7:ba/192.168.0.0 Sending on LPF/eth1/00:90:cc:a2:f7:ba/192.168.0.0 Sending on Socket/fallback/fallback-net |
後ろの「-cf /etc/dhcpd.conf
」は設定ファイルを参照
することを指定しています。
また「eth1
」は、このDHCPサーバの機能を内部ネット用の
ネットワークカード(eth1)で稼動させることを指定しています。
停止させるには、まずdhcpdのプロセス番号を調べ、そのプロセスを 「kill」コマンドで停止させます。
# ps aux | grep dhcp root xxx 0.0 1.2 1596 808 ? S Jul13 0:00 /usr/sbin/dhcpd-2.2.x -cf /etc/dhcpd.conf eth1 # kill xxx (xxxはdhcpdのプロセス番号) |
これで、dhcpdは停止されます。
他にも、パソコン自体を再起動してしまう方法もあります。 ただし、少々時間はかかります。
# reboot
こうすると、自動的にdhcpdは停止、そして再起動されます。
今度は少々賢く、/etc/init.d/dhcp を使用して 起動・停止を行ってみます。
まず、起動させるには以下のコマンドを入力します。 すると、その下の文字群が出てきて、dhcpdが起動されます。
# /etc/init.d/dhcp start Internet Software Consortium DHCP Server 2.0pl4 Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved. Please contribute if you find this software useful. For info, please visit http://www.isc.org/dhcp-contrib.html Listening on LPF/eth1/00:90:cc:a2:f7:ba/192.168.0.0 Sending on LPF/eth1/00:90:cc:a2:f7:ba/192.168.0.0 Sending on Socket/fallback/fallback-net |
コマンドが何を意味するのかは /etc/init.d/dhcp の解説 を参照してください。 (実際にはさきほどの起動方法と変わらないことをやっています。)
/etc/init.d/dhcp でdhcpd のプロセス番号を自動的に探し出してくれるので 以下のコマンドでdhcpdを停止できます。
# /etc/init.d/dhcp stop Stopped process in pidfile `/var/run/dhcpd.pid' (pid xxx). (xxxはdhcpdのプロセス番号) |
これで、dhcpdは停止されます。
起動・停止をいっぺんに行うこともできます。
# /etc/init.d/dhcp restart Stopped process in pidfile `/var/run/dhcpd.pid' (pid xxx). Starting /usr/sbin/dhcpd... Internet Software Consortium DHCP Server 2.0pl4 Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved. Please contribute if you find this software useful. For info, please visit http://www.isc.org/dhcp-contrib.html Listening on LPF/eth1/00:90:cc:a2:f7:ba/192.168.0.0 Sending on LPF/eth1/00:90:cc:a2:f7:ba/192.168.0.0 Sending on Socket/fallback/fallback-net |
こうして、自動的にdhcpdは停止、そして再起動されます。
以上のどれかの方法を用い、dhcpdを起動させてください。 起動したらサーバ側の準備はOKです。次はクライアント側の 設定に移ります。
Debian GNU/Linux でDHCPを使用する際には、 pump コマンドを使用します。
pump コマンドは以下のように使用します。
# pump
pump パッケージがインストールされていない時は, apt-get コマンドなどでインストールを行ってください. (大抵はデフォルトでインストールされていますが)
ちゃんと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の設定は終了です。
ネットワークの設定を元に戻す場合には以下のコマンドを使用すると 良いでしょう。
# /etc/init.d/networking restart
Windows では Linux のように新たにインストールする必要はありません。 こちらの設定はIPマスカレードでおこなったのと同じ場所を書き換える事になります。
こんどはDHCP用に以下のように設定値を書き換えてください。
設定タグ | 詳細項目 | 答え方 |
---|---|---|
IP アドレス | IP アドレス | 「IPアドレスを自動的に取得」にチェックをつけてください。 |
ネットマスク | ||
ゲートウェイ | ゲートウェイ | 不要です。 |
DNS設定 | ホスト名 | 「DNSを使わない」にチェックをつけてください。 |
ドメイン名 | ||
DNS サーバ |
こちらでもDHCPでネットワークに接続できているのか、確認します。
「ファイル名を指定して実行」を選び, winipcfg と打鍵してください。 |
IPアドレスの欄の所に「 192.168.0.130 〜 192.168.0.254」 のいずれかであれば、DHCPでの接続ができています。
以上でDHCPの設定は終了です。
▲戻る | 作成日:2001/10/09(森川靖大) | Copyright © 2001 EPnetFan | ||