Linux -- 配置DNS服务器

在Linux中,DNS服务器(Domain Name Server)就是域名服务器。是由柏克莱网际域名BIND(Berkeley Internet Name Domain)软件实现的。BIND是一个客户/服务系统,其客户方面称为转换程序(resolver),用于产生域名信息的查询,将这类信息发送给服务器,DNS软件回答转换程序的查询。BIND的服务方面是一个称为named的守护进程。
DNS的作用是把IP地址转化为代表主机、网络和邮件别名的助记名。它把整个IP地址和命名空间分解为不同的逻辑组来做这项工作。每个组对它所拥有的计算机和其他信息具有控制权。

 一、DNS服务器的基本概念
在一个TCP/IP架构的网络(例如Internet)环境中,DNS是一个非常重要而且常用的系统。其主要的功能就是将人易于记忆的域名与人不容易记忆的IP地址相互转换。而上面执行DNS服务的网络主机,就可以称为DNS服务器。通常认为DNS只是将域名转换成IP地址,然后再使用所查到的IP地址去连接(俗称“正向解析”)。事实上,将IP地址转换成域名的功能也是相当常用的,当登录到一台UNIX工作站时,工作站就会去进行反向检查,找出用户是从哪个地方登录进来的(俗称“逆向解析”)。
DNS服务器应用于TCP/IP网络(如一般的局域网或互联网等)中,用来通过用户友好的名称(如www.baidu.com)代替难记的IP地址(比如198.8.26.16),以定位计算机和服务。因此,如果需要用到如www.baidu.com等域名的地方,都得首先确保已为此名字在DNS服务器中作好了相应的与IP地址的映射工作。

1.DNS服务器的分类
BIND可以配置成以几种不同的方法运行的DNS,常见的BIND配置是唯转换程序系统、唯高速缓存系统、主服务器和辅助服务器。
唯转换程序系统
转换程序是一段要求域名服务器提供域信息的程序,在Linux系统中,是作为一个库程序来实现的,不是一个单独的客户程序。在唯转换程序系统中,仅使用转换程序,并不运行域名服务器。这种系统比较容易配置,只需要设置/etc/resolv.conf文件。而其他3个BIND配置选项都是用于named服务软件的。
唯高速缓存服务器
唯高速缓存服务器(Caching-only Server)可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询的回答,一旦取得一个答案,就会放在高速缓存中,以后查询相同的信息时予以回答。所有的域名服务器都按这种方式使用高速缓存中的信息,但唯高速缓存服务器则依赖于这一技术提供所有的域名服务器信息。唯高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。
唯高速缓存服务器只需要配置一个高速缓存文件,但最常见的配置还包括一个回送文件,这是最常见的域名服务器配置。接着才是唯转换程序配置,它是最容易配置的。
主服务器
主服务器(Primary Name Server)是特定域内所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其他域的任何查询。
配置主服务器需要一整套配置文件,包括正规域的区文件(named.hosts)和反向域的区文件(named.rev)、引导文件(named.conf)、高速缓存(named.ca)和回送文件(named.local),别的服务器的配置都不需要这样一整套文件。
辅助域名服务器
辅助域名服务器(Secondary Name Server)可从主服务器中转移一整套域信息。域文件是从主服务器中转移出来的,并作为本地磁盘文件存储在辅助服务器中。这种转移称为“域文件转移”。在辅助域名服务器中有一个所有域信息的完整复制,可以有权威地回答对该域的查询,因此,辅助域名服务器也称作权威性服务器。
配置辅助域名服务器不需要生成本地域文件,因为可以从主服务器中下载该域文件。然而其他的文件是确实需要的,包括引导文件、高速缓存文件和回送文件。
一个域名服务器可以是这类配置中的任何一种,但经常是将多种配置类型的元素组合在一起。然而所有的系统都要运行转换程序。
2.DNS的组成
在概念上可以把DNS分为3个部分。
域名空间
这是标识一组主机并提供它们的有关信息的树结构的详细说明。树上的每一个节点都有它控制下的主机的有关信息的数据库。查询命令试图从这个数据库中提取适当的信息。简单地说,这只是所有不同类型信息的列表,这些信息是域名、IP地址、邮件别名和那些在DNS系统中能查到的内容。
域名服务器
这是保持并维护域名空间中数据的程序。每个域名服务器含有一个域名空间子集的完整信息,并保存其他有关部分的信息。一个域名服务器拥有它控制范围的完整信息。控制的信息按区进行划分,区可以分布在不同的域名服务器上,以便为每个区提供服务。每个域名服务器都知道每个负责其他区的域名服务器。如果来了一个请求,它请求给定域名服务器负责的区的信息,那么这个域名服务器只是简单地返回信息。但是,如果请求是不同区的信息,那么这个域名服务器就要与控制该区的相应服务器联系。
解析器
解析器是简单的程序或子程序库,它从服务器中提取信息以响应对域名空间中主机的查询。

3. DNS 查询过程

二、建立DNS服务器

BIND是为BSD操作系统开发的一套网络域名服务系统。BIND软件一直在不断地更新,以适应新的安全性和管理的需要。本书讲解的BIND是9.3.1的版本,支持IPv6等新的网络技术。另外还增加了新的功能:
 提供DNS动态更新功能。
 提供DNS更新通知功能。
 可以进行IP地址查询控制、域间传送和修改权限控制。
 改进了域间传送效率。
可以从http://www.isc.org/index.pl?/sw/bind/下载bind-9.3.1.tar.gz的安装软件包,或者下载bind的源代码包,包括:bind-utils-version、bind-version、caching-nameserverversion,这3个是rpm版本。
对于DNS服务器的配置需要涉及5个主要文件,另外还有4个文件也与DNS有关。
1./etc/named.conf
定义了域数据库信息的基本参数和源点,该文件可以存放在本地或远程的服务器上。
举例:

options {
directory "/var/named"; #定义了named要读写文件的路径
};
zone "." {
type hint; #表明在启动时被用来初始化域名服务器的文件
是一个线索文件,每一个服务器都有一个线
索区。
file "named.ca"; #指定所要读取的文件名
};
zone "0.0.127.in-addr.arpa"{
type master; #表明服务器是主域名服务器
file "named.local";
};
zone "mycompany.com" in {
type master;
file "name2ip.conf";
};
zone "10.168.192.in-addr.arpa" {
type master;
file "ip2name.conf";
};

2./var/named/name2ip.conf
正向解析文件。用来定义域信息,实现主机名和地址之间的镜像、识别mail服务器和提供各种域信息。
举例:

@ IN SOA thj.mycompany.com. root.thj.mycompany.com. 
#所有的区文件都以SOA开头,@指定当前的信息源,thj.mycompany.com
这个值可以将域名和named.conf连接起来。通常只有一个@符号。
( 2000062900 ;serial #序列号
28800 ; refresh #刷新周期,以秒为单位
14400 ; retry #循环周期
3600000; expire #中止时间
86400 );
minuum #time-to-live的时间
IN NS thj.mycompany.com. #定义域名服务器
IN MX 10 thj.mycompany.com. #定义邮件服务器,10表示优先级,越小越高
localhost IN A 127.0.0.1 #实现域到IP的映射
thj IN A 192.168.10.1
www CNAME thj #CNAME前后两者为等价名
mail CNAME thj

3./var/named/ip2name.conf
反向解析文件。实现IP地址跟域名的映射。
举例:

@ IN SOA thj.mycompany.com. root.thj.mycompany.com.
( 2000062900 ;serial 28800 ; refresh 14400 ;
retry  3600000;
expire  86400 );
minuum IN NS thj.mycompany.com.
IN MX 10 thj.mycompany.com.
1 IN PTR thj.mycompany.com. #定义逆向关系,
即192.168.10.1与thj.mycompany.com之间的映射,也可以用作定义一个反转域。

4./var/named/named.local
本地主机解析文件。解析回送地址localhost即127.0.0.1,回送地址是一种特殊的约定,即允许在处理本地机地址时与处理远程机地址的方法一样,这样可以简化处理过程,不必将数据发送到物理网络上。
举例:

@ IN SOA localhost. root.localhost. (
1997022700 ;
Serial 28800;
Refresh  ;
Retry 3600000;
Expire 86400 );
Minimum IN NS localhost.
1 IN PTR localhost.

5./var/named/named.ca
线索文件。初始化缓冲区的信息。该文件不需要管理员更改,而是系统自带。
举例:

. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33

6./etc/hosts
实现与网上其他主要计算机的映射,它通常是当作DNS的备份出现的,即当DNS系统出现问题的时候才使用hosts表。
举例:

127.0.0.1 localhost localhost.localdomain localhost
192.168.10.1 thj.mycompany.com thj #由于每台服务器都会有
几个域名与IP的对应关系是永久的,所以hosts表中存放的应该是这些域名和IP地址

7./etc/resolv.conf
指定域名服务器的IP和搜索顺序。
举例:

domain #定义本地域名
search mycompany.com #简化用户输入的主机名,
即当用户输入thj时,使DNS可以把它成功地解析为
thj.mycompany.com。与domain是互斥的,无论哪个出现都是用来定义search列表的
nameserver 192.168.10.1 #定义域名服务器的IP,最多三个,建议一般使用两个

8./etc/hosts.conf
如何实现hosts表与DNS的关系和接口。
举例:

order hosts,bind #解析域名的顺序
multi on #允许一台计算机拥有多个IP

9./etc/nsswitch.conf
用于处理Hosts表和DNS的顺序。
举例:

passwd: files nisplus nis
shadow: files nisplus nis
group: files nisplus nis
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: nisplus
publickey: nisplus
automount: files nisplus
aliases: files nisplus

专家指南:DNS服务器的测试及管理方法
1.管理员修改完DNS的配置文件,需要执行命令
/etc/rc.d/init.d/named restart
使前边对配置文件做的修改生效。
2.ndc工具:用来向named进程发送信号。
3.nslookup:测试正向、反向的解析是否正常。
DNS服务是许多服务的基础,所以配置一台Linux服务器应该从DNS开始,并要从一开始就对服务器配置成什么样子有一个整体的把握,这样才能保证配置之间能够相互协调,避免错误的发生。

参考:http://book.51cto.com/art/200707/50942.htm

时间: 2024-10-14 07:19:11

Linux -- 配置DNS服务器的相关文章

Linux下DNS服务器搭建详解

 Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析. 下面对DNS的工作流程及原理进行简要说明 DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts:若无结果,则client查看本地的DNS缓存服务器:若无结果,则查找所属域的首选DNS服务器:若此时本地首选DN

学习记录——配置DNS服务器

一实验准备工作 主DNS服务器 1.配置主机域名 [[email protected] ~]# hostname xuan.com   ///临时修改名,永久修改需要去/etc/sysconfig/network 修改.然后记住在/etc/hosts 里更新自己的域,为了方便实验,先修改了名字 2.取消dhcp,ip地址改为静态 3.安装DNS [[email protected] -]# yum -y install bind 二配置DNS服务器 1.查看安装文件目录 [[email prot

redhat 6.5 & windows 配置DNS服务器

场景描述: 某客户处,企业内有多台Linux搭建的DNS服务器,也有多台windows 搭建的DNS服务器.某客户想把Linux的DNS服务器添加到windows 的DNS服务器上的"反向查找区域".如下图所示: 环境搭建: 说明:windows的DNS服务器搭建略过,本文将重点介绍使用redhat 6.5搭建DNS服务器. Redhat 6.5搭建DNS服务器之环境介绍: 一台windows DNS服务器,计算机名:dc01.contoso.com,IP:192.168.10.10

RedHat6.3配置DNS服务器

RedHat6.3配置DNS服务器 作者:沈小然 北京证联支付有限责任公司 1         系统环境 OS:Red Hat Enterprise Linux Server release 6.3 (Santiago) DNS 服务器:172.21.20.1/255.255.0.0 2         安装DNS # yum -y install bind 3         配置DNS 3.1           开始配置DNS主配置文件 named.conf 编辑 /etc/named.c

在Debian上用Bind 配置DNS服务器

1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,DNS是什么? --DNS,DomainName Service,或者Domain Name Server,域名服务/域名服务器. 你在你的浏览器里面输入http://www.linuxsir.com之后,之所以可以上去,就是因为有了DNS. 简单地说,DNS把一串名字,转换成了IP地址.你可能会说:

CentOS安装和配置dns服务器

(1)dns介绍 1.基本介绍 名字解析: NetBIOS名:localhost wins hosts FQDN:完全限定域名,www.baidu.com hosts文件: 作用:实现名字解析,主要为本地主机名丶集群节点提供快速解析,集中式数据库 dns服务器: 作用:实现名字解析(将主机名解析成ip地址),分布式数据库 2.dns解析流程:客户端解析www.baidu.com 1)客户端查询自己的缓存(windows中的hosts文件也是缓存),如果没有将查询发送到/etc/resolv.co

Linux搭建DNS服务器

DNS相关概念 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 作用:解析域名 区域:正向区域.反向区域 记录: A记录 MX记录:搭建邮件服务器 PTR记录:反向记录,出现在反向区域中 CNAME记录:别名记录 NS记录:DNS授权服

Linux配置NTP服务器

Linux配置NTP服务器   背景 当服务器多了,时间准确与否,一致与否是个大问题.虽然这个问题总是被忽略,但是统一一致的时间是很有必要的.下面说一下在局域网内配置Linux时间服务器的方法. 配置的环境及要求: 1.假设在192.168.0.0网段内,要以IP为192.168.0.240的Linux机器时间服务器. 2.192.168.0.240服务器能上外网,能与比较权威的公网时间服务器同步 3.同网段内的其他机器每小时自动向192.168.0.240同步时间 配置方法 一.配置NTP服务

如何配置DNS服务器(局域网——域名指向某个IP地址)

单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器.   如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器.   在“操作”菜单上,单击“配置 DNS 服务器”.打开DNS服务配置向导   然后根据公司规模大小来选择查找区域类型,点击“下一步”主服务器配置界面   如果本机做为DNS服务器,则选择第一项,如果是配置网络上的一台DNS服务器则选择ISP维护区域,选择后点击“下一步”进入区域名称选择窗口.   输入区域名称后点击“