この章では私がどのようにすべてを自動化したかを述べます。 私のやり方はみなさん全部にあてはまるものではないでしょうが、 なんらかのヒントになる と思います。また私はダイアルアップに ppp を使っていますが、多くの人が slip または cslipを使ってるので、あなたがセットアップする時ほとんどの点で異なるかもしれません。 しかし slip の dig を使えば私の行ったことの多くを行えるはずです。
私は、普段ネットに繋いでいないときは
resolv.conf
は次のようにしています。
domain uio.no
こうすることによって、まったく意味のないホスト名解決のために nameserver
への接続を待ち続けるのを防げます。しかし、ネットに接続するときは named を
起動させ、 resolv.conf
は以前に記述した内容にして置きたいです。
私は2つの resolv.conf
テンプレートを作り resolv.conf.local
と
resolve.conf.connected
という名前にしています。後者はこのドキュメント
で記述した resolve.conf
です。
ネットに自動的につなぐために、私は次の ppp-on というスクリプトを動かせています。
#!/bin/sh echo calling... pppd
上の pppd は、どうやってつなぐかの詳細をoptions
というファイルから知ります。一度 ppp 接続が出来ると、 pppd は
ip-up
(これは pppd の man page に説明されています)といスクリプトを起動します。
以下は、このスクリプトの一部です:
#!/bin/sh interface="$1" device="$2" speed="$3" myip="$4" upip="$5" ... echo 1&2 PPP: IP up cp -v /etc/resolv.conf.connected /etc/resolv.conf ... /usr/sbin/named echo PPP: ip-up finished
つまり、ここで named を起動しています。ppp が切断されるときには pppd は
ip-down
という以下のスクリプトを動かせます:
#!/bin/sh echo 1>&2 PPP: IP down cp /etc/resolv.conf.local /etc/resolv.conf read namedpid </var/run/named.pid kill $namedpid
つまり、こいつは接続時にはいろいろ構成を整えてから立ち上がり 切断時には構成をもどして終わるというわけです。
幾つかのプログラムは、irc とか talk を思い浮かべますが、 たくさんの前提を
仮定してるので、and for irc the dcc features and talk to work right you
hosts ファイルを直さなくてなりません。私は ip-up
スクリプトに hosts を
はさみ込みました:
cp /etc/hosts.ppp /etc/hosts echo $myip roke >>/etc/hosts
hosts.ppp
は単純に以下だけを含んでます
127.0.0.1 localhost
そして echo 文は私のホスト名 (roke) に対する ip# を挿入します。
ネットに接続されていないときに named を走らせるのは多分スマートではないで しょう。named はネットに問い合わせを送ろうとしますが、このタイムアウトの時間は 長くて、なんらかのプログラムがホスト名の解決をしようとするたびに延々と待つこと になるからです。もしダイアルアップ接続をするのであれば、接続するときに named を 起動し、切断するときに kill すべきでしょう。そんなことはないというメールも もらっていますが、延々とタイムアウトを待たずにうまく動かす方法を私は知りません。 あなたにもっと良い情報があるなら詳しいことをすべて メールして ください。