内部ネットワークで DHCP を使用できるようにします。 2006 年度までは DHCP サーバとルータに同一マシンを用いていましたが、 NAT サーバの負担が大きく動作が不安定になったため、2007 年度に 新たにルータ専用機 lemon を導入することになりました。
DHCPサーバの構築 | ▲戻る |
内部ネットワークで DHCP を使用できるようにします。 2006 年度までは DHCP サーバとルータに同一マシンを用いていましたが、 NAT サーバの負担が大きく動作が不安定になったため、2007 年度に 新たにルータ専用機 lemon を導入することになりました。
まずは dhcp パッケージをインストールしてください。
# apt-get install dhcp![]()
(もちろん dselect など他の方法でインストールしてもらっても構いませんが)
[2006年度] dhcp のバージョンは 2.0pl5-19.1sarge2 でした。
パッケージ 「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.16.255;
option routers 192.168.16.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.16.0 netmask 255.255.255.0 {
range 192.168.16.130 192.168.16.254;
}
各行の意味は次の通りです。
これらのパラメータは DHCP のクライアントの ネットワークパラメータに使用されることになります。
DHCP では動的にIPアドレスを振ることが出来ますが、 特定の PC に固定のIPアドレスを割り振ることも可能です。 PC の特定には MACアドレス(ネットワークデバイス固有の番号) を使用します。
[2002年度] 情報実験機 (電脳大飯店) には固定のIPアドレスを 割り振ってあります。
なお、ここに書いてあることはあくまで参考なので、 この段階で固定プライベートアドレスを設定する必要はありません。
例:
「00:90:cc:a2:f4:e8
」という MACアドレスを持つ
情報実験機13番 に IPアドレス「192.168.16.113
」
を割り振るためには以下の行を /etc/dhcpd.conf に書き加えます。
host joho13 { hardware ethernet 00:90:cc:a2:f4:e8; fixed-address 192.168.16.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 |
後ろの「-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を使用する際には、 pump コマンドを使用します。
pump コマンドは以下のように使用します。
# pump![]()
pump パッケージがインストールされていない時は、 apt-get コマンドなどでインストールを行ってください. (大抵はデフォルトでインストールされていますが)
ちゃんとDHCPで動いているのか確認してみましょう。
$ /sbin/ifconfig -a |
上のような表示がずらずら出てくると思います。 この中で問題なのが「 inet addr 」です。これはそのパソコンに割り振られた IPアドレスです。これが「 192.168.16.130 〜 192.168.16.254」のいずれかとなっていればOKです。 ルータ側の /etc/dhcpd.conf の編集 で 「192.168.16.130から192.168.16.254までのIPアドレスを貸し出す 」としましたよね?
以上でDHCPの設定は終了です。
ネットワークの設定を元に戻す場合には以下のコマンドを使用すると 良いでしょう。
# /etc/init.d/networking restart![]()
Windows では Linux のように新たにインストールする必要はありません。 こちらの設定はIPマスカレードでおこなったのと同じ場所を書き換える事になります。
こんどはDHCP用に以下のように設定値を書き換えてください。
設定タグ | 詳細項目 | 答え方 |
---|---|---|
IP アドレス | IP アドレス | 「IPアドレスを自動的に取得」にチェックをつけてください。 |
ネットマスク | ||
ゲートウェイ | ゲートウェイ | 不要です。 |
DNS設定 | ホスト名 | 「DNSを使わない」にチェックをつけてください。 |
ドメイン名 | ||
DNS サーバ |
こちらでもDHCPでネットワークに接続できているのか、確認します。
![]() |
「ファイル名を指定して実行」を選び、winipcfg と打鍵してください。 |
IPアドレスの欄の所に「 192.168.16.130 〜 192.168.16.254」 のいずれかであれば、DHCPでの接続ができています。
Windows NT系 では Linux のように新たにインストールする必要はありません。 こちらの設定はIPマスカレードでおこなったのと同じ場所を書き換える事になります。
こんどはDHCP用に以下のように設定値を書き換えてください。
設定項目 | 答え方 |
---|---|
IP アドレス | 「IP アドレスを自動的に取得」にチェックを付ける |
サブネットマスク | |
デフォルトゲートウェイ | |
DNS | 「DNS サーバのアドレスを自動的に取得する」にチェックを付ける |
こちらでもDHCPでネットワークに接続できているのか、確認します。
![]() |
|
「IP Address」に「 192.168.16.130 〜 192.168.16.254」 とでていれば、DHCPでの接続ができています。
以上でDHCPの設定は終了です。
最後に、 gate-toroku-system をインストールし、dhcpd.conf が 自動生成されるようにする。
基本的にインストールは gate 登録システムインストールの手引き に従って行えばよい.
[ep local] 地球惑星専攻のサーバにおいては上記の手引よりも 専攻サーバへの gate のインストール が役に立つであろう。
ただ、gate システムの設定ファイルである /etc/gate.conf を編集するに あたって dhcpd.conf に関係する部分だけ抜き出して説明する。
[2004/03/08] 今のところ、デフォルトの gate.conf のままで 使用できるはずである。
gate-toroku-system による DHCP の自動設定を有効にするには、 $DHCP_ENABLE を 1 にする。 なお、無効にしたい場合には 0 にする。 0 にした場合には以下の全ての DHCP に関する設定は無効になる。
$DHCP_ENABLE = 1;
DHCP サーバのホスト名を $DHCP_SERVER で指定する。
$DHCP_SERVER = 'blue.ep.sci.hokudai.ac.jp';
DHCP サーバの設定ファイルを $DHCPD_FILE で指定する。
$DHCPD_FILE = "$ETCDIR/dhcpd.conf";
DHCP サーバで配布するネットワークパラメータを指定する。
$DHCP_ROUTER = '192.168.16.1'; # ルータ (ゲートウェイ) $DHCP_NETMASK = '255.255.255.0'; # ネットマスク $DHCP_NETWORKADDRESS = '192.168.16.0'; # ネットワークアドレス $DHCP_BROADCAST = '192.168.16.255'; # ブロードキャストアドレス $DHCP_DOMAIN = 'ep.sci.hokudai.ac.jp'; # ドメイン名 @DHCP_DNS_SERVERS = ( '133.87.45.70', '133.87.45.66', '133.87.1.11', ); # DNS サーバ
gate-daily によって gate-db-to-dhcpd が動作し、 dhcpd.conf が作成されるはずである。 (gate コマンドについては gate システムコマンド を参考にしてほしい)
※ これによって、元々あった dhcpd.conf は削除されるので注意
作成された dhcpd.conf を見てみる。
$ less /etc/dhcpd.conf# dhcpd.conf # # This is dhcpd.conf, generated by gate-db-to-dhcpd. # If you are to edit this file, do not edit it directly. # # General Configuration default-lease-time 6000; max-lease-time 72000; option routers 192.168.16.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.16.255; option domain-name "ep.sci.hokudai.ac.jp"; option domain-name-servers 133.87.45.70, 133.87.45.66, 133.87.1.11; subnet 192.168.16.0 netmask 255.255.255.0 {} host hiyama { hardware ethernet 02:XX:3F:XX:XX:EF; fixed-address 192.168.16.XX; } host oakleaf { hardware ethernet 00:XX:76:XX:XX:2F; fixed-address 192.168.16.XX;} :
上のコメント内の「generated by gate-db-to-dhcpd」が、 このファイルが gate-toroku-system の gate-db-to-dhcpd(8) によって作成されたことを示している。
また、赤文字は gate.conf によって設定された値になっているはずである。 DHCP サーバの gate.conf と dhcpd.conf との内容が整合的になっているかチェックして欲しい。
最後の 2〜3 行には、DHCP サーバからネットワークパラメータを配布されるホストの情報が書き込まれる。 ここには、 gate-pip-list(1) で出力されるホストの一覧が書き込まれているはずである。 確認して欲しい。 (なお、ホストの詳細な情報は gate-pip-show(1)で確認できる)。 なお、注意して欲しいのが、 ここに書き込まれたホスト以外には DHCP サービスを行なわない ことである。 接続確認をする際には、接続しようとするマシンの情報が書き込まれていることを確認して欲しい。 (登録が済んでいない場合には、http://www.ep.sci.hokudai.ac.jp/~gate/doc/index-pip.html から登録手続きをすること)
3. クライアント側の設定で行なったように、 接続の確認を行なう。 なお、上記の場合と異なるのは、
![]() |
||||
▲戻る | 作成日:2001/10/09(森川靖大) | Copyright © 2004 EPnetFan | ||
![]() |