📄 00000010.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: ruster (尘埃*星辰*领悟), 信区: Linux <BR>标 题: 第六章 Intranet(上) <BR>发信站: BBS 水木清华站 (Thu Dec 21 13:42:02 2000) <BR> <BR>第6章 Intranet <BR> <BR> 本章要点: <BR> <BR> 本章介绍如何将Linux配置为Intranet/Internet服务器,如ftp,www服务器等等。 <BR> <BR> 本章具体包括以下内容。 <BR> <BR> Internet名字服务器的配置 <BR> <BR> ftp服务器的配置 <BR> <BR> WWW服务器的配置 <BR> <BR> 6.1 域名系统 <BR> <BR> 域名服务即DNS系统,它可以让你在访问确定的机器的时候,无需给出IP地址而是利用 <BR>容易记忆的名字来处理问题。实际上,它有两种任务,将用户提出的名字翻译成IP地址 <BR>,或者从IP地址查出域名。 <BR> <BR> 6.1.1 DNS的工作模式 <BR> <BR> DNS是一个庞大的分布式数据库系统,它使用树状结构来处理各种查询。首先,我们会 <BR>注意到,DNS名字是一些用点号分开的字符串,例如www.microsoft.com,这种名字通常 <BR>用一种虽不太准确却很容易的方式来理解,例如microsoft.com是.com下的一个“子域” <BR>,而www.microsoft.com是microsoft.com的一个成员。所有DNS的共同祖先是".",称为 <BR>根域。 <BR> <BR> 每个子域都应该有自己的名字服务器,或DNS服务器,例如,我们有一个.mydomain.c <BR>om域,为了实现对域内的机器以及下层子域能够提供DNS服务,我们至少应该有一台域名 <BR>服务器来处理DNS请求。 <BR> <BR> 下面我们看看DNS是如何工作的,假设我们的域名服务器是ns.mydomain.com,它用来 <BR>处理所有域内机器发出的DNS请求,这种DNS请求可以分成三种,一种是在mydomain.com <BR>内部的名字,名字形式是(比如说)host1.mydomain.com;第二种是在mydomain.com之外 <BR>,比如说bbs.edu.cn;第三种是在mydomain.com下的一个子域内的一台机器,例如host <BR>2.subdomain.mydomain.com。 <BR> <BR> ns.mydomain.com中应该包含所有名字为*.mydomain.com的机器的名字到IP地址的对照 <BR>关系,但是不包含*.subdomain.com的对照关系。所以,当DNS客户机器向它提出一个查 <BR>找host1.mydomain.com的请求的时候,它直接从本地数据库得到host1.mydomain.com的 <BR>IP地址信息并且送回。 <BR> <BR> 当接收到一个类似于bbs.edu.cn的DNS查询请求的时候,DNS服务器将首先判断出它不 <BR>在本地域内部,为了得出一个结果,它有两个选择,一个是回答客户“我不知道,但是 <BR>你可以去问XXX服务器”;另外一个选择是自己去查询其他的DNS服务器,得到结果后再 <BR>传送给客户。第二种方式称为递归检索。 <BR> <BR> 为了能够找到bbs.edu.cn的地址,ns.mydomain.com必须知道世界上其他服务器的地址 <BR>,这有两种方案,第一种是ns.mydomain.com一开始就知道一个更庞大的DNS服务器,所 <BR>有不懂的名字都交给它去查询,这种方式称为转发;另外一个方法更专业一点,首先, <BR>ns.mydomain.com知道世界上某些最重要的名字服务器的地址,然后再从这些服务器开始 <BR>按照DNS的树状顺序查询。 <BR> <BR> 举例来说,ns.mydomain.com发现自己不知道bbs.edu.cn的地址,但是它知道世界上有 <BR>一些“根”服务器,例如,a.root.net就是这样的一个服务器,其地址是198.41.0.4。 <BR>所以,它向198.41.0.4提出一个请求。 <BR> <BR> a.root.net在接受到这个请求之后,它也不知道这个名字到底在那里,但是由于bbs. <BR>edu.cn看起来在.cn中,而它知道.cn的域名应该由ns.cnc.ac.cn负责,其IP地址是159. <BR>226.1.1。于是它回答:“去问159.226.1.1,以后凡是.cn的请求你可以问它”。 <BR> <BR> 接下来,ns.mydomain.com将会去询问ns.cnc.ac.cn,ns.cnc.ac.cn也不知道bbs.edu <BR>.cn在那里,但是它知道edu.cn应该由dns.edu.cn负责,所以它回应:“edu.cn应该去问 <BR>dns.edu.cn,IP是202.112.0.35”。 <BR> <BR> 当ns.mydomain.com询问dns.edu.cn时,终于得到了这个域名的正确地址:202.112.5 <BR>8.200。但是接下来,在返回信息之前,ns.mydomain将首先记忆自己所学到的知识: <BR> <BR> 凡是.cn的名字,去问159.226.1.1 <BR> <BR> 凡是.edu.cn的名字,去问202.112.0.35 <BR> <BR> bbs.edu.cn的名字是202.112.58.200 <BR> <BR> 它将这些信息记录在自己的文件中,以后当再有客户询问bbs.edu.cn时,它直接回答 <BR>:“我记得那是202.112.58.200”。 <BR> <BR> 最后,返回查询结果。 <BR> <BR> 当提问的是host2.subdomain.mydomain.com时,ns.mydomain.com将会首先看到subdo <BR>main.mydomain.com应该由ns.subdomain.mydomain.com处理,所以去询问ns.domain.my <BR>domain.com,其他和上面说的流程基本相同。 <BR> <BR> 显然,由于ns.mydomain.com存储了查询到的知识,所以它也可以回答许多不应该由它 <BR>回答的信息,但是这些信息可能是错误的(因为名字到IP的对照关系可以更改)。这种 <BR>信息称为“非权威信息”。相反,有关host1.mydomain.com的信息它的知识肯定是正确 <BR>的。 <BR> <BR> 为了提高域名服务的效率,通常一个子域内可以有多个域名服务器,这些服务器可以 <BR>分成三类,一类是确实记录了域内机器的名字信息的服务器,称为主(primary)域名服 <BR>务器;另一类也包含记录,但是它的信息是定期从主服务器来的,这种服务器的名字信 <BR>息也是权威信息,这种服务器称为从(secondary)域名服务器;还有一类简单地缓冲各种 <BR>查询信息,自己并不发布任何权威信息,这称为cache-only服务器。 <BR> <BR> 6.1.2 bind 8 服务器配置 <BR> <BR> DNS服务器通常用named守护进程提供,不过它有一个怪异的名字,称为bind。由于历 <BR>史的原因,named有两个规范,分别称为bind 4和bind 8。我们研究的是bind 8,这是目 <BR>前的Linux发行版本中的named程序的标准。 <BR> <BR> 要使用named程序,你需要安装bind软件包,我这里使用的是bind-8.2.1-7。 <BR> <BR> 配置bind8首先需要处理/etc/named.conf文件,通常它由一串段落构成,我们这里只 <BR>能介绍最重要的部分。 <BR> <BR> 让我们来看一个范例性的named.conf文件,在这个例子中,我们配置的是asnc.edu.c <BR>n域的主域名服务器: <BR> <BR> [root@openlab /etc]# cat named.conf <BR> <BR> options { <BR> <BR> directory "/var/named"; <BR> <BR> }; <BR> <BR> <BR> zone "." in { <BR> <BR> type hint; <BR> <BR> file "named.ca"; <BR> <BR> }; <BR> <BR> <BR> zone "0.0.127.in-addr.arpa" in { <BR> <BR> type master; <BR> <BR> file "named.local"; <BR> <BR> }; <BR> <BR> zone "asnc.edu.cn" in { <BR> <BR> type master; <BR> <BR> file "asnc.hosts"; <BR> <BR> }; <BR> <BR> zone "248.199.202.in-addr.arpa" in { <BR> <BR> type master; <BR> <BR> file "asnc.rev"; <BR> <BR> }; <BR> <BR> 首先是options段落,它用于建立一些全局信息,这里的directory 信息告诉named程 <BR>序到哪里去找后面指出的那些文件。 <BR> <BR> 每个zone段落定义一组查询信息,zone "."定义的是根信息,即DNS根服务器的信息, <BR>接下来file "named.ca"给出了根文件的名字。 <BR> <BR> zone "0.0.127.in-addr.arpa"段落给出反向的域名解析信息,注意0.0.127.in-addr <BR>.arpa"实际是定义的127.0.0.*的信息,也就是IP地址是反写的。type master表示这是 <BR>个主域名服务器。同样,这个定义文件在named.local。 <BR> <BR> zone "asnc.edu.cn" 给出*.asnc.edu.cn的信息,按照这里的定义显然相应的信息在 <BR>asnc.hosts文件中。相应地,zone "248.199.202.in-arpa"给出的是202.199.248.*的名 <BR>字信息,文件在asnc.rev。 <BR> <BR> 上面提到的四个文件按照options段落应该位于/var/named,那么我们看一下这几个文 <BR>件: <BR> <BR> [root@openlab named]# cat named.ca <BR> <BR> . 3600000 IN NS A.ROOT-SERVERS.NET. <BR> <BR> A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 <BR> <BR> . 3600000 NS B.ROOT-SERVERS.NET. <BR> <BR> B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 <BR> <BR> . 3600000 NS C.ROOT-SERVERS.NET. <BR> <BR> C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -