DHCP mini-HOWTOVladimirVuksanvuksan@veus.hr保英大森日本語翻訳dasen@icntv.ne.jpv4.12October 22, 2000vv
この文書は、Linux マシンを DHCP サーバや DHCP クライアントにする方法について、基本的な質問に答えるものです。
はじめによくある免責条件
No liability for the contents of this documents can be accepted.
Use the concepts, examples and other content at your own risk.
As this is a new edition of this document, there may be errors
and inaccuracies, that may of course be damaging to your system.
Proceed with caution, and although this is highly unlikely,
I don't take any responsibility for that.
この文書の内容に関しては一切無保証です。
概念・例・その他全て読者の責任のもとにご利用ください。
現在の版は新しいので、間違いや不正確な部分があるかもしれません。
それによってあなたのシステムに障害が起きるかもしれません。
気をつけて作業してください。あまりそういうことはないとは
思いますが、私はそのような障害に対して一切責任を負いません。
Also bear in mind that this is NOT official information.
Much content in this document are assumptions, which appear to
work for people. Use the information at your own risk.
また、これはオフィシャルな情報ではないことも心にとめておいてください。この文書の内容はある意味仮定です
(ただし多くの人々の環境で動作してはいます)。
情報はあなたの責任のもとにご利用ください。
この文書の最新版
この文書の最新版は次に掲げるリンクから入手可能です。
http://www.oswg.org/oswg-nightly/DHCP.html
DHCP mini-HOWTO の翻訳版は次に掲げるリンクから入手可能です。
中国語 - http://www.linux.org.tw/CLDP/mini/DHCP.html日本語 - http://www.linux.or.jp/JF/JFdocs/DHCP/index.htmlスペイン語 - ftp://cuates.pue.upaep.mx/pub/linux/LuCAS/DHCP-mini-Como/
この文書の他の言語への翻訳は自由とします。
ただこのオリジナル文書へ戻るリンクをその翻訳中に示していただくこと、および翻訳版の URL をお知らせくださること、
をお願いしたいと思います。
後者はこの文書に翻訳へのリンクを追加できるようにするためです。
フィードバック
この文書に関するフィードバックはもちろん大歓迎です。
あなたの協力と情報提供がなければ、この文書は存続できません。
追記・コメント・批判などを vuksan-feedback@veus.hr
まで送ってください。
訳注: 日本語訳に関するコメントは
ここを読んで送ってください。
貢献者
この文書は Paul Makeev によるオリジナル版を修正してできたものです。
訳注: 日本語訳に関しては、中野@成蹊大さんの翻訳を、
大森保英が DocBook 版 v4.12 に追従させてできたものです。
以下の方々がこの mini-HOWTO に貢献してくださいました。
Heiko SchlittermannJonathan SmithDan KhabazaHal SadofskyHenrik StoernerPaul Rossingtonnumerous others著作権に関する情報
This document is copyrighted (c) 1998 Vladimir Vuksan and
distributed under the terms of the OpenContent License (OPL). Full
text of the license can be found at
http://www.opencontent.org/opl.shtml
この文書の著作権は (c)1998 Vladimir Vuksan にあり、
the OpenContent License (OPL) に基づいて配布できます。
ライセンス文書の全文は、上掲のリンクから利用可能です。
訳注:
日本語訳の著作権は (c)1999 Takeo Nakano, (c)2001 Yasuhide OOMORI にあります。
再配布の条件は上記オリジナルに準じるものとします。
DHCP プロトコル
DHCP とは Dynamic Host Configuration Protocol のことです。
これはホスト (動作中のクライアント) に与えられるネットワークのパラメータを、サーバを利用して動的に制御するために用いられます。
DHCP は BOOTP に対して後方互換 (backward compatible) です。
より詳しい情報は RFC 2131 (以前は RFC 1541 でした) などを見てください。
訳注: RFC の国内ミラーサイトとしては、
ftp://ftp.ring.gr.jp/pub/doc/RFC/rfc2131.txtftp://ftp.ring.gr.jp/pub/doc/RFC/rfc1541.txt
があります。
http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html
も参考になるでしょう。
この mini-HOWTO は DHCP 「サーバ」デーモンと DHCP 「クライアント」デーモンの両方を扱います。多くの人が必要としているのはクライアントデーモンでしょう。これはワークステーションがリモートサーバからネットワークの情報を取得するために用いられます。サーバデーモンはシステム管理者がネットワークの情報をクライアントに配布するために用いられます。ですから、普通のユーザが必要としているのは「クライアント」デーモンのはずです。
クライアントの設定
現在 Linux では、3つの異なる DHCP クライアントプログラムがあります。
dhcpcd, pump と dhclient です。この mini-HOWTO では、
主に dhcpcd を取り扱います。
クライアントデーモン (dhcpcd) のダウンロード
お使いのディストリビューションによっては、
DHCP クライアントデーモンをダウンロードする必要があるかもしれません。
ソースからコンパイルしたいのであれば、
必要なパッケージは dhcpcd と呼ばれるもので、現在の最新版は 1.3.18 です。
Sergei Viznyuk sergei@phystech.com がメンテナンスしており、
今日では多くのディストリビューションでバイナリパッケージが収録されています。
dhcpcd のソースは次の場所からダウンロードできます。
ftp://ftp.phystech.com/pub/ (Primary site)http://www.cps.msu.edu/~dunham/out/
ダウンロードしたら、以下の指示に従ってください。
どちらのリンクからも同じものが入手可能なはずです。
Slackware
最新版の DHCPcd は metalab のミラーから、あるいは以下から
ダウンロードできます。
ftp://metalab.unc.edu/pub/Linux/system/network/daemonsftp://ftp.phystech.com/pub/
(Primary site)
ftp://ftp.kobe-u.ac.jp/pub/PC-UNIX/Linux/network/dhcp/
(Primary site in Japan)
最新版の dhcpcd.tar.gz をダウンロードしましょう。
展開します。
tar -zxvf dhcpcd-1.3.18pl1.tar.gz
ディレクトリに入って dhcpcd を make します。
cd dhcpcd-1.3.18pl1make
インストールします (以下のコマンドは root で実行する必要があります)
make install
/etc/dhcpc というディレクトリができます。 DHCPcd はここに
DHCP 情報を保存します。 dhcpcd は /usr/sbin にコピーされます。
ブート時に DHCP を利用してシステムの初期化を行うには、
以下のように入力します。
cd /etc/rc.dmv rc.inet1 rc.inet1.OLD
古いネットワーク初期化スクリプトを rc.inet1.OLD
にリネームします。ここで新しい rc.inet1
スクリプトを作成する必要があります。
以下のコードで OK でしょう。
#!/bin/sh
#
# rc.inet1 This shell script boots up the base INET system.
HOSTNAME=`cat /etc/HOSTNAME` #This is probably not necessary but I
#will leave it in anyways
# Attach the loopback device.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the
# eth0 interface. If you're only using loopback or SLIP, don't include the
# rest of the lines in this file.
/usr/sbin/dhcpcd
保存してコンピュータを再起動しましょう。
終わったら最終設定に進みましょう。
RedHat 6.x および Mandrake 6.x
RedHat 6.0+ における DHCPcd の設定はとても簡単です。
まず control-panel
コマンドでコントロールパネルを起動します。
"Network Configuration" を選びます。Click on InterfacesAdd をクリックします。Ethernet を選びます。Edit Ethernet/Bus Interface から
"Activate interface at boot time"
を選び、"Interface configuration protocol" として
"DHCP" を選びます。
RedHat 6.x では、上記の dhcpcd ではなく、pump が 標準の DHCP
クライアントとして同梱されていることに気をつけてください。CD-ROM には
dhcpcd の rpm も含まれているので、pump でうまくいかなかったら
dhcpcd で試してみましょう。dhcpcd を
(例えば rpm -i dhcpcd-1.3.17pl2-1.i386.rpm
のように) インストールしたら、
修正が必要になります。
Alexander Stevenson alexander.stevenson@home.com
による追加情報を以下に示します。
DHCPcd では全くうまくいきませんでした。結局役に立ったのは
Mandrake 6.0 同梱の (たぶん RedHat にもあると思う) "pump" でした。
私が使ったコマンドを以下に示します。
pump -i eth0 -h hostname
"hostname" は何でも構いませんでしたが、
とにかくこれがないとサーバは反応を示しませんでした。
それから、/sbin/ifup スクリプトに変更を加え、設定を反映させました。標準のバージョンでは -h オプションがなかったので、うまく動きませんでした。
基本的に、linuxconf を使っているのであれば、
アダプタの設定を "DHCP" にしても動かない場合には、
/sbin/ifup のスクリプトの pump の行に
"-h hostname" というオプションを追加してみるといいのではないでしょうか。私はスクリプトを次のように修正しました。
...
if [ -n "$PUMP" ]; then
echo -n "Determining IP information for $DEVICE..."
if /sbin/pump -i $DEVICE -h hostname; then
echo " done."
else
echo " failed."
exit 1
fi
else ...
もう一つの、よりエレガントにホスト名を設定する方法が
Aad van der Klaauw から寄せられました。以下に示します。