发信人: albin.bbs@bbs.dlut.edu.cn (阿乐斌), 信区: cnlinux
标 题: DNS HOWTO(中文,cache only服务器的建立)
发信站: 碧海青天 (Thu Jul 10 13:43:06 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!DUT
出 处: rose.dlut.edu.cn
2. 暂存专用(caching only)名称伺服器。
DNS 配置的首种尝试,对拨接使用者非常有用。
一台暂存专用名称伺服器将会为名称查询找出答案并且在下一次你需要
该名称的时候记得答案。
首先你需要一个称为 /etc/named.boot 的档案。当 named 启动时会
读取这个档案。目前它应该单纯地包含:
______________________________________________________________________
; Boot file for nicolais caching name server
;
directory /var/named
;
; type domain source file or host
cache . root.cache
primary 0.0.127.in-addr.arpa pz/127.0.0
______________________________________________________________________
`directory' 这一行告诉 named 到哪里去找寻档案。所有其後命名的
档案都将是相对於此目录的。根据 Linux 档案系统标准 (Filesystem
Standard) 这个 /var/named 是正确的目录所在。就个人而言,我使用
的是 /local/named 但这是我的任性。
称为 /var/named/root.cache 的这个档案是在此档案里命名的。这个
/var/named/root.cache 应该包含:
______________________________________________________________________
\&. 518400 NS D.ROOT-SERVERS.NET.
\&. 518400 NS E.ROOT-SERVERS.NET.
\&. 518400 NS I.ROOT-SERVERS.NET.
\&. 518400 NS F.ROOT-SERVERS.NET.
\&. 518400 NS G.ROOT-SERVERS.NET.
\&. 518400 NS A.ROOT-SERVERS.NET.
\&. 518400 NS H.ROOT-SERVERS.NET.
\&. 518400 NS B.ROOT-SERVERS.NET.
\&. 518400 NS C.ROOT-SERVERS.NET.
;
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
______________________________________________________________________
这个档案描述了在这个世界上的根名称伺服器。这会随时间而改变并且
必须加以维护。如何能保持它跟得上时代请参见”维护篇”。在 named
的线上使用手册里有这个档案的描述,但是这,IMHO,最适合那些
已经了解 named 的人们。
在 named.boot 里的下一行是 primary 这一行。我将会在稍後的章节
里解释它的用法,目前只要把它设为在 pz 子目录下一个称为 127.0.0
的档案即可:
______________________________________________________________________
@ IN SOA linux.bogus. hostmaster.linux.bogus.
(
1 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS ns.linux.bogus.
1 PTR localhost.
______________________________________________________________________
接下来,你需要一份看起来像这样的 /etc/resolv.conf 档案:
______________________________________________________________________
search subdomain.your-domain.edu your-domain.edu
nameserver 127.0.0.1
______________________________________________________________________
`search' 这一行指出对於任何你想连往的主机名称应该搜寻的领域。
`nameserver' 这一行指出你的机器可以在哪个位址上找到一台名称伺
服器,在这个例子中是你自己的这台机器,因为你在它上面执行 named
。(注意: Named 从不读取这个档案,而是使用 named 的名称解答器
会读取。)
来简介这个档案有什麽作用: 如果某个客户端尝试要找寻 foo 的话,
那麽首先尝试的是 foo.subdomain.your-domain.edu 这个名称,然後
接下来是 foo.your-domain.edu 这个名称,最後则是 foo 这个名称
。如果有某个客户端尝试要找寻 sunsite.unc.edu 的话,那首先尝试
的是 sunsite.unc.edu.subdomain.your-domain.edu 这个名称,然後
接下来是 sunsite.unc.edu.your-domain.edu 这个名称,最後则会是
sunsite.unc.edu 这个名称。你可能不会想放太多领域到 search 该行
里去,搜寻它们会多花时间。
这个范例假设你属於 subdomain.your-domain.edu 这个领域,那麽你
的机器,可能会称为 your-machine.subdomain.your-domain.edu 。
在 search 这行里不应该包含你的 TLD (顶层领域 Top Level Domain
在这个例子中是 edu 这个领域)。如果你经常需要连线到在另外一个
领域里的主机你麽你可以把该领域像这样地加进 search 这行里:
______________________________________________________________________
search subdomain.your-domain.edu. your-domain.edu. other-domain.com.
依此类推。很明显的是你得放入真实的领域名称来取代这些名称。
接下来,根据你 libc 版本的不同需要修正 /etc/nsswitch.conf 或者
是 /etc/host.conf 档案。
/etc/nsswitch.conf
这是个很长的档案,它指出到何处去取得各种不同的资料型态,从什麽
档案或是资料库取得。它的顶端经常会包含一些有帮助的注解。找出以
`hosts:' 作为开头的那一行,它应该是这样:
______________________________________________________________________
hosts: files dns
______________________________________________________________________
如果档案里没有以 `hosts:' 作为开头的行那麽把上面这一行放进去。
它是说程式应该先在 /etc/hosts 档案里找寻,然後根据 resolv.conf
检查 DNS 。
/etc/hosts.conf
它可能包含有数行,其中应该有一行以 order 作为开始而且它看起来
会像这样:
______________________________________________________________________
order hosts,bind
______________________________________________________________________
如果档案里没有 `order' 这一行的话那麽你应该贴一份上去。它告诉
主机名称解析函式先在 /etc/hosts 里找寻,然後查问名称伺服器(在
resolv.conf 里你说在 127.0.0.1 这个地方)在大部分 Linux 发行
套件中最後这两个档案的文件在 resolv(8) 的线上使用手册中(执行
`man 8 resolv' 即可)。这份线上用手册IMHO可看,而每个人,
特别是 DNS 管理者,都应该要阅读它。现在就做,如果你对你自己说
”我稍後将会去做”你将永远不会去接近它。
起始 named 。
这些全部完成後现在是起始 named 的时候了。如果你使用拨接连线的
话那麽请先连上网路。键入 `ndc start' 并且按下 return 键,没有
选项。如果它倒弹(back-fires)那麽试著使用 `/usr/sbin/ndc start'
来取代。现在你可以测试你的设定。当你在起始 named 的时候如果你
有观察一下(使用 tail -f /var/adm/messages 指令)系统记录讯息
档案(通常是称为 /var/adm/messages 的档案)那麽你应该会看见像
样的一些东西:
Jun 30 21:50:55 roke named[2258]: starting. named 4.9.4-REL
Sun Jun 30 21:29:0
3 MET DST 1996 janl@roke.slip.ifi.uio.no:/var/tmp/bind/named
Jun 30 21:50:55 roke named[2258]: cache zone "" loaded (serial
0)
Jun 30 21:50:55 roke named[2258]: primary zone
"0.0.127.in-addr.arpa" loaded (s
erial 1)
如果有任何关於错误的讯息那麽就是有个错误发生,named 将会指名有
错误的档案(我想是 named.boot 以及 root.cache 其中之一:)杀掉
named 程序并回头检查 named 的档案。
$ nslookup
Default Server: localhost
Address: 127.0.0.1
>
如果这是你所得到的回应那麽它已经能够运作。我们希望是这样。得到
任何其它回应都请回头检查每一件事。每一次你改变 named.boot 档案
之後你都得使用 ndc restart 这个指令重新起始 named 程式。
现在你可以输入查询。尝试找寻某些靠近你的机器。pat.uio.no 离我
不远,在奥斯陆的大学里:
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Name: pat.uio.no
Address: 129.240.2.50
现在 nslookup 要求你的 named 找寻 pat.uio.no 这台机器。然後它
(named) 联系在你 root.cache 档案里所指名的名称伺服机器其中一台
,并且从那里查问它该如何继续的路径。在你取得结果之前可能得花费
一点时间,因为它搜寻你在 /etc/resolv.conf 里指名的所有领域。
如果你再试一次的话那麽你将会得到:
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Non-authoritative answer:
Name: pat.uio.no
Address: 129.240.2.50
注意我们在这回合所得到的 `Non-authoritative answer:' 这一行。
这代表 named 此次并未到网路外去查问,取而代之的是在它的暂存区
里找寻并且在那里发现答案。但是暂存的资讯可能会过时。所以它藉由
`Non-authorative answer:' 来知会你有这个(很轻微的)危险性存在
。当 nslookup 说这是你第二次查问某台主机时,这是 named 能暂存
该项资讯并且正常运作的一个讯号。你可以藉由使用 `exit' 指令离开
nslookup 程式。
如果你是个拨接(ppp, slip) 使用者请阅读”拨接连线专节”,里面有
一些给你的建议。
现在你知道如何设立一个能够暂存的 named 系统。来杯啤酒,牛奶,
或是任何你喜欢的东西来庆祝吧。
--
※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: 202.118.66.18]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:207.477毫秒