FreeBSD ハンドブック
Prev | Chapter 21. 高度なネットワーク | Next

# 21.8. DHCP

原作: Gregory Sutter `<gsutter@FreeBSD.org>`, 2000 年 3 月.

## 21.8.1. DHCPとは何でしょう?

DHCP (Dynamic Host Configuration Protocol) は、 システムをネットワー クに接続するだけで、 ネットワークでの通信に必要な情報を入手するこ とができる仕組みです。 FreeBSD では、 ISC (Internet Software Consortium) による DHCP の実装を使用しています。 したがって、 ここで の説明のうち、 実装によって異なる部分は ISC のもの用になっています。

## 21.8.2. この節で説明していること

ハンドブックのこの節では DHCP システムの、 FreeBSD に組み込まれてい る部分についてだけ説明しています。 ですから、 サーバについては説明 していません。 後の節で紹介するリファレンスに加えて、 DHCP のマニュアルページも有力な参考になることでしょう。

## 21.8.3. DHCP の動作

クライアントとなるマシン上で DHCP のクライアントである dhclient を実 行すると、 まず設定情報の要求をブロードキャストします。 デフォルト では、 このリクエストには UDP のポート 68 を使用します。 サーバは UDP の ポート 67 で応答し、 クライアントの IP アドレスと、 ネットマスクやルー タ、 DNS サーバなどの関連する情報を提供します。 これらの情報の すべては DHCP の「リース」の形で送られ、 DHCP サーバ管理者によって決 められたある一定の時間内でのみ有効になります。 これによって、 ネッ トワークに存在しなくなったホストの IP アドレスは自動的に回収される ことになります。

DHCP クライアントはサーバから非常に多くの情報を取得することができます。 dhcp-options(5) に、 その非常に大きなリストが載っています。

## 21.8.4. FreeBSD への組み込み

FreeBSD は ISC の DHCP クライアントである `dhclient` を完全に組み込んでいます。 DHCP クラ イアントはインストーラと基本システムの両方で提供されています。 ですから DHCP サーバを走らせているネットワーク上ではネットワー ク関係の設定についての詳細な知識は必要になりません。 `dhclient` は、 3.2 以降の FreeBSD のすべての配布 に含まれています。

DHCP は sysinstall でサポートされてお り、 sysinstall でのネットワークインタフェイス設定の際は、 「こ のインタフェイスの設定として DHCP を試してみますか?」という質問 が最初になされます。 これに同意することで dhclient が実行さ れ、 それが成功すればネットワークの設定情報は自動的に取得されま す。

システム起動時に、 DHCP を使ってネットワーク情報を取得するように するには、 次の 2 つのステップを行なう必要があります。

- `bpf` デバイスがカーネルに組み込まれていることを確認します。 これを組み込むには、 カーネルコンフィグレーションファイルに `pseudo-device bpf` という行を追加し、 カーネルを再構築します。 カーネルの構築に関する詳細は、 Chapter 8 を参照してください。

  `bpf` デバイスは、 FreeBSD の出荷時に用意されている `GENERIC` カーネルに組み込まれていますので、 自分で設定を変えたカスタムカーネルを使っているのでなければ、 DHCP を動作させるためにカーネルを再構築する必要はありません。

  > Note: セキュリティに関心のある方向けに注意しておきます。 `bpf` デバイスは、 パケットスニファ (盗聴プログラム) を動作させることができる (ただし root 権限が必要) デバイスです。 `bpf` は DHCP を動作させるために かならず必要ですが、 セキュリティが非常に重要な場面では DHCP を本当に使う時まで `bpf` デバイスをカーネルに追加すべきではないでしょう。

- `/etc/rc.conf` を編集して、 次の行を追加してください。

      ifconfig_fxp0="DHCP"

  > Note: `fxp0` の部分を、 動的に設定したいインター フェースの名前で置き換えることを忘れないようにしてください。

  もし、 使っている`dhclient` の場所を変更してい たり、 `dhclient` にフラグを渡したい場合は、 同 様に下のように書き加えてください。

      dhcp_program="/sbin/dhclient"
      dhcp_flags=""

DHCP サーバである `dhcpd` は、 ports collectionに `isc-dhcp2` として収録されていま す。 この port はクライアント、 サーバ、 リレーエージェントから成 る ISC の DHCP 配布物をすべて含んでいます。

## 21.8.5. 関連ファイル

- `/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) にもうすこし詳 しい解説があります。

## 21.8.6. 参考になる文献

DHCP のプロトコルは RFC 2131 に完全に記述されています。 また、 dhcp.org にも有用な 情報源が用意されています。

Prev | Home | Next
NIS/YP | Up | 付録