第四章:DNS服务全攻略(一基础)
第四章:DNS服务全攻略(一基础)内容简介 DNS 的概述 DNS 服务的安装DNS 常见名词DNS 配置文件详解配置主要DNS 服务案例详解DNS 域名系统的简介网络中为了区别各个主机,必须为每
第四章:DNS服务全攻略(一基础)
内容简介 DNS 的概述 DNS 服务的安装
DNS 常见名词
DNS 配置文件详解
配置主要DNS 服务
案例详解
DNS 域名系统的简介
网络中为了区别各个主机,必须为每台主机分配一个惟一的地址,这个地址即称为"IP 地址" 。但这些数字难以记忆,所以就采用" 域名" 的方式来取代这些数字了。
当某台主机要与其他主机通信时,就可以利用主机名称向DNS 服务器查询该主机的IP 地址。整个DNS 域名系统由以下4个部分组成。
1.DNS 域名空间
2.资源记录
3.DNS 服务器
4.DNS 客户端
如图1
DNS 查询的工作原理
DNS 查询过程按两部分进行
名称查询从客户端计算机开始,并传送给本机的DNS 客户服务程序进行解析; 如果不能在本机解析查询,可根据设定的查询DNS 服务器来解析名称。 以上两种查询方式的具体工作过程如下。
1.本地解析(图2)

2.查询DNS 服务器(图3)
递归查询流程(图4)
迭代查询流程 (图5)



hosts 文件
hosts 文件是Linux 系统中一个负责IP 地址与域名快速解析的文件,/etc/hosts Hosts 文件包含了IP 地址和主机名之间的映射,还包括主机名的别名。 hosts 文件的格式如下:
IP 地址 主机名/域名
DNS 服务bind 及chroot 的安装
rpm -q bind
rpm -ivh bind-libs-9.3.4-10.P1.el5.i386.rpm
rpm -ivh bind-utils-9.3.4-10.P1.el5.i386.rpm
rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm
rpm -ivh bind-chroot-9.3.4-10.P1.el5.i386.rpm
rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm
安装chroot 软件包 Linux 服 务都是以root 权限启动和运行的,随着技术的发展,各种服务变得越来越复杂,导致BUG 和漏洞越来越多。黑客利用服务的漏洞入侵系统,能获得root 级 别的权限,从而控制整个系统。为了减缓这种攻击所带来的负面影响,现在服务器软件通常设计为以root 权限启动,然后服务器进程自行放弃root ,再以某 个低权限的系统账号来运行进程。这种方式的好处在于该服务被攻击者利用漏洞入侵时,由于进程权限很低,攻击者得到的访问权限又是基于这个较低权限的,因此 对系统造成的危害比以前减轻了许多。

启动和停止DNS 服务
1.启动DNS 服务
/etc/init.d/named start
2.停止DNS 服务
/etc/init.d/named stop
3.重新启动DNS 服务
/etc/init.d/named restart
4.自动启动DNS 服务
如果需要让DNS 服务随系统启动而自动加载,可以执行"ntsysv" 命令启动服务配置程序,找到"named" 服务,其前面加上星号"*,然后选择" 确定" 即可 。 DNS 常见名词
区(Zone): 区是DNS 名称空间的一个连续部分,其包含了一组存储在DNS 服务器上的资源记录。
资源记录:DNS 服务器的信息数据,按照分类进行存储,能够解析客户端的DNS 请求。
区文件:包含区资源记录的文件,选择DNS 服务器为授权服务器,管理该区域。 DNS 缓存:DNS 服务器在解析客户机请求时,如果本地没有该DNS 信息,则可以会询问其他DNS 服务器,当其他域名服务器返回查询结果时,该DNS 服务器会将结果记录在本地的缓存中,成为DNS 缓存。
正向解析:域名到IP 地址的解析过程。
反向解析:从IP 地址到域名的解析过程。
全域名:(FQDN ,Fully Qualified Domain Name)是指主机名加上全路径,全路径中列出了序列中所有域成员。
DNS 配置文件详解(图6)
资源记录
SOA 资源记录:起始授权记录(Start of Authority Record), 简称SOA 记录。SOA 定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA 记录。

区域名(当前) 记录类型 SOA 主域名服务器(FQDN ) 管理员邮件地址 (序列号 刷新间隔 重试间隔 过期间隔 TTL)
NS 资源记录:名称服务器(NS )资源记录表示该区的授权服务器,它们表示SOA 资源记录中指定的该区的主和辅助服务器,也表示了任何授权区的服务器。每个区在区根处至少包含一个NS 记录。
区域名 IN NS 完整主机名(FQDN )
A 资源记录:地址(A )资源记录把FQDN 映射到IP 地址,因而解析器能查询FQDN 对应的IP 地址。
完整主机名(FQDN ) IN A IP地址
PTR 资源记录:相对于A 资源记录,指针(PTR )记录把IP 地址映射到FQDN 。 IP 地址 IN PTR 主机名(FQDN )
CNAME 资源记录:规范名字(CNAME )资源记录创建特定FQDN 的别名。 别名 IN CNAME 主机名
MX 资源记录:邮件交换(MX )资源记录为DNS 域名指定邮件交换服务器。 区域名 IN MX 优先级(数字) 邮件服务器名称(FQDN )
主配置文件named.conf
options {
direcrory "/var/named"; #指定工作目录
forwards { 192.168.31.2 ; } ; #指定查询的目标DNS 服务器
allow-query { 192.168.32/24 ; } ; #只允许某个网段的用户来查询 allow-transfer { 192.168.32/24; } ; #只允许某个网段的DNS 来同步 } ;
zone "." {
Type hint;
file "named.ca";
};
zone "example.com" {
type master;
file "example.com.zone;
};
zone "31.168.192.in-addr.arpa" {
type slave;
masters {192.168.31.3;};
file "salves/192.168.31.zone";
};
type 字段指定区域的类型
master :表示定义的是主域名服务器 。拥有区域数据文件,并对此区域提供管理数据
slave :表示定义的是辅助域名服务器。拥有主DNS 服务器的区域数据文件的副本,辅助DNS 服务器会从主DNS 服务器同步所有区域数据
hint :表示是互联网中根域名服务器。当服务器启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表
,forward :一个forward zone是每个域的配置转发的主要部分
stub :和slave 类似,但其只复制主DNS 服务器上的NS 记录而不像辅助DNS 服务器会复制所有区域数据
delegation-only :用于强制区域的delegation .ly状态
DNS 服务器设置流程
1)建立主配置文件named.conf ,该文件的最主要目的是设置DNS 服务器能够管理哪些区域(Zone )以及这些区域所对应的区域文件名和存放路径。
2)建立区域文件,按照named.conf 文件中指定的路径建立区域文件,该文件主要记录该区域内的资源记录。
3)重新加载配置文件或重新启动named 服务使用配置生效。
配置主要名称服务器概述
主配置文件
设置根区域
设置主区域
设置反向解析区域
根服务器信息文件named.ca
区域文件
反向解析区域文件
实现负载均衡功能
主要名称服务器的测试
主配置文件
Bind 的主配置文件是/etc/named.conf,该文件只包括Bind 的基本配置,并不包含任何DNS 区域数据。
options {
directory "/var/named";
forwarders {192.168.31.2 ; };
allow-query {192.168.31/24 ; };
allow-transfer {192.168.31/24 ; };
};
设置根区域
当DNS 服务器处理递归查询时,如果本地区域文件不能进行查询的解析,就会转到根DNS 服务器查询,所以在主配置文件named.conf 文件中还要定义根区域。 zone "." {
type hint;
file "named.ca";
};
设置主区域
主区域用来保存DNS 服务器某个区域(如:example.com )的数据信息。 zone "example.com" {
type master;
,file "example.com.zone";
};
设置反向解析区域
在大部分的DNS 查询中,DNS 客户端一般执行正向查找,即根据计算机的DNS 域名查询对应的IP 地址。但在某些特殊的应用场合中(如判断IP 地址所对应的域名是否合法),也会使用到通过IP 地址查询对应DNS 域名的情况(也称为反向查找)。
zone "16.168.192.in-addr.arpa" {
type master;
file "192.168.16.arpa";
};
根服务器信息文件named.ca
/var/named/named.ca是一个非常重要的文件,该文件包含了Internet 的根服务器名字和地址,Bind 接到客户端主机的查询请求时,如果在Cache 中找不到相应的数据,就会通过根服务器进行逐级查询。
由 于named.ca 文件经常会随着根服务器的变化而发生变化,因此建议最好从国际互联网络信息中心(InterNIC )的FTP 服务器下载最新的版本,下 载地址为ftp://ftp.rs.internic.net/domain/named.root。下载完后,应将该文件改名为named.ca ,并复 制到"/var/named/chroot/var/named/"目录下。 正向区域文件
一个区域内的所有数据(包括主机名和对应IP 地址、刷新间隔和过期时间等)必须存放在DNS 服务器内,而用来存放这些数据的文件就称为区域文件(区域数据文件使用";" 符号注释)。DNS 服务器的区域数据文件一般存放在/var/named/目录下。
/var/named/chroot/var/named/example.com.zone文件的完整例子。 $TTL 38400
example.com.IN SOA dns.example.com. root.example.com. (
2009070700 ; serial
10800 ; refresh
3600 ; retry
604800 ; expiry
38400 ) ; minimum
example.com. IN NS dns.example.com.
dns IN A 192.168.16.177
www.example.com. IN A 192.168.16.9
mail1.example.com.IN A 192.168.16.178
mail2.example.com.IN A 192.168.16.179
mail3.example.com.IN A 192.168.16.180
rhel4 IN CNAME dns
bbs IN CNAME www
,samba IN CNAME www
example.com.IN MX 10 mail1.example.com.
example.com. IN MX 11 mail2.example.com.
example.com. IN MX 12 mail3.example.com.
反向解析区域文件
反向解析区域文件的结构和格式与正向区域文件类似,只不过它的主要内容是建立IP 地址映射到DNS 域名的指针PTR 资源记录。
在/var/named/chroot/var/named/192.168.16.arpa文件中定义反向解析区域。 $TTL 36000
16.168.192.in-addr.arpa.IN SOA dns.example.com. root.example.com. ( 2009070703
10800
3600
604800
36000 )
16.168.192.in-addr.arpa. IN NS dns.example.com.
177.16.168.192.in-addr.arpa. IN PTR dns.example.com.
9 IN PTR www.example.com.
178 IN PTR mail1.example.com.
179 IN PTR mail2.example.com.
180 IN PTR mail3.example.com.
实现负载均衡功能
DNS 负载均衡的优点是经济简单易行,它在DNS 服务器中为同一个域名配置多个IP 地址(即为一个主机名设置多条A 资源 记录),在应答DNS 查询时,DNS 服务器对每个查询将以DNS 文件中主机记录的IP 地址按顺序返回不同的解析结果,将客户端的访问引导到不同的计算机上 去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
例如,在企业网中需要使用3台内容相同的FTP 服务器共同承担客户对网站的访 问,它们的IP 地址分别对应192.168.16.11、192.168.16.12和192.168.16.13。现只要在DNS 服务器的区域文件中加 入以下3条A 资源记录,就可以实现3台FTP 服务器网络负载均衡功能。
ftp IN A 192.168.16.11
ftp IN A 192.168.16.12
ftp IN A 192.168.16.13
主要名称服务器的测试
1.测试前的准备
(1)启动DNS 服务
/etc/rc.d/init.d/named start
(2)配置/etc/resolv.conf
2.使用nslookup 程序测试
,非交互式通常用于返回单块数据的情况,其命令格式为:
nslookup [-选项] 需查询的域名 [DNS服务器地址]
交互式通常用于返回多块数据的情况,其命令格式为:
nslookup [- DNS服务器地址]
3. host [-t type] hostname [server] [ip]
4. dig [-t type] hostname [server] [ip]
配置辅助名称服务器
辅助名称服务器也可以向客户机提供域名解析功能,但它与主要名称服务器不同的是,它的数据不是直接输入的,而是从其他服务器(主要名称服务器或其他的辅助名称服务器)中复制过来的,只是一份副本,所以辅助名称服务器中的数据无法被修改。
在一个区域中设置多台辅助名称服务器具有以下优点。
1、提供容错能力。当主要名称服务器发生故障时,由辅助名称服务器提供服务。
2、分担主要名称服务器的负担。在DNS 客户端较多的情况下,通过架设辅助名称服务器完成对客户端的查询服务,可以有效地减轻主要名称服务器的负担。
3、 加快查询的速度。例如,一个公司在远地有一个与总公司网络相连的分公司网络,这时可以在该处设置一台辅助名称服务器,让该分公司的DNS 客户端直接向此辅 助名称服务器进行查询,而不需要通过速度较慢的广域网向总公司的DNS 服务器查询,减少用于DNS 查询的外网通信量。
辅助名称服务器的主配置文件是/etc/named.conf,也需要设置服务器的选项和根区域,方法与配置主要名称服务器的方法相同
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "example.com" {
type slave;
file "slaves/example.com.zone";
masters {192.168.16.177;};
};
zone "16.168.192.in-addr.arpa" {
type slave;
file "slaves/192.168.16.arpa";
masters {192.168.16.177;};
};
配置缓存Cache-only 服务器
Cache-only 服务器是很特殊的DNS 服务器,它本身并不管理任何区域,但是DNS 客户端仍然 可以向它请求查询。Cache-only 服务器类似于代理服务器,它没有自己的域名数据库,而是将所有查询转发到其他DNS 服务器处理。当Cache- only
,服务器收到查询结果后,除了返回给客户机外,还会将结果保存在缓存中。 当下一个DNS 客户端再查询相同的域名数据时,就可以从高速缓存里查出答案,加快DNS 客户端的查询速度。
Cache-only 服务器/etc/named.conf文件,具体的代码如下。
options {
directory "/var/named";
forward only;
forwarders {
61.144.56.101;
202.96.128.68;
};
};
DNS 客户端的配置 Linux 中DNS 客户端的配置
在Linux 中配置DNS 客户端的方法很简单,可直接编辑文件/etc/resolv.conf,然后使用nameserver 选项来指定DNS 服务器的IP 地址 。
Windows 中DNS 客户端的配置
① 在桌面上的" 网上邻居" 图标上单击鼠标右键,在弹出的快捷菜单中选择" 属性" 命令,系统会打开" 网络连接" 窗口。
② 在" 本地连接" 图标上单击鼠标右键,在弹出的快捷菜单中选择" 属性" 命令,系统会打开" 本地连接 属性" 对话框。
③ 选中"Internet 协议(TCP/IP)" 复选框,然后单击" 属性" 按钮,系统会打开"Internet 协议(TCP/IP)属性" 对话框,如图6-33所示。
④ 选中" 使用下面的DNS 服务器地址" 单选按钮,在" 首选DNS 服务器" 和" 备用DNS 服务器" 中输入DNS 服务器的IP 地址,然后单击" 确定" 按钮即可完成Windows XP 下的DNS 客户端的配置。
★★★★★★★★★★★★★★★★★视频观看地址
★★★★★★★★★★★★★★★★★★ http://www.boobooke.com/v/bbk3231 http://www.boobooke.com/v/bbk3232 http://www.boobooke.com/v/bbk3233 http://www.boobooke.com/v/bbk3234