8. 拨接连线的自动设定
这一节解释我如何设定以便让每个过程自动化.我的方法可能一点都不适合你,但是你可能从我所作的一些事情里得到一些点子.同时,我使用
PPP 拨接,然而有许多人使用 slip 或是 cslip
连线方式,所以你的设定里几乎每个地方都可能跟我的不同.但是
slip 使用的 dip 程式应该能够完成我所作的许多事情.
一般来说,当我没有连上网路时我的 resolv.conf
档案单纯地包含这一行
domain uio.no
这确保我不必等待主机名称解析函式库去尝试联系某台不可能帮助我的名称伺服器.但是当我连上线的时候我想要起始我的
named 并且拥有一个看起来像前面所描述的 resolv.conf
档案.我藉由保持两份 resolv.conf 的‘样板’档案,resolv.conf.local
以及 resolv.conf.connected
来解决问题.後面这一个看起来像前面所描述过的 resolv.conf 档案.
要自动化连线到网路的过程我执行一个称为 `ppp-on' 的指令稿:
--------------------------------------------------------------------------------
#!/bin/sh
echo calling...
pppd
--------------------------------------------------------------------------------
pppd 有个称为 options 的档案,它告诉 pppd
如何取得连线的一些特殊事项.一旦我的 ppp 连线完成後 pppd
起始一个称为 ip-up 的指令(这在 pppd 的线上使用手册里有描述).这里是该指令稿里面的一部份:
--------------------------------------------------------------------------------
#!/bin/sh
interface="$1"
device="$2"
speed="$3"
myip="$4"
upip="$5"
...
cp -v /etc/resolv.conf.connected /etc/resolv.conf
...
/usr/sbin/named
--------------------------------------------------------------------------------
换句话说,我在这里起始我的 named 程式.当 ppp 离线时 pppd
执行一个称为 ip-down 的指令稿:
--------------------------------------------------------------------------------
#!/bin/sh
cp /etc/resolv.conf.local /etc/resolv.conf
read namedpid < /var/run/named.pid
kill $namedpid
--------------------------------------------------------------------------------
所以这在连线时配置并设定相关事宜并且在离线时解除该配置并结束相关程式.
某些程式,例如我想起 irc 与 talk,做了过多的假定,为了让其工作正常你必须修改你的
hosts 档案.我在 ip-up 上加入
--------------------------------------------------------------------------------
cp /etc/hosts.ppp /etc/hosts
echo $myip roke >>/etc/hosts
--------------------------------------------------------------------------------
hosts.ppp 是简单地包含了
--------------------------------------------------------------------------------
127.0.0.1 localhost
--------------------------------------------------------------------------------
而 echo 指令插入了我收到的 IP 号码做为我机器的名称(roke).你应该改用你自己机器的名称,可以用
hostname 指令查出.
当你没有连线到网路上时执行 named 可能并不聪明,这是因为 named
将会尝试送出查询到网路上而且其终止时限(timeout)很长,而每次有某些个程式尝试解析一个名称的时候你就得等待到这个终止时限.如果你使用拨接的话你应该在连上网时起始
named 并且在离线时杀掉它.不过请参考 FAQ 一节的提示.
某些人喜欢在慢速的连线上使用 forwarders
指令.如果你的网际网路提供者在 1.2.3.4 以及 1.2.3.5 设有 DNS
伺服器那麽你可以插入这麽一行
--------------------------------------------------------------------------------
forwarders 1.2.3.4 1.2.3.5
--------------------------------------------------------------------------------
到 named.boot 档案里去.这将会减低源自你主机的 IP
流量,可能稍微提升速度.如果你是依线路的资料量付费的话这点特别重要.这还有个附加价值,让你脱离作为一个暂存的
named 维护者所应负起的责任: 你不需要去更新一个空的 root.cache
档案.