FreeBSD QandA 344

FreeBSD QandA

Q. ppp(8) を利用して PPP 接続を行ったところ、 接続は出来て ping も通る
   のですが、 telnet hostname とすると 'unknown host' というエラーが返っ
   てきて、接続出来ないのですが?

A. ホスト名から IP アドレスが取得できないようです。/etc/ppp/ppp.conf の
   該当セクションに、

     enable dns

   の一行を加えてください。これにより、ISP の DNS サーバを自動的に参照す
   るように、/etc/resolv.conf が設定されます。ただし、最近では少ないと思
   いますが、ISP の PPP サーバがこれらの情報を返してくれない場合、こちら
   の設定で対処するしかありません。これについては後述します。

   もし、ローカルで DNS サーバが動作していて、PPP に接続していないときは
   ローカルの DNS サーバを参照する必要があれば、/etc/ppp/ppp.linkdown の
   該当セクションに、

     resolv restore

   を追加します。もし設定ファイル自体がなければ作成してください。
   /usr/share/examples/ppp/ 以下にインストールされたサンプルが参考になる
   でしょう。

   上記の方法が使えない場合、または FreeBSD 2.2.7-RELEASE 以前では、少々
   原始的な方法を取らざるを得ません。/etc/resolv.conf に、

     nameserver 192.168.1.2 192.168.2.3

   などのように DNS サーバの IP アドレスを並べます。最大 3 つまで書けます
   が、もし一番目のサーバが問い合わせに答えなければ、順にあとの DNS サー
   バへの問い合わせを行います。接続先が ISP なら、契約時に DNS サーバの 
   IP アドレスを教えてもらったはずなので、その IP アドレスを書けばよいで
   す。それ以外の環境ではそのサイトの管理者に問い合わせてください。詳しい
   書式は man ページの resolv.conf(5) を参照してください。

   FreeBSD でホスト名の解決を行うには、/etc/hosts データベース、DNS といっ
   た順でホスト名から IP アドレスを検索します (2.2.7-RELEASE 以前は逆でした。
   詳しくは /etc/host.conf を参照)。このうち、/etc/hosts には IP アドレスと
   ホスト名が一覧されていますが、当然のことながら世界中のホストについて列
   挙することは不可能です。このため、/etc/hosts でホスト名が見付からない
   場合、DNS への問い合わせを行うのですが、この際どこに問い合わせれば良い
   かを指定するのが /etc/resolv.conf です。

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