第十三章.DNS服务
第十三章 域名解析服务教学内容:⏹ 域名解析的基本概念⏹ DNS 服务器的配置 ⏹ DNS 客户端的配置与服务器的测试方法教学目标:⏹ 了解域名解析的方法⏹ 熟悉DNS 的正向解析过程 ⏹ 掌握DN
第十三章 域名解析服务
教学内容:
⏹ 域名解析的基本概念
⏹ DNS 服务器的配置 ⏹ DNS 客户端的配置与服务器的测试方法
教学目标:
⏹ 了解域名解析的方法
⏹ 熟悉DNS 的正向解析过程 ⏹ 掌握DNS 服务器的配置和客户端的设置
教学重点:
⏹ DNS 的解析过程
⏹ DNS 服务器的配置
⏹ DNS 客户端的设置
教学难点:
⏹ 反向解析
一. 域名解析的基本概念
1. 域名解析的意义
实现域名和IP 地址之间的转换过程
2. 域名解析的方法
HOSTS :在网络中的每台主机都用一个文本文件来存放域名和IP 地址的
对照表,适用于小型网络
NIS :用NIS 数据库存放的解析记录,适用于中型网络
DNS :域名解析信息分布存储在网络中每台主机,实现分布式解析(适用
于大型网络)
3. DNS 的工作体系
(1)域名空间
DNS 域名空间是命名机制,它提供DNS 数据库的层次树状结构,由根域、顶级域、子域与主机名组成, 如下图所示:

根域
子域
子域
主机
DNS 域名空间最上面的是根域,可以用圆点“.”表示,它由InterNIC(因特网网络信息中心) 管理。根域下定义了许多顶级域,如下表所示。
,
(2)DNS 名称服务器 DNS 名称服务器保存有资源记录并能响应名称查询的计算机。如果DNS 服务器负责管理一个或多个区域,就称此DNS 服务器为这些区域的授权名称服务器。授权服务器负责管理所管辖的区域中的数据,并为查询的DNS 客户提供这些数据。DNS 名称服务器有以下三种类型: ● 主名称服务器
主要名称服务器负责存储授权区域的一切数据且管理该区域和对区域具有解析功能。
● 辅助域名称服务器
辅助名称服务器可以从主名称服务器中转移一整套区域信息。并且辅助名称服务器会定时从主名称服务器中更新数据,同时可以接受客户机的查询.
● 唯高速缓存服务器
缓存服务器负责临时存储主名称服务器己解析过域名记录
(3)客户机
DNS 客户机利用一个简单的程序或子程序库, 从服务器中提取信息以响应对域名空间的主机查询
4. DNS 的解析过程
(1) 正向解析
当DNS 客户端向DNS 服务器查询IP 地址时,或DNS 服务器在向另外一台DNS 服务器查询IP 地址时,有以下三种查询方式:
● 直接从缓冲存储器解析
可以直接从DNS 客户端或DNS 服务器的高速缓冲器中获得查询结果。 ● 递归查询
也就是DNS 客户端送出查询要求后,如果本地DNS 服务器内没有需要的数据,则DNS 服务器会代替客户端向其他的DNS 服务器查询,一般由DNS 客户端所提出的查询要求是属于递归查询。
● 循环查询
一般DNS 服务器与DNS 服务器之间的查询属于这种查询方式,当第1台DNS 服务器在向第2台DNS 服务器提出查询要求后,如果第2台DNS 服务器内没有所需要的数据,则它会提供第3台DNS 服务器的IP 地址给第1台服务器,让第1台DNS 服务器向第3台DNS 服务器查询。具体
,解析过程, 如下图所示:

DNS2
管辖根的DNS服务器
DNS4
管辖ahxinhua.comDNS3管辖.com DNS务器
(2) 反向解析
域名反向解析可以让DNS 客户端利用IP 地址查询其主机名称,服务
器利用in-addr.arpa 反向指针,将一个ip 地址指点向域名。
二. DNS 的配置:
1.安装DNS 服务器软件
#rpm –ivh bind-9.2.1-16.i386.rpm
#rpm –ivh bind-utils-9.2.1-16.i386.rpm
#rpm –ivh redhat-config-bind-1.9.0-13.noarch.rpm
#rpm –ivh caching-nameserver-9.2-7.noarch.rpm
相关文件:
/etc/named.conf dns服务器核心配置文件
/etc/rc.d/init.d/named dns 服务器守护进程所对应的程序 /var/named/named.ca dns服务器根区域文件
/var/named/localhosts.zone dns服务器localhost 区域的正向文件 /var/named/named.local 127.0.0.0的反向解析文件
2. 修改/etc/named.conf
作用:建立区域,配置服务器的全局选项
文件内容:
//说明语句
配置语句
...........
配置语句
..........
配置语句
..........
..........
,说明:常用的配置语名有以下几种
(1) options 声明
作用:定义DNS 服务器的全局选项
格式:options {
........;
........;
全局选项;
........;
........;
};
全局选项:
directory “路径名”;
定义区域服务器区域文件的存放目录
recursion yes/no;
是否使用递归查询方式, 默认为yes
transfer-format one-answer/many-anser;
是否允许一条消息中放入多条应答信息, 默认值为one-answer
forwarders {ip地址; „„.};
定义转发器
allow-query {ip地址;/网络号;/any;};
定义允许向服务器发送查询请求的客户机地址 allow-transfer {ip地址;/网络号;/any;};
定义允许从主服务器中更新的从服务器地址
listen-on [port 端口号] {ip地址;};
定义dns 服务绑定的端口和地址
(2) zone 声明
作用:定义管理区域
格式:zone “域名” IN {
„„„„;
„„„„;
区域设置选项;
„„„„;
„„„„;
};
区域设置选项:
type master/hint/slave;
定义区域的类型,
master 表示一个区为主域名服务器
hint 说明一个区为启动时初始化高速缓存的域名服务器
,slave 说明一个区为辅助域名服务器
file “文件名”;
说明一个区域的区域文件名称
allow-update {none;/key 密钥名称;};
说明区域是否允许动态更新
masters {ip地址;}; 定义主服务器的地址
(3) key 声明
作用:定义授权的安全密钥
格式:key “密钥名称” {
„„„„;
„„„„;
密钥设置选项;
„„„„;
„„„„;
};
密钥设置选项:
algorithm hmac-md5;
定义密钥加密算法
secret “密钥”;
定义加密的密钥
(4) include 语句
作用:将其他文件包含到本配置文件中
格式:include “路径名”;
(5) controls 声明
作用:定义rndc 命令使用的控制通道
格式:controls {
inet {ip地址} [port 端口号] allow {主机名;} keys {密钥名称;}
};
实例:
(1) 默认named.conf 文件内容
options {
directory "/var/named";
// query-source address * port 53;
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
zone "." IN {
,type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
include "/etc/rndc.key";
(2) 根据以下要求修改/etc/named.conf
⏹ 建立正向主区域abc.com, 区域文件名为abc.zone ⏹ 建立反向主区域192.168.0.0, 区域文件名为192.rev
#vi /etc/named.conf
添加如下内容:
zone “abc.com ” IN {
type master;
file “abc.zone ”;
};
zone “0.168.192.in-addr.arpa ” IN {
type master;
file “192.rev ”;
3.创建区域文件
作用:存放区域的信息记录
格式:区域文件指令
[记录名称] [生存周期] IN 类型 值 说明:
(1)记录名称
记录名称根据记录类型的不同可以下的值:
ip 地址
区域名
FQDN
@
空格
,@(区域名)
地址) ( (2)生存周期 设置记录被解析后在缓存中保存的最长时间长度 (3)记录类型 记录用于决定记录的格式及记录的取值,具体可以分为以下几种类型: A记录 功能:用于设置主机IP地址 实例: www IN A 192.168.0.1 www.abc.com. IN A 192.168.0.l IN A 192.168.0.2 NS记录 功能:设置区域的域名服务器地址 实例:abc.com. IN NS www.abc.com. IN NS 192.168.0.1 IN NS www.abc.com. CNAME 记录 功能:设置主机的别名 实例:ftp IN CNAME www mail.abc.com. IN CNAME www mail.abc.com. IN CNAME www.abc.com. SOA 记录 作用:设置区域的授权信息 实例: SOA @ (授权的主机名) root.abc.com.(管理员的mail
43 (序列号, 递增量)
1D (辅助域名服务器多长时间更新数据库)
15M (若辅助域名服务器更新数据失败,多长时间再试)
2W (若辅助域名服务器无法从主服务器上更新数
据,原有的数据何时失效)
86400 (设置生存周期,如果资源记录栏未设定ttl ,
则以这里提供的时间为准)
)
MX 记录
作用:设置区域的mail 服务器的地址
实例: linux.com. IN MX 10 www.linux.com . 注:
PTR
作用:将地址转换为主机名
实例: 1 IN PTR www.abc.com.
1.0.168.192.in-addr.arpa IN PTR ftp.abc.com.
(4) 区域文件指令
$ORIGIN 区域名 IN
,设置管辖的默认区域
$TTL 数字
为没有定义精确的生存周期的记录定义缺省的TTL 值
$INCLUDE 文件的路径
包含外部的配置文件
文件实例:
(1)根区域文件的例子
根区域文件主要用于定义互联网中13台根域服务器的位置, 其文件的内容主要由A 记录和NS 记录构成, 看下面的文件内容:
. 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 (2)正向区域文件的例子
正向区域文件主要存放指定正向区域内的信息记录, 下面是localhost 正向区域的区域文件:
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
,3H 15M 1W 1D ) ; refresh ; retry ; expiry ; minimum IN NS @ 1D IN A 127.0.0.1
(3)反向区域文件的例子
反向区域文件负责存储反向指针, 下面127.0.0.0反向区域的区域文件:
$TTL 86400
@ IN SOA localhost. root.localhost. ( 28800 Refresh
14400 ; Retry 86400 ) Minimum IN NS localhost.
1 IN PTR localhost.
(4)根据以下要求建立名为abc.zone 的区域文件
管辖区域名为abc.com, 并授权给本机, 管理员的mail 地址为root@abc.com 授权的序列号为48, 刷新时间为3小时, 重试时间为15分钟, 默认TTL 为86400秒
⏹ abc.com 区域的域名服务器的完整名称为www.abc.com . ⏹ 建立主机记录
⏹ 并且给abc.com 区域定义IP 地址为192.168.0.l
⏹ 给建立别名记录 ⏹ 建立abc.com 区域的邮件服务器位置记录指向 $TTL 86400
$ORIGIN abc.com.
@ 1D IN SOA @ Z_an_d@163.net(
48 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS www.abc.com.
1D IN A 192.168.0.1
,www IN A 192.168.0.1
ftp IN CNAME www
abc.com. IN MX 10 www.abc.com.
4.启动服务
#service named start
三. DNS 客户端的设置和测试方法
1.客户端设置
(1)Linux 的客户端的设置
#vi /etc/resolv.conf
添加以下选项:
nameserver DNS服务器的IP 地址
(2)Windows 客户端设置
右击”网络邻居”----双击”本地连接”-----属性-----tcp-ip---输入DNS 服务器的地址
2.测试方法
(1)Linux 的客户端可的测试方法
方法一:nslookup
方法二:dig
方法三:host
(2)Windows 客户端的测试方法
方法一:nslookup
四. 配置案例:
案例一:
要求:
利用bind 软件将主机dns.linux.net 主机制作成一个dns 服务器, 具体要求如下:
(1) 该服务器负责正向区域linux.net 的解析,且ip 地址为192.168.3.1
(2) linux.net 区域的域名服务器为dns..linux.net, 且该主机名的ip 为
192.168.3.1
(3) 如果dns.linux.net 不能解析某个域名时,该DNS 服务器会转发给
192.168.3.10
(4) 在linux.net 区域中分别建立记录www 指向192.168.3.1,mail 主机指
向192.168.3.2
(5) linux.net 区域内的mail 服务器为mail.linux.net
配置过程:
1.安装软件包