第13章、DNS服务

第十三章、DNS 服务一、 DNS 概述✧ 1、DNS 简述 (Internet Domain Name System)DNS 中包含了用来按照一种分层结构定义Internet 上使用主机名字的语法

第十三章、DNS 服务

一、 DNS 概述

✧ 1、DNS 简述 (Internet Domain Name System)

DNS 中包含了用来按照一种分层结构定义Internet 上使用主机名字的语法,还有名字的授权规则,以及为了定义名字和IP 地址的对应,系统需要进行的所有设置。 实际上,DNS 就是一个分布式数据库。它允许对整个数据库的各个部分进行本地控制,同时整个网络也能通过客户机/服务器的访问方式访问每个部分的数据,借助备份和缓存机制,来获得更高可用性和拥有足够的性能。

DNS 数据库就像一棵倒挂着的树。这棵逆向着的树就称为域名空间。树的最大深度不得超过127层,树中每个节点都有一个可以长达63个字符的文本标号。

✧ 域——整个的域名空间可根据组织划分或管理分类,组织成一个梳状结构,输上的每一个节点叫做domain ,是一个标识。

域名—— 一个domain 的名字就是从根(. )开始,到当前节点的所有domain 标

标志才能够唯一。例如Cisco com 就是support.cisco.com 的顶级域,cisco 是com 的子域,support 是主机名。 ✧ 3、zone 和domain 的不同

,

✧ 4、域名服务器的类型

主域名服务器 (master server)

master server是一个domain 信息的最根本的来源,它所装载的域信息来源于域管理员所创建的磁盘文件,通过本地维护,更新有关服务器授权管理域的最精确信息。它具有最权威的回答,完成任何关于授权管理的域的查询。

辅助域名服务器(slave server)

从主域名服务器上获得域信息的完整集合。域文件是从主域名服务器传过来并以本地文件形式存储在辅助域名服务器的磁盘上的,辅助域名服务器保留了一份本域信息的完整副本,也能以授权的方式回答用户的查询。因而,辅助域名服务器具有主域名服务器的部分功能。

高速缓存域名服务器(caching only server)

缓存服务器可以将它收到的信息存储下来,并再将其提供给其他的用户进行查询,直到这些信息过期。它的配置中没有任何本地的授权域的配置信息。它可以响应用户的请求,并询问其他授权的域名服务器,从而得到回答用户的请求的信息。

这个服务器通常也被称作递归查询服务器(recursive name server),他为本地客户执行递归查询。为了提高性能,递归查询服务器会保存查询到的结果。

转发服务器(forwarding server)

所有非本域的和在缓存中无法找到的域名查询都将转发到指定的外部DNS 服务器上,由这台外部DNS 服务器来完成解析工作并返回给转发服务器缓存,因此转发服务器的缓存中记录了丰富的域名信息。因而对非本域的查询,很可能转发器就可以在缓存中找到答案,避免了再次向外部发送查询,减少了流量。

转发服务器典型的应用是,用于用户不希望站点内的服务器直接和外部服务器通信的情况下。典型环境包括一组私用服务器和一个网络防火墙,私用服务器不能透过防火墙向因特网上的DNS 服务器提交域名请求,它就会向可以解析域名的转发服务器提交查询,转发服务器就会代表内部私用服务器询问因特网上的DNS 服务器,并将查询到的结果返还给私用服务器。

二、 配置DNS 服务

✧ 1、BIND 简介

在Linux 系统中,DNS 是由Berkeley 的BIND (Berkeley Internet Name Domain)软件实现的

BIND 是一项开源项目

BIND 被多数UNIX 及类UNIX 厂商所采用

根据Internet 软件协会(ISC )对BIND 所下的定义,在BIND 中包含以下3种元件: ✓ DNS 服务器软件

✓ DNS Resolver函数库

✓ DNS 工具

✧ 2、安装软件包

,

✧ 配置DNS 服务有两个配置文件(主配置文件、区域文件)

1、主配置文件(/etc/named.conf) ○

最基本的配置如下:

2、区域文件 (/var/named)目录下 ○

在 /var/named目录下手工创建一个名字与主配置文件里指定的区域文件相同的文件。并编辑它,我们在这就起名为“baidu.txt ”。

,

括号里的5行数字代表的含义:

1、serial :(20090130)这个区域信息文件的版本号,它是一个整数。辅助域名服务器用

它来确定这个区域文件是何时改变的。每次改变信息文件时,都应该把这个数加1。

2、refresh :(1D )主——辅,服务器多长时间同步更新一次。

辅助域名服务器在试图检查主域名服务器的SOA 记录之前应等待的秒数。SOA

记录不经常改变,一次可以把这个值设置一天。

3、retry :( 5000)辅助服务器在主服务器不能使用时,重试对主服务器的请求应等待的

秒数。也就是说主——辅服务器同步失败后,多长时间再次同步。

4、expire :(30D )

这是辅助服务器在不能与主服务器取得联系的情况下丢掉区信息之前

应等待的时间,一般应该在30天左右。就是放弃同步。

5、minimum :(864000)或(10D )当资源记录没有指定ttl 时默认的缓存值。如果网络

没有太大的变化,那么这个数可以设的很大。可以在资源记录中指定一个ttl 值来代替它。

常用时间单位:hour (H )小时。

minute (M )分钟。

sec (S )秒。在此不写任何单位,默认就是以秒为单位。

day (D )天。

如果要增加反向解析就要在主配置文件/etc/named.conf里在添加一个zone 语句;在/var/named目录里,也得手工在创建并编写一个相应的区域文件。

下图是主配置文件named.conf 里面加的语句:

,

下图是创建的一个反向解析的区域文件的配置:

如果要在此DNS 服务器上解析另外一个域名,就在主配置文件named.conf

中再增加一条zone 语句,同时/var/named目录下也得相应的增加一条区域文件。依次可以添加无数个要解析的域名。

下图是主配置文件named.conf 添加的zone 语句:

下图是为“yanbo.com ”此域名编写的区域文件,在IP 为“192.168.1.8”主机上:

,

✧ 4、配置辅助DNS 区域服务器

在另外一台想要作为辅助DNS 服务器上,编辑DNS 服务配置文件/etc/named.conf。

会自动同步过去。

◆ 一定要让系统named 用户对named 目录和其子目录有rwx 的权限!!!

也可以跟Windows 2003 互作 主——辅,服务器。

✧ 5、配置动态DNS (DDNS )

步骤1:

,

上面字段中红色的字符都是加上的,添加的allow-update 语句指向的是DHCP 服务器的IP 地址。是允许更新的意思。

步骤2:

为DNS 服务器创建区域文件。此文件默认是没有的,需要手工创建。 # vim

/var/named/baidu.txt

✓ 管理员只需将网关内关键的服务(如mail 、ftp 等)的记录写入区域文件即可。

✓ 动态DNS 允许用户主机在获得IP 地址时将自身的域名发给DHCP 服务器,并由DHCP

服务,将其域名与IP 地址向DNS 提交,最后由DNS 服务在正向与反向解析区域文件中添加或修改相关的资源记录,并在地址释放时删除该记录。

步骤3:

修改DHCP 服务的主配置文件 /etc/dhcpd.conf

,

}

subnet 192.168.2.0 netmask 255.255.255.0 {

option routers

192.168.2.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 192.168.1.200;

ddns-domainname “baidu.com ”;

range dynamic-bootp 192.168.2.50 192.168.2.90;

default-lease-time 864000;

max-lease-time 1728000;

}

subnet 192.168.3.0 netmask 255.255.255.0 {

option routers 192.168.3.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 192.168.1.200;

range dynamic-bootp 192.168.3.50 192.168.3.90;

default-lease-time 864000;

max-lease-time 1728000;

}

zone baidu.com {

primary 192.168.1.200;

}

zone 1.168.192.in-addr.arpa. {

primary 192.168.1.200;

}

上面的配置例子中:红色的是作动态DNS 添加的语句。一个动态DNS 只能动态解析一个域名,我试了,下面的截图中就把第二个要解析的域名注释掉了。zone 语句的baidu.com. ”com ”后面加点不加 都可以,书上说得加,我作了不加也可以。

,

步骤4:

修改 /var/named 目录的权限。因为动态更新会使DNS 守护进程产生临时数据,这些数据会保存在以“原区域文件.jnl ”文件中,并且这些数据会在15分钟后覆盖原区域文件,因此有必要修改目录的访问权限是守护进程有权写入数据。其实就是让named 用户对 /var/named 目录有读写权限。

步骤5:

重新启动DHCP 服务和DNS 服务。 # service dhcpd restart

# service named restart

步骤6:

在Linux 客户端主机中,只需要简单地输入一条下面的命令就可以在服务端产生更新记录: # dhclient -H pc3

# dhclient eth0 -H

( pc3在这可以是用户随便起的一个名字)

6、配置DNS 转发服务器(forward )

一个转发域是在每个域基础上进行配置转发的一种方式。在本机上没有区域文件。

,

三、 检查DNS 服务启动情况

✧ 1、检查进程

# ps aux

|grep named

✧ 2、检查端口

# netstat -naut |grep 53

四、 DNS 服务的日志信息

查看 /etc/named.caching-nameserver.conf获得日志文件的存放位置:

/var/named/data/named.run

五、 诊断工具

诊断工具包含在bind-utils-9.3.3.-7.el5中,其中常用的有nslookup 、host 、dig 。 ✧ 1、nslookup (有两种模式:交互模式和非交互模式)

标签: