⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 如何在linux上建立dns服务器(转).txt

📁 LINUX下的安装声卡等操作和技巧介绍
💻 TXT
📖 第 1 页 / 共 2 页
字号:
作者:studyboy
email: studyboy@21cn.com
日期:7/19/2001 10:09:18 PM


一、 假定

本文假定你已对域名服务器 DNS 有基本的了解,如果不是,请参看相关的文裆。 

许多DNS的文章都是从DNS原理开始介绍,本人则从使用的角度出发,为Linux的管理员提供一些简单实用的应用实例。 

下面假定我们需要建立一台企业网的DNS主服务器,应用条件如下: 

(1) 一个C类网段地址 (本例中假定是192.22.33) 

(2)企业域名为 my.com,并已注册 (主域名服务器地址 192.22.33.20,主机名为 linux.my.com) 

(3)企业网通过路由器与Internet连接 

假如你的应用环境与上述条件不同,也请往下看,本文会在上述例子的基础上针对以下情况作修正: 

(1) 多个网段 

(2) 封闭的内部网 

(3) 只能访问局部公共网的情况(如169网、上海热线等) 

二、named、/etc/named.boot 和 ndc

DNS 服务器的主体是域名服务器进程 named ,named 启动后向DNS客户机提供域名解析服务,把域名转换成IP地址。 

named 启动时需要读取一个初始化文件,缺省情况下是 /etc/named.boot,所以/etc/named.boot 是 named 的基本配置文件。 

虽然启动 named 可直接执行 named,在Linux上我们可以使用一个控制 named 的工具 ndc。ndc 可以用于启动、中止、重启动、刷新DNS数据、输出DNS数据等多种调试功能,我在这里推荐大家用这个工具来帮助 DNS 服务器的调试。 

有关 ndc 的详细用法,请参看 Linux 有关文档。 

三、建立 named 配置文件 /etc/named.boot

/etc/named.boot 是基本的配置文件,但不包含任何 DNS 数据,针对我们前面的假定,我们先建立以下 /etc/named.boot,其内容如下: 

;
;    boot file for name server
;
directory   /var/named

primary    my.com          			  db.my
primary    0.0.127.IN-ADDR.ARPA           db.127.0.0
primary    33.22.192.IN-ADDR.ARPA         db.192.22.33
cache      .                              db.cache

其中以“;”开头的行是注释行,其他各行含义是 

(1)diretory /var/named 

指定 named 从 /var/named 目录下读取 DNS 数据文件。这个目录用户可自行指定并创建,指定后所有的DNS 数据文件都存放在此目录下。 

(2)primary my.com db.my 

指定 named 作为 my.com 域的主域名服务器,db.my 文件中包含所有 *.my.com 形式的域名转换数据。 

(3)primary 0.0.127.IN-ADDR.ARPA db.127.0.0 

指定 named 作为127.0.0网段地址转换主服务器,db.127.0.0 文件中包含了 127.0.0.* 形式的地址到域名的转换数据。(127.0.0网段地址是局域网接口的内部 loopback 地址) 

(4)primary 33.22.192.IN-ADDR.ARPA db.192.22.33 

指定 named 作为 192.22.33 网段地址转换主服务器,db.192.22.33 文件中包含了所有 192.22.33.* 形式的地址到域名的转换数据。 

(5) cache . db.cache 

指定 named 从 db.cache 文件中获得 Internet 的顶层“根”服务器地址 

要注意(3)(4)两行中的网段地址是倒写的,另外,各个文件名也是可以自行决定的。 

四、建立各个 DNS 数据文件

下一步,要按 /etc/named.boot 中的定义,建立各个 DNS 数据文件。 

(1)建立正向域名转换数据文件 db.my 

根据 /etc/named.boot 的定义,我们在 /var/named 目录下建立 db.my,其中应该包括所有在 my.com 域内的主机节点。但在机器数量较多时,为了调试方便,建议一开始只把几台节点的数据放入文件,待 named 正常工作后再把其他节点的数据补充进去。下面是 db.my的例子: 

@       IN      SOA     linux.my.com. root.linux.my.com. (
                        199511301       ; serial, todays date + todays serial #
                          28800           ; refresh, seconds
                          7200            ; retry, seconds
                          3600000         ; expire, seconds
                          86400 )         ; minimum, seconds
                NS      linux.my.com.
                MX	10	support.my.com.

localhost   	A     	127.0.0.1
linux		A		192.22.33.20
support2		A		192.22.33.102
hp712		A		192.22.33.160
support		A		192.22.33.100
mail			MX	10	support.my.com.
			MX	20	support2.my.com.
www			CNAME	hp712.my.com.
ftp			CNAME	hp712.my.com.
ns			CNAME	linux.my.com.

其中第一行是 SOA 记录,定义了域名数据的基本信息,依次是 DNS 服务器名、DNS 管理员邮件地址,括号内的第一个数字是文件版本号,每次本文件内容修改后,必须更改此号。其余数字与DNS服务器直接的数据交换有关,在这里我们不需要改动。 

括号后面有一条 NS 记录和一条 MX 记录,定义了域名服务器本身的域名和 username@my.com 形式邮件地址所对应的邮件服务器名字。 

在此以下是各种域名/地址转换数据,其中 A 记录是 DNS 域名到 IP 地址的记录,是必须有的,以 hp712.my.com 为例,在 A 记录中域 my.com 被省略,只写成 hp712,named 在处理时会根据 named.boot 中的定义自动加上 my.com,而其对应 IP 地址为 192.22.33.160。 

另一种记录是 MX 记录。MX 是邮件地址转换记录,本例中定义了将 username@mail.my.com 的邮件地址转换成 username@support.my.com 或 username@support2.my.com,即实际上真正的邮件服务器是 support.my.com 和 support2.my.com,其中 support.my.com 的优先数为 10,support2.my.com 的优先数为 20,所以通常邮件首先被发往优先数小的主机 support.my.com。 

还有一些是为方便提供的 CNAME 记录。CNAME 定义了一些主机的别名,比如我们将 hp712.my.com 作为公司的 www 和 ftp 服务器,所以我们提供了 www.my.com 和 ftp.my.com 作为 hp712.my.com 的别名,用户只需要根据习惯就可以访问公司的 www、ftp 服务器了,如果将来我们换用别的主机作 www 和 ftp 服务器,只需要修改 CNAME 记录就可,对用户没有影响。 

注意:MX 和 CNAME 记录最后的带域名的主机名后必须带一个“.” 

(2)建立反向 DNS 数据文件 db.127.0.0 和 db.192.22.33 

反向 DNS 数据文件用来提供根据 IP 地址查询相应 DNS 主机名,每个网段分别有一个数据文件。 

对于内部网段 127.0.0 通常只有一个地址,即 127.0.0.1 loopback 地址,db.127.0.0 内容如下: 

@       IN      SOA     linux.my.com root.linux.my.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      linux.my.com.

1       IN      PTR     localhost.

而外部网段的数据文件 db.192.22.33 中包含所有主机 IP 地址到 DNS 主机名的转换数据。db.192.22.33 内容如下: 

@               IN      SOA     linux.my.com. root.pc590.my.com. (
                                  199609206       ; Serial
                                  28800   ; Refresh
                                  7200    ; Retry
                                  604800  ; Expire
                                  86400)  ; Minimum TTL
                        NS      linux.my.com.
;
;       All hosts
;
20      PTR     linux.my.com.
102     PTR     support2.my.com.
100     PTR     support.my.com.
160     PTR     hp712.my.com.

反向 DNS 数据文件中的主要部分是 PTR 记录,PTR 记录中的 IP 地址都只有主机号,named 会根据 named.boot 的定义自动加上前面的网络号,注意后面的主机名要附加一个“.” 

(3)获得 db.cache 文件 

在 Linux 系统上通常在 /var/named 下已经提供了一个 named.ca,该文件文件中包含了 Internet 的顶层域名服务器,但这个文件通常会发生变化,所以建议最好从 Internic 下载最新的版本。该文件可通过匿名 ftp 从 ftp.rs.internic.net 下载,在 domain 目录下,文件名为 named.root。注意该文件下载后要拷贝到 named 的工作目录并重命名成 named.boot 中指定的文件名,本文中为 db.cache。 

五、启动和测试 named

首先,根据先前推荐的方法,用 ndc 启动 named: 

ndc start 

然后,为了使用和测试 named,要把 Linux 设置在使用 DNS 状态。方法是在 /etc 目录下,创建 resolv.conf 文件。以我们的例子,/etc/resolv.conf 内容为: 

search my.com
nameserver 192.22.33.20

然后,我们就可以测试 named 了。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -