FreeBSD QandA 762

FreeBSD QandA

Q. DHCP クライアントにするために wide-dhcp をインストールしたのですが、
   dhcpc を実行すると 以下のエラーメッセージが出て IP アドレス等を取得で
   きません。

     Can't open bpf to read the dhcp message : No such file or directory.

A. カーネルに bpfilter (Berkeley Packet Filter) の組み込みと /dev/bpf?
   のデバイスがないと Q の様な現象になります。カーネルの構成の見直しと
   /dev/bpf? のデバイスがあるか確認します。

   1) カーネル再構築
        カーネルコンフィグファイルに下記の様な記述があるか確認します。
        なければ書き足して再構築してください。

        pseudo-device bpfilter 4

        数字の部分は組み込むフィルタの数です。この数字の分だけ同時にフィ
        ルタを使うことが出来ます。

   2) デバイス作成
       /dev ディレクトリに bpf? のデバイスがあるか確認します。 なければ
       /dev/MAKEDEV bpf0 という具合にして作成します。 数字の部分は カーネ
       ルで用意したフィルタの数と同じだけ 作成すれば良いでしょう。数字は
       0 から始まります。 例の場合だと bpf0 〜 bpf3 まで作成します。
       (少なすぎると 折角カーネルに組み込んだフィルタが使えなくなり、多す
       ぎるとそのデバイスは使われることがありません)

   これで使えるはずです。

   この bpf (Berkeley Packet Filter) とは、ネットワークインターフェースが
   拾ってくるパケットをユーザプロセスに渡したり、ユーザプロセスからネット
   ワークインターフェースへパケットを投げたりすることが出来る仮想デバイス
   です。

   カーネルが持っていないプロトコルは、bpf を通してユーザプロセスで扱う
   ことが出来るようになります。

   詳しくは bpf(4) をどうぞ。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。