LINUX下DNS服务器配置

LINUXDNS服务器的实现

      南阳理工学院   计算机系   马丽   0377-3118343

摘要

虽然符号名对于人来说是极为方便的,但是在计算机上实现却不是那么方便的。为了解决这个需求,应运而生了一个域名服务系统DNS,它运行在TCP协议之上,负责将字符名——域名转换成实际相对应的IP地址。这个过程就是域名解析,负责域名解析的机器就叫域名服务器。

域名解析的方法

1.最早的域名解析方法

  最简单的主机名解析方法是,在一个文件中记录所有主机名及与其对应的IP地址,并保证该文件中主机名的唯一性,通过检索文件中的便可以完成主机名的解析。采用这种最简单的解决方法有其历史原因:

  在整个70年代,APRANET只是一个小规模的,由类似的数百台主机组成的团体。于是为了解决主机名解析的问题,将连接到ARPANET上每台主机的名字与对应的地址都保存在HOSTS.TXT文件中。这样每增加一台机器,就必须修改HOSTS.TXT文件一次。随着网络的不断发展,网络中的主机数量爆炸性地增加,这种域名解析的方法已经无法适应新的解析需要。

2. 分布式的域名服务器

在这种分布式的域名服务器体系中,每一台域名服务器(DNS)负责解析属于自己的这一部分主机的域名。

一般说来,如果你所处在公司或组织所拥有的主机并不多,一般是将域名的解析工作交给自己的ISP的域名服务器来完成。而如果你所在组织拥有的主机比较多,我们就可以组建自己的域名服务器负责解析你所在组织的主机。

通常意义上的DNS服务器有两个层面上的含义:对于一个客户机的用户来讲,DNS服务器就是在tcpip设置中指定的服务器,其是能完成自己的域名解析请求的服务器;对于一个网络管理员来讲,DNS服务器不仅仅意味着能应答局域网用户的解析请求,实现客户机的域名解析的服务器,还是能向互联网提供自己网络域名解析信息的服务器。

对于实现客户解析请求应答的情况来讲,工作原理如下图所示:

对于向互联网提供自己网络域名解析信息情况来讲,工作原理如下图所示:

在Linux服务器下,这两种应用需求是由一个服务器软件—bind实现的。也就是使用该软件可以同时满足第一种和第二种的需求,区别仅仅在于配置文件的设置不同。

 

域名服务器建立实例

1. 实例环境

  假设我们需要建立一台应用于以下情况的一个主域名服务器。

  1. 拥有一个C类网段地址,为202.102.240.0

  2. 企业域名注册为nyist.net

3. 域名服务器的IP定为202.102.240.65主机名为ns1.nyist.net

4. 校园网通过huwei8016交换机与Internet连接。

  5. 要解析的服务器有:

Proxy68.nyist.net (202.102.240.68) 代理服务器
          
          
www.nyist.net     (202.102.240.73) Web服务器
          
          
mail.nyist.net    (202.102.240.77) E-Mail服务器
         
         
vod.nyist.net     (202.102.240.79)   视频服务器
         
         

2 安装前的准备工作

   系统是否已安装bind

rpm -q bind

   查询已安装Bind的文件列表

rpm -ql bind

BIND可被配置成几种不同的运行方式,通用的BIND配置为纯解析器系统,纯缓存服务器,主服务器,辅服务器.

 解析器是指通过域名服务器查询域信息的程序代码,unix系统中,它是以库例程的方式实现的,而并不是一个单独的客户程序.纯解析器系统很容易配置,只要设置一下/etc/resolv.conf文件.这种方式通常用于由于某些限制不能在本地运行域名服务器软件的系统中

  首先要保证在作为系中统有/etc/resolv.conf/etc/hosts.conf这两个文件。

  /etc/resolv.conf文件中内容如下所示:

domain  nyist.net

nameserver 202.102.240.65

nameserver 202.102.224.68

其中第一行指出对于任何希望连到它上面的主机应该搜寻的域。而后指出了在哪个地址可以找到需要的域名服务大。

当配置解析器库以使用BIND名字服务进行主机查找,你也必须告知它使用哪个名字服务器。对此有一个独立的文件,称为resolv.conf。如果这个文件不存在或是空的,那么解析器就假设名字服务器在你本地的主机上。

  如果在你的本地主机上运行一个名字服务器,你必须单独地设置它。

  resolv.conf中最重要的选项是nameserver它给出了要使用的名字服务器的IP地址。如果你通过几次给出nameserver选项指定了几个名字服务器,那么它们会以给出的顺序试用。因此,你应该首先给出最可靠的服务器。目前,至多支持三个名字服务器。

  如果没有给出nameserver选项,那么解析器试图连接本地主机上的名字服务器。

  其它两个选项,domainsearch涉及到如果BIND不能用第一个请求解析主机名时附加在主机名上的缺省域。search选项指定了一个试用的域名列表。列表项是用空格或制表符分开的。

  如果没有给出search选项,就会通过使用域名本身从本地域名以及直至root的父域中建立一个搜寻列表。本地域名可以使用domain语句给出;如果一个也没有给出,那么解析器就通过系统调用getdomainname(2)来获取。

  /etc/hosts.conf的内容如下所示:

order hosts,bind

multi on

这里的设置告诉主机名称先在/etc/hosts文件中搜索,然后再查询域名服务器。

3 修改主配置文件/etc/named.conf   vi /etc/name.conf

// generated by named-bootconf.pl

 

options {

    directory "/var/named";

    /*

     * If there is a firewall between you and nameservers you want

     * to talk to, you might need to uncomment the query-source

     * directive below.  Previous versions of BIND always asked

     * questions using port 53, but BIND 8.1 uses an unprivileged

     * port by default.

     */

    //query-source address 202.102.240.65 port 53;

};

// a caching only nameserver config

zone "." {

    type hint;

    file "named.ca";

};

 

zone "0.0.127.in-addr.arpa" {

    type master;

    file "named.local";

};

zone "nyist.net" {

    type master;

    file "db.nyist.net";

};

zone "240.102.202.in-addr.arpa" {

    type master;

    file "db.240.102.202";

};

文件的第一部分option指定域数据文件都存放在/var/name目录下,一般情况不做修改。

  文件第二部分,zone"."定义了根域信息,也就是当域名服务器收到域名查询时,发现客户查询请求时,发现客户希望查询的域名不是本地域名是,它就会查询询/etc/named.ca中定义的根域名服务器,直到最终得到自己希望查询的域名。

文件的第三部分zone "localhost" zone "0.0.127.in-addr-arpa"定义了本地回路的正反向解析,一般不修改。

文件的第四部分是关键,这里设置我们想要的域名。

定义了域nyist.net的相关信息。

  master是指该服务器为主域服务器

  type指定该哉性质

hint指根域

4.cd /var/named

touch  db.nyist.net      创建正向解析文件db.nyist.net

touch db.240.102.202      创建反向解析文件db.240.102.202

  cat  named.local >  db.nyist.net   重定向到正向解析文件db.nyist.net

cat   named.local >  db.240.102.202  重定向到反向解析文件db.240.102.202

5.  建立正向解析文件 db.nyist.net

vi db.nyist.net

; Created Tue Jan 11 00:26:28 PST 2000 by services/ns-admin

; from setup@proxy73.nyist.net

;

@   IN SOA  ns1.nyist.net. root.nyist.net. (

        947579188       ; Serial Number

        10800           ; Refresh after 3 hours

        3600            ; Retry after 1 hour

        604800          ; Expire after 1 week

        86400 )         ; Minimum TTL of 1 day

 

@   IN NS   ns1.nyist.net.(ns1为本机计算机名)

 

nyist.net   IN NS   202.102.240.65

localhost   IN A    127.0.0.1

//添加主机记录

ns1        IN A  202.102.240.65

proxy66       IN A  202.102.240.66

proxy68 IN A    202.102.240.68

proxy69 IN A    202.102.240.69

proxy72 IN A    202.102.240.72

proxy74 IN A    202.102.240.74

proxy75 IN A    202.102.240.75

proxy78 IN A    202.102.240.78

proxy90 IN A    202.102.240.90

mail2          IN A  202.102.240.76

mail           IN A  202.102.240.77

java           IN A  202.102.240.71

book           IN A  202.102.240.81

book2         IN A   202.102.240.82

book3         IN A   202.102.240.83

telnet         IN A  202.102.240.85

proxyiitcc    IN A   202.102.240.88

test1         IN CNAME proxyiitcc

freeweb       IN A   202.102.240.86

www1           IN A  202.102.240.73

www2           IN A  202.102.240.92

www3           IN A  202.102.240.93

vod           IN A    202.102.240.79

vod2          IN A    202.102.240.189

ibmnas        IN A    202.102.240.87

lab           IN A    202.102.240.84

jwc           IN CNAME  lab

 

nyist.net.  IN A    202.102.240.77

 

;CNAME

www           IN CNAME      www1

proxy73       IN CNAME      www1

iitcc         IN  CNAME       www1

hdd           IN CNAME        www1

gjyj             IN CNAME        www1

fwb           IN CNAME        www1

cjy           IN CNAME        www1

zzy           IN CNAME        www1

simple      IN CNAME      www2

todaynet    IN CNAME      www2

luntan        IN CNAME        www2

luntanclose   IN CNAME        www2

softbase          IN CNAME       www2

science           IN CNAME        www2

ladder        IN CNAME        www2

zjjz          IN CNAME        www2

;hengtian domain

hengtian    IN CNAME    www3

news    IN CNAME    www3

army    IN CNAME    www3

english     IN CNAME    www3

female  IN CNAME    www3

dangban       IN CNAME       www3

qiusuo        IN CNAME       www3

zlzc          IN CNAME        www3

digest        IN CNAME        www3

tuanwei       IN CNAME        www3

hexin         IN CNAME        www3

ziliao        IN CNAME        www3         

tengfei       IN CNAME       vod

vod3          IN CNAME       ibmnas

movie         IN CNAME       ibmnas

mould         IN CNAME        freeweb

366           IN CNAME        freeweb

rose          IN CNAME        freeweb

wushaoxing    IN CNAME        freeweb

litie         IN CNAME        freeweb

wenxue        IN CNAME        freeweb

mail             IN MX   10      mail

mail2        IN MX   20      mail2

1SOA是主服务器一定要设置的命令,通常入在第一行

  2。最前面的符号“@”代表目前所管辖的域。 “IN”代表地址类别,这里就是固定使用“IN”的。

3。填入域名服务器,记住由于DNS数据文件的特殊格式规定,在最后一定要加上“·”我们填入ns.nyist.net.

4.域名服务器管理员的E-MAIL地址,但要注意的是,E-Mail地址中的分隔符“@”在这里用“·”来代替,在最后也要加上,在这里,我们相应写入:“root.nyist.net

5. 接下来在括号内填上各种选项:

  文件版本号:当你修改这个文件的内容时,也要修改这个版本序列号。以此来区分是否有更新。

  更新时间:指定二级服务器向主服务器拷贝数据的更新时间周期。

  重试时间:指定二级服务器在更新出现通信故障时的重试时间。

  终止时间:指定二级服务器重新执行更新动作后仍然无法完成更新任务而终止更新的时间。

  生存时间:指定当域名服务器询问某个域名和其IP地址后,在域名服务器上放置的时间。

  注:二级服务器所设定的域名服务器是主服务器的备份主机。

  2. 在第二行中,我们用NS命令指定这个域的域名服务器。在这里我们指出这个域的域名服务器是“ns1.nyist.net”

3. 接下来我们使用A命令来指定域名与IP地址的对应关系。  

4. 然后,我们使用了CNAME命令指定别名记录以供使用。

5.最后,我们指定了邮件交换器记录。

   6. 建立反向解析文件db.240.102.202  

 

 

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

文件内容如下:db.240.102.202

 

 

; Created Tue Jan 11 00 :26:28 PST 2000 by services/ns-admin

; from setup@proxy73.nyist.net

;

@       IN      SOA     ns1.nyist.net. root.nyist.net.  (

                                      1997022700 ; Serial

                                      28800      ; Refresh

                                      14400      ; Retry

                                      3600000    ; Expire

                                      86400 )    ; Minimum

              IN      NS      ns1.nyist.net.

 

1       IN      PTR     localhost.

65  IN PTR  ns1.nyist.net.

66  IN PTR  proxy66.nyist.net.

69  IN PTR  proxy69.nyist.net.

68  IN PTR  proxy68.nyist.net.

76  IN PTR  mail2.nyist.net.

77  IN PTR  mail.nyist.net.

72  IN PTR  proxy72.nyist.net.

73  IN PTR  www1.nyist.net.

74  IN PTR  proxy74.nyist.net.

75  IN PTR  proxy75.nyist.net.

81  IN PTR  book.nyist.net.

88  IN PTR  proxyiitcc.nyist.net.

92  IN PTR  www2.nyist.net.

93  IN PTR  www3.nyist.net.

78  IN PTR  proxy78.nyist.net.

90  IN PTR  proxy90.nyist.net.

71  IN PTR  java.nyist.net.

79     IN PTR vod.nyist.net.

89     IN PTR vod2.nyist.net.

84     IN PTR lab.nyist.net.

86    IN PTR freeweb.nyist.net.

87   IN PTR vod3.nyist.net.

 

 

启动DNS服务器

  启动dns服务器可以使用命令:ndc start,若输出结果为”new pid is 2317”,若输出错误,则需要查看上面的配置文件是否正确设置。这时,使用命令”ps ax|grep named”       应该输出:

     2317 ?        S      0:00 /usr/sbin/named

     2319 pts/0    S      0:00 grep named

  停止dns服务器进程的命令为:ndc stop

  也可以使用命令/etc/rc.d/init.d/named start|stop来启动或关闭某个服务。

  若需要在启动时自动启动DNS服务器,则使用命令:

  /sbin/chkconfig –level 35 named on

  若需要关闭自动启动DNS服务器,则使用命令:

  /sbin/chkconfig –level 35 named off

 

测试域名服务器

  8.3.1 使用nslookup测试

  nslookup命令的功能是查询域名服务器中的数据资料。下例就是使用它来测试域名服务器是否架设成功,其中斜体字代表要输入的内容。

 

# nslookup

Default server:ns1.nyist.net

Address:202.102.240.65 ;能出现这些信息代表成功>

  8.3.2 使用ping测试

  还有一种更简单的测试方法,那就是用ping命令,如果成功将显示:

 

# ping www.nyist.net

Ping www1.nyist.net(202.102.240.73);56 data bytes64 bytes from

202.102.240.73:icmp_seq=0 ttl=255 time=1.3ms64 bytes from

202.102.240.73:icmp_seq=1 ttl=255 time=0.6ms64 bytes from

202.102.240.73:icmp_seq=2 ttl=255 time=0.6ms……

小技巧

  安装好域名服务器后,在内部使用域名进行远程连接时,会发现速度非常慢。其实只要/etc/hosts中加上所有内部的机器的域名就可以了。

辅服务器

辅服务器从主服务器上获取域信息的完整拷贝.也能以授权方式回答有关域的查询.我们用' nyist.net'作为例子,我们需要五个基本配置文件:

创建或修改主服务器上的/etc/named.conf:

options {

};

之间加入allow-transfer{202.102.240.x;}  (202.102.240.x为辅助DNS服务器的IP)

/etc/named.conf

/var/named/named.ca

/var/named/named.local

创建或修改/etc/named.conf:

 // generated by named-bootconf.pl

options {

directory "/var/named";

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

zone '.' {

type hint;

file "named.ca";

};

zone '0.0.127.in-addr.arpa' {

type master;

file "named.local";

};

//there are our slave zone files

zone "nyist.net" {

type slave;

file "db.nyist.net";

masters {202.102.240.65;};

};

zone '0.16.172.in-addr.arpa' {

type slave;

file 'db.240.102.202';

masters {202.102.240.65;};

};

  在文件中'masters {202.102.240.65;};'其中的IP地址是你网络中主服务器的IP地址.

从主服务器上拷贝/var/named/named.ca/var/named/named.local这两个文件.

从主服务器上拷贝/var/named/db.nyist.net/var/named/db.240.102.202文件。

  实际运行的服务器可以是以上其中一种配置,也能同时包含多种配置.但所有的系统都应该运行解析器.

纯缓存服务器

  纯缓存服务器运行域名服务器软件,但并没有域名服务器数据库文件,它记录下每一个从远程域名服务器获得的数据,以回答将来对同一信息的查询.

  纯缓存服务器所需的三个基本配置文件:

/etc/named.conf

/var/named/named.ca

/var/named/named.local

如果是用rpm封装的软件包安装的话,这三个文件会自动生成,我们只需要修改/etc/named.conf.其中/var/named.ca一般是不用修改的.

创建或修改/etc/named.conf:

// generated by named-bootconf.pl

options {

directory "/var/named";

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

forwarders {172.16.0.1;172.16.0.11;};

};

zone '.' {

type hint;

file "named.ca";

};

zone '0.0.127.in-addr.arpa' {

type master;

file "named.local";

};

在文件中'forwarders {202.102.240.65202.102.240.x.;};'其中的IP地址是你网络中主服务器和辅服务器的IP地址

 

创建或修改/var/named/named.local

@ IN SOA localhost. root.localhost. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS localhost.

1 IN PTR localhost.

创建或修改/var/named/named.ca:

至于/var/named/named.ca就要从redhat linux光碟获得了.也用命令从互联网上获得:

dig @.aroot-servers.net.ns > /var/named/named.ca

 

 

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值