原作: Gregory Sutter <gsutter@FreeBSD.org>
, 2000 年 3
月.
DHCP (Dynamic Host Configuration Protocol) は、 システムをネットワー クに接続するだけで、 ネットワークでの通信に必要な情報を入手するこ とができる仕組みです。 FreeBSD では、 ISC (Internet Software Consortium) による DHCP の実装を使用しています。 したがって、 ここで の説明のうち、 実装によって異なる部分は ISC のもの用になっています。
ハンドブックのこの節では DHCP システムの、 FreeBSD に組み込まれてい る部分についてだけ説明しています。 ですから、 サーバについては説明 していません。 後の節で紹介するリファレンスに加えて、 DHCP のマニュアルページも有力な参考になることでしょう。
クライアントとなるマシン上で DHCP のクライアントである dhclient を実 行すると、 まず設定情報の要求をブロードキャストします。 デフォルト では、 このリクエストには UDP のポート 68 を使用します。 サーバは UDP の ポート 67 で応答し、 クライアントの IP アドレスと、 ネットマスクやルー タ、 DNS サーバなどの関連する情報を提供します。 これらの情報の すべては DHCP の「リース」の形で送られ、 DHCP サーバ管理者によって決 められたある一定の時間内でのみ有効になります。 これによって、 ネッ トワークに存在しなくなったホストの IP アドレスは自動的に回収される ことになります。
DHCP クライアントはサーバから非常に多くの情報を取得することができます。 dhcp-options(5) に、 その非常に大きなリストが載っています。
FreeBSD は ISC の DHCP クライアントである dhclient を完全に組み込んでいます。 DHCP クラ イアントはインストーラと基本システムの両方で提供されています。 ですから DHCP サーバを走らせているネットワーク上ではネットワー ク関係の設定についての詳細な知識は必要になりません。 dhclient は、 3.2 以降の FreeBSD のすべての配布 に含まれています。
DHCP は sysinstall でサポートされてお り、 sysinstall でのネットワークインタフェイス設定の際は、 「こ のインタフェイスの設定として DHCP を試してみますか?」という質問 が最初になされます。 これに同意することで dhclient が実行さ れ、 それが成功すればネットワークの設定情報は自動的に取得されま す。
システム起動時に、 DHCP を使ってネットワーク情報を取得するように するには、 次の 2 つのステップを行なう必要があります。
bpf デバイスがカーネルに組み込まれていることを確認します。 これを組み込むには、 カーネルコンフィグレーションファイルに pseudo-device bpf という行を追加し、 カーネルを再構築します。 カーネルの構築に関する詳細は、 第9章 を参照してください。
bpf デバイスは、 FreeBSD の出荷時に用意されている GENERIC カーネルに組み込まれていますので、 自分で設定を変えたカスタムカーネルを使っているのでなければ、 DHCP を動作させるためにカーネルを再構築する必要はありません。
注意: セキュリティに関心のある方向けに注意しておきます。 bpf デバイスは、 パケットスニファ (盗聴プログラム) を動作させることができる (ただし root 権限が必要) デバイスです。 bpf は DHCP を動作させるために かならず必要ですが、 セキュリティが非常に重要な場面では DHCP を本当に使う時まで bpf デバイスをカーネルに追加すべきではないでしょう。
/etc/rc.conf を編集して、 次の行を追加してください。
ifconfig_fxp0="DHCP"
注意: fxp0 の部分を、 動的に設定したいインター フェースの名前で置き換えることを忘れないようにしてください。
もし、 使っているdhclient の場所を変更してい たり、 dhclient にフラグを渡したい場合は、 同 様に下のように書き加えてください。
dhcp_program="/sbin/dhclient" dhcp_flags=""
DHCP サーバである dhcpd は、 ports collectionに isc-dhcp2 として収録されていま す。 この port はクライアント、 サーバ、 リレーエージェントから成 る ISC の DHCP 配布物をすべて含んでいます。
/etc/dhclient.conf
dhclient は設定ファイル /etc/dhclient.conf を必要とします。 大抵の場合、 このファイルはコメントだけであり、 デフォルトが 通常使いやすい設定になっています。 この設定ファイルは マニュアルページ dhclient.conf(5) で説明しています。
/sbin/dhclient
dhclient は静的にリンクされており、 /sbin に置かれています。 マニュアルページ dhclient(8) で dhclient コマンドについて より詳しく説明しています。
/sbin/dhclient-script
dhclient-script は FreeBSD 特有の、 DHCP クラ イアント設定スクリプトです。 これについてはマニュアルページ dhclient-script(8) で説明されていますが、 これを編集する 必要はほとんど発生しないでしょう。
/var/db/dhclient.leases
DHCP クライアントはこのファイルに有効なリースのデータベースを ログとして記録します。 dhclient.leases(5) にもうすこし詳 しい解説があります。
DHCP のプロトコルは RFC 2131 に完全に記述されています。 また、 dhcp.org にも有用な 情報源が用意されています。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で)
連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で)
送ってください。