第十六章 域名解析服务

一. 域名解析的基本概念

1. 域名解析的意义

实现域名和IP地址之间的转换过程

2. 域名解析的方法 

HOSTS:在网络中的每台主机都用一个文本文件来存放域名和IP地址的对照表,适用于小型网络

NIS:存放的解析记录,适用于中型网络 

DNS:域名解析信息分布存储在网络中每台主机,实现分布式解析(适用于大型网络)

二. DNS的工作体系

1. 组成

(1) 域名空间

DNS域名空间是命名机制,它提供DNS数据库的层次树状结构,由根域、顶级域、子域与主机名组成,如下图所示:

DNS域名空间最上面的是根域,可以用圆点“.”表示,它由InterNIC(因特网网络信息中心)管理。根域下定义了许多顶级域,如下表所示。

域名称

说明

Com

Edu

Net

Org

Gov

Mil

其他的国码

商业机构

教育,学术研究单位

网络服务机构

财团法人等非营利机构

官方政府机构

国防军事单位

如.cn表示中国

(2) DNS名称服务器

DNS名称服务器保存有资源记录并能响应名称查询的计算机。如果DNS服务器负责管理一个或多个区域,就称此DNS服务器为这些区域的授权名称服务器。授权服务器负责管理所管辖的区域中的数据,并为查询的DNS客户提供这些数据。DNS名称服务器有以下三种类型:

l 主名称服务器   

主要名称服务器负责存储授权区域的一切数据且管理该区域和对区域具有解析功能。

l 辅助域名称服务器

辅助名称服务器可以从主名称服务器中转移一整套区域信息。并且辅助名称服务器会定时从主名称服务器中更新数据,同时可以接受客户机的查询.

l 唯高速缓存服务器

缓存服务器负责临时存储主名称服务器己解析过域名记录

(3) 客户机

DNS客户机利用一个简单的程序或子程序库,从服务器中提取信息以响应对域名空间的主机查询

2. DNS的解析过程

(1) 正向解析

DNS客户端向DNS服务器查询IP地址时,或DNS服务器在向另外一台DNS服务器查询IP地址时,有以下三种查询方式:

l 直接从缓冲存储器解析 

 可以直接从DNS客户端或DNS服务器的高速缓冲器中获得查询结果。

l 递归查询  

也就是DNS客户端送出查询要求后,如果本地DNS服务器内没有需要的数据,则DNS服务器会代替客户端向其他的DNS服务器查询,一般由DNS客户端所提出的查询要求是属于递归查询。

l 循环查询  

一般DNS服务器与DNS服务器之间的查询属于这种查询方式,当第1DNS服务器在向第2DNS服务器提出查询要求后,如果第2DNS服务器内没有所需要的数据,则它会提供第3DNS服务器的IP地址给第1台服务器,让第1DNS服务器向第3DNS服务器查询。具体解析过程,如下图所示:

(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/nameddns服务器守护进程所对应的程序

/var/named/named.ca  dns服务器根区域文件

/var/named/localhosts.zone  dns服务器localhost区域的正向文件

/etc/named.conf           dns服务器的区域和服务器选项设置文件

/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";

(1) 根据以下要求修改/etc/named.conf

n 建立正向主区域abc.com,区域文件名为abc.zone

n 建立反向主区域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   CNAMEwww

      mail.abc.com.   IN   CNAME  www

      mail.abc.com.   IN   CNAME  www.abc.com.

SOA记录

作用:设置区域的授权信息

实例: 

@区域名) IN  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 区域名

设置管辖的默认区域

$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正向区域的区域文件:

$TTL86400

$ORIGIN localhost.

@1D IN SOA@ root (

42; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

IN NS@

1D IN A127.0.0.1

(3) 反向区域文件的例子

反向区域文件负责存储反向指针,下面127.0.0.0反向区域的区域文件:

$TTL86400

@       IN      SOA     localhost. root.localhost.  (

                                      1997022700 ; Serial

                                      28800      ; Refresh

                                      14400      ; Retry

                                      3600000    ; Expire

                                      86400 )    ; Minimum

              IN      NS      localhost.

1       IN      PTR     localhost.

(4) 根据以下要求建立名为abc.zone的区域文件

管辖区域名为abc.com,并授权给本机,管理员的mail地址为root@abc.com

授权的序列号为48,刷新时间为3小时,重试时间为15分钟,默认TTL86400秒

n abc.com区域的域名服务器的完整名称为www.abc.com.

n 建立主机记录www.abc.com指向192.168.0.1

n 并且给abc.com区域定义IP地址为192.168.0.l 

n 给www.abc.com建立别名记录ftp.abc.com

n 建立abc.com区域的邮件服务器位置记录指向www.abc.com

$TTL86400

$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 NSwww.abc.com.

1D IN A192.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

方法三:hosts

(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.安装软件包

#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

2.建立区域

# vi  /etc/named.conf

添加以下内容:

options {

   directory  “/var/named”;

   forwarders {192.168.3.10;};  //添加的内容

};

zone  “linux.net”  IN  {      //添加的内容

     type  master;

     file  “linux.zone”;

};

3.建立区域文件/var/named/linux.zone

#vi  /var/named/linux.zone

$TTL86400

$ORIGIN  linux.net.

@1D IN SOA@ root (

49; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

1D IN NSdns.linux.net.

1D IN A192.168.3.1

dns            IN A     192.168.3.1

www            IN A      192.168.3.1

mail           IN A      192.168.3.2

linux.net.       IN  MX  10  mail.linux.net.

4.启动服务

#service   named   start

案例二:

要求:

利用bind软件建立一台linux.net区域的辅助dns服务器,主服务器ip地址为192.168.3.1

配置过程:

辅助DNS服务器只要在DNS服务器上建立一个辅助区域指向主服务器,不用手工建立区域文件,辅助DNS服务器会自动从主服务器中复制区域文件。

1. 安装相关软件

#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

2. 建立从区域

#vi   /etc/named.conf

添加如下内容:

zone  “linux.net”  IN   {

type  slave;

file  “linux.zone”;

};

3. 启动服务

#service   named  start

案例三:

要求:

利用bind和dhcpd制作一台动态DNS服务器; DHCPDNS同为一台主机,该主机的IP地址为192.168.3.1,DHCP服务器分配作用域范围为192.168.3.2-192.168.3.200;DNS服务器管辖的区域为abc.com 

配置过程:

1. DHCP服务器的配置

(1) 安装DHCP服务相关软件

#rpm  -ivh   dhcp-3.0pl1-23.i386.rpm

(2) 运行ddns-keygen命令产生动态更新的密钥(当前路径为/etc)

#dnssec-keygen  -a  HMAC-MD5  -b 128  -n  USER  DHCP_UP

(记下生成密钥)

(3) 建立配置文件/etc/dhcpd.conf

#vi   /etc/dhcpd.conf

添加如下内容:

ddns-update-style  interim;

ignore  client-updates;

key “DHCP_UP” {

 algorithm  hmac-md5;

 secret  qhB++OR5yWo8BTXwk/m4ng;

};

zone  abc.com {

primary  127.0.0.1;

key   “DHCP_UP”;

}

subnet 192.168.3.0   netmask   255.255.255.0

 {

defaulst-lease-time  36000;

max-lease-time  72000;

option  routes  192.168.3.1;

option  domain-name  “abc.com”;

option  domain-name-servers  192.168.3.1;

range   192.168.3.2  192.168.3.200;

}

(4) 启动服务

#service  named  start

2.  DNS服务器的配置

(1) 安装相关的软件

#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

(2) 建立区域

# vi  /etc/named.conf

添加以下内容:

options {

   directory  “/var/named”;

};

key  “DHCP_UP”  {

 algorithm  hmac-md5;

 secret  qhB++OR5yWo8BTXwk/m4ng;

};

zone  “abc.com”  IN  {

     type  master;

     file  “abc.zone”;

};

3) 建立区域文件/var/named/abc.zone

#vi  /var/named/abc.zone

$TTL86400

$ORIGIN  abc.com.

@1D IN SOA@ root (

49; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

1D IN NSwww.abc.com.

1D IN A192.168.3.1

www            IN A      192.168.3.1

(4) 启动服务

#service  named  start

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值