DNS正向解析、反向解析、主从复制以及正向子域授权

一、DNS概述以及相关术语

1.DNS是域名系统 (Domain Name System) 的缩写,是一种组织域层次结构的计算机和网络服务命名系统。它的作用是:把域名转换成为网络可以识别的 IP 地址,查询结果保存起来,并告诉给客户端。

2.FQDN全名是Fully Qualified Domain Name,即完全合格域名

3.CDN的全称是Content Delivery Network,即内容分发网络,通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

二、DNS查询过程

DNS的查询过程是指在客户端是通过DNS服务器将一个IP地址转化为一个FQDN、将一个FQDN转化为一个IP地址或查询一个区域的邮件服务器的过程。

1.按查询方式分类DNS查询

a.递归查询:当DNS服务器接收到查询请求时,要么做出查询成功响应,要么做出查询失败的响应。递归查询一般发生在DNS客户端与DNS服务器之间。

b.迭代查询:DNS服务器根据自己的高速缓存或区域的数据,以最佳结果响应。如果DNS服务器无法解析,它可能返回一个指针。指针指向有下级域名的DNS服务器,继续该过程,直到找到拥有所查询名字的DNS服务器,或直到出错、超时为止。迭代查询一般发生在DNS服务器之间。

2.按查询内容分类DNS查询

a.正向查询;域名-->IP

b.反向查询:IP---->域名

三、DNS的测试工具

1.dig的使用(用来测试正向解析,在本机用)

dig
[-t type] name [@SERVER] [query options]

dig用于测试dns系统,因此,不会查询hosts文件进行解析;

查询选项:

+[no]trace:跟踪解析过程

+[no]recurse:进行递归解析

测试反向解析:

dig
-x IP @SERVER

模拟区域传送:

dig
-t axfr ZONE_NAME @SERVER

例如:dig -t axfr magedu.com @172.16.100.11                                                       @172.16.100.11:表示使用172.16.100.11服务器来解析

2.host命令:

host
[-t type] name [SERVER]

3.nslookup命令:

nslookup [-option] [name | -] [server]

交互式模式:

nslookup>

server
IP: 指明使用哪个DNS server进行查询;

set
q=RR_TYPE: 指明查询的资源记录类型;

NAME:要查询的名称;

四、正、反向解析、主从复制以及正向子域授权相关示例

  1. 先安装bind工具
[[email protected] ~]# yum install bind -y

2.缓存服务器的配置以及正向解析的过程(正向解析是将域名解析为ip)

[[email protected] ~]# vim /etc/named.conf
#
options {
       // listen-on port 53 { 127.0.0.1; };
       //listen-on-v6 port 53 { ::1; };
        directory       "/var/named";    #表示工作目录
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        //allow-query     { localhost; };    #注释掉表示允许所有
        recursion yes;                #允许递归

       // dnssec-enable yes;
        //dnssec-validation yes;
        //dnssec-lookaside auto;

        /* Path to ISC DLV key */
        //bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};
[[email protected] ~]# service named restart
[[email protected] ~]# ss -tunl | grep :53
[[email protected] ~]# vim /etc/named.rfc1912.zones    
#添加正向区域
    zone  "tg.com" IN {
            type master;
            file "tg.com.zone";
    };    
[[email protected] ~]# named-checkconf                 #检查配置文件有没语法错误
[[email protected] ~]# rndc reload
[[email protected] ~]# rndc status
[[email protected] ~]# tail /var/log/messages    #查看日志后会发现差一个区域解析库文件
[[email protected] ~]# vim /var/named/tg.com.zone
#添加
    
$TTL 1D    #统一的TTL值
$ORIGIN tg.com.    #统一的后缀:tg.com.
@       IN       SOA     ns1.tg.com.  #(服务器)    ns1admin.tg.com.  #(管理员邮箱地址) (
                2015042201            #序列号
                2H            #刷新时间
                10M            #重试时间
                1W            #过期时间
                1D            #否定答案的最小TTL值
)

        IN      NS      ns1            #定义名称服务器ns1
        IN      NS      ns2            #定义名称服务器ns2
        IN      MX  10  mx1
        IN      MX  20  mx2
ns1     IN      A       192.168.2.199
ns2     IN      A       192.168.2.222
mx1     IN      A       192.168.2.199
mx2     IN      A       192.168.2.193
www     IN      CNAME   ns1
ftp     IN      CNAME   ns2
*             IN            A            192.168.2.199

[[email protected] ~]# named-checkzone "tg.com" /var/named/tg.com.zone 
zone tg.com/IN: loaded serial 2015042201
OK
[[email protected] ~]# cd /var/named/
[[email protected] named]# chown :named tg.com.zone 
[[email protected] named]# chmod 640 tg.com.zone 
[[email protected] named]# rndc reload
[[email protected] named]# dig -t A www.tg.com  @192.168.2.200    #测试解析是否成功,到此主服务器就实现了

至此,我们的正向解析器就完工了。

3.反向解析(将IP解析为域名)

[[email protected] named]# vim /etc/named.rfc1912.zones 
#添加反向区域
zone "2.168.192.in-addr.arpa" IN {
        type master;
        file "2.168.192.zone";
};

[[email protected] named]# vim 2.168.192.zone 
$TTL 2D
$ORIGIN 2.168.192.in-addr.arpa.
@       IN      SOA     ns1.tg.com.     admin.tg.com. (
        2015042610
        2H
        1M
        2W
        1D
)

        IN      NS      ns1.tg.com.
        IN      NS      ns2.tg.com.

99      IN      PTR     www.tg.com.
200     IN      PTR     ftp.tg.com.
200     IN      PTR     ns1.tg.com.
200     IN      PTR     ns2.tg.com.

[[email protected] named]#chmod 640 /var/named/2.168.192.zone
[[email protected]calhost named]#chown :named /var/named/2.168.192.zone

[[email protected] named]# rndc reload
server reload successful
[[email protected] named]# rndc status
version: 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6
CPUs found: 1
worker threads: 1
number of zones: 21
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running   

[[email protected] named]# dig -x 192.168.2.99 @192.168.2.200    #测试解析一下192.168.2.99,发现能解析成功

; ;; QUESTION SECTION:
;www.tg.com.			IN	A

;; ANSWER SECTION:
www.tg.com.		86400	IN	CNAME	ns3.tg.com.
ns3.tg.com.		86400	IN	A	2.2.2.2

到此反向解析就成功了

4.主从复制

#重新进入一台主机,比如我这里进入的是192.168.2.199,然后直接进入它的主配置文件
[[email protected] etc]# vim named.rfc1912.zones 
#添加到这个文件里面
zone "tg.com" IN {
        type slave;
        masters { 192.168.2.200; };
        file "slaves/tg.com.zone";
};
[[email protected] named]# cd /var/named/slaves ;ls
tg.com.zone                #可以发现slaves目录下有了主服务器的正向解析库文件,说明主从服务器同步成功
[[email protected] slaves]# dig -t A www.tg.com @192.168.2.199
.....
;; QUESTION SECTION:
;www.tg.com.			IN	A

;; ANSWER SECTION:
www.tg.com.		86400	IN	CNAME	ns3.tg.com.
ns3.tg.com.		86400	IN	A	2.2.2.2
......
#测试了一下可以看出,测试成功了

至此我们的主从复制就OK了

5.正向子域授权(即在原有的域上再划分出一个小的区域并指定新DNS服务器。)

[[email protected] named]# vim /var/named/tg.com.zone     #在里面添加子域ops.tg.com
ops     IN      NS      ns1.ops
ops     IN      NS      ns2.ops
ns1.ops IN     A      192.168.2.01
ns2.ops IN      A       192.168.2.02
[[email protected] named]# rndc status
[[email protected] named]# rndc reload
[[email protected] named]# rndc status    #可以发现区域数没发生改变,因为只是子域授权,没,没发生本质性改变。然后再另外一台机器上配置子域服务器
[[email protected] ~]# yum install bind -y    #在新的机器里面安装bind

[[email protected] ~]# vim /etc/named.conf 

#注释掉
options {
//      listen-on port 53 { 127.0.0.1; };
//      listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
//      allow-query     { localhost; };
        recursion yes;

//      dnssec-enable yes;
//      dnssec-validation yes;
//      dnssec-lookaside auto;

        /* Path to ISC DLV key */
//      bindkeys-file "/etc/named.iscdlv.key";

//      managed-keys-directory "/var/named/dynamic";
};
[[email protected] ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[[email protected] ~]# ss -tunl | grep :53
udp    UNCONN     0      0          192.168.2.199:53                    *:*     
udp    UNCONN     0      0              127.0.0.1:53                    *:*     
tcp    LISTEN     0      3          192.168.2.199:53                    *:*     
tcp    LISTEN     0      3              127.0.0.1:53                    *:*     
#可以看出已经监听在53号端口了
[[email protected] ~]# vim /etc/named.rfc1912.zones     #在最后面添加区域ops.tg.com
zone "ops.tg.com" IN {
        type master;
        file "ops.tg.com.zone";
};
[[email protected] ~]# rndc status
[[email protected] ~]# rndc reload
[[email protected] ~]# rndc status        #可以发现区域解析库文件多了一个
[[email protected] ~]# tail /var/log/messages    #可以方发现少一个ops.tg.com的区域解析库文件
[[email protected] ~]# vim /var/named/ops.tg.com.zone

$TTL 1D
$ORIGIN ops.tg.com
@       IN      SA      ns1.ops.tg.com. admin.ops.tg.com. (
                        2015042601
                        1H
                        10M
                        3D
                        1D
)

        IN      NS      ns1
        IN      NS      ns2
ns1     IN      A       192.168.2.01    #必须跟父域中的保持一致
ns2     IN      A       192.168.2.02    #必须跟父域中的保持一致
www     IN      A       192.168.2.100
*       IN      A       192.168.2.100
 
[[email protected] ~]# cd /var/named
[[email protected] named]# chmod 640 ops.tg.com.zone 
[[email protected] named]# chown :named ops.tg.com.zone 
[[email protected] named]# rndc reload
server reload successful
                                    
[[email protected] ~]# rndc reload
server reload successful
[[email protected] ~]# dig -t A ns2.ops.tg.com @192.168.2.199    #查子域中ns2.ops.tg.com,发现可以解析出来
[[email protected] ~]# dig -t A ns2.tg.com @192.168.2.199        #查父域ns2.tg.com,发现解析不了,因为它不知道父域在哪儿,有网的话,它就去找根了

#让子域能解析父域而不用去找根

[[email protected] named]# vim /etc/named.conf    #在父服务器里面options{}里面添加转发器,提供转发功能
 forward first;
 forwarders { 192.168.2.1; }    #192.168.2.1表示能与外面通信的服务器

[[email protected] named]# rndc reload
[[email protected] named]# dig -t A www.baidu.com @192.168.2.199    #发现能够成功解析,在转发之前是解析不到的,这是全部转发

下面是区域转发,在子域服务器里面:

[[email protected] named]# vim /etc/named.rfc1912.zones 
zone "tg.com"   IN {
        type forward;
        foward only;
        forwarders { 192.168.2.1; }
};

[[email protected] named]# vim /etc/named.conf 

        dnssec-enable no;    #将已注释掉的这行去掉注释,并将yes改为no
        dnssec-validation no;    #将已注释掉的这行去掉注释,并将yes改为no
//      dnssec-lookaside auto;

[[email protected] named]# rndc reload

至此我们的子域授权就OK了

时间: 2024-08-08 21:55:55

DNS正向解析、反向解析、主从复制以及正向子域授权的相关文章

从DNS基础到在CentOS6.5上“玩着”搭建一个支持正向、反向解析的“

1.什么是DNS? (Domain Name System)域名系统. DNS其实实现的功能很简单也很有效,它能够让用户可以不用记得那些经常要访问服务器的ip地址,直接要你输入类似拼音格式的就可以访问到那些数字串的ip地址.假设以61.120.155.14(举个例子),我们总是用这些数字进行网页服务器的访问岂不是很蛋疼,毕竟很多人还是对文字甚至拼音字母更容易让正常人记忆.这就是DNS的功能. 当然,它不仅能把那些你输入的拼音字母转换成ip地址的数字串,它还支持把那些数字串转换成你想访问的实际的网

DNS服务之反向解析&子域&区域转发

测试环境说明        主DNS服务器:CentOS 6.8    192.168.1.6/24    10.1.154.97/16 zmingbo.com        从DNS服务器:CentOS 6.8    192.168.1.8/24    10.1.154.94/16        子域:CentOS 6.8  10.1.110.54/16 tech.zmingbo.com DNS检测命令 dig命令: dig [-t type ] [ -x addr ] [name] [@se

3、DNS服务器功能(正向、反向解析)

实验目的: 建立gr.org域的主名称服务器.解析: 名称 IP 用途 ns.gr.org        192.168.170.3          名称服务器 www.gr.org     192.168. 170.3         正规名 bbs.gr.org      192.168. 170.3         别名 mail.gr.org      192.168. 170.4        邮件服务器 下面蓝色的字体都为解释,不用写:红色字母为命令 正向解析:域名解析为IP地址

DNS(BIND) 正向解析   反向解析 基本服务的搭建

操作系统:centos 6.6 yum源安装bind安装包 yum install -y bind 正向解析与反向解析核心配置目录 /etc/named.conf   配置文件 /var/named/          数据文件目录 为了更好的理解整个正向解析与反向解析过程,自己写配置文件: cp /etc/named.conf  /etc/named.conf.bak     备份原配置文件 > /etc/named.conf                                  

DNS服务正向、反向解析区域,主/从区域数据库复制,子域授权及基本安全控制

DNS是应用层的协议,默认使用UDP的53端口,也会用到TCP的53端口. DNS名称解析方式: 名称 --> IP:正向解析 第一段这种方式叫递归查询,只发出去一次请求,就给它返回答案:第二段这种方式就迭代查询,要发出多次请求,需要自己查询不同域名,最后才返回答案:这就是DNS的查询类型. 一般内网递归,外网迭代. IP --> 名称:反向解析 每一层服务器都有各自的数据库,来存储各自负责的网段,这与正向解析的数据库是两个各自独立的数据库. 一次完整的查询请求经过的流程: Client --

DNS服务正向、反向解析以及主从同步实操(有图有字,易做易懂)

DNS解析大体实操分为:1.DNS正向解析2.DNS反向解析3.DNS主从同步 一.DNS正向解析 1.安装bind工具包通过在线yum库进行安装bind软件包,构建DNS服务.2.修改全局配置文件 只需要修改两个选项:(1)将listen-on后面的IP地址修改为自身IP,作用为监听本机53端口.无论是谁通过本机DNS服务进行域名解析,都能够监听到:(2)将allow-query后面更改为any--这里允许任何人使用本机的DNS服务 3.修改区域配置文件 添加域名和区域数据文件名的文件,在zo

正向解析 反向解析 步骤

总结如何配置一个正向解析区域的详细步骤(必须掌握) 1:定义解析区域, 编辑/etc/named.rfc1912.zones文件,添加zone "yhyblog.cn" IN { type master; file "yhyblog.cn.zone"; }; 2: 编辑/var/named/yhyblog.cn.zone,添加解析区域$TTL 3600; 这里会自动补全yhyblog.cn $ORIGIN yhyblog.cn.@ IN SOA ns1.yhyblo

超详细DNS正、反向解析以及主从复制

简介 DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名析).DNS协议运行在UDP协议之上,使用端口号53.在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明. 工作原理 用户如何访问百度?www为主机名,b

利用Baidu API正向和反向解析地址

在开发过程中,假如遇到了需要计算两地址之间的距离,或者是需要在地图上定位某个地点,之类之类的需求,就会用到百度地图或者高德地图提供的API去解析一个地址,包括正向解析和反向解析.正向解析是输入一个地址,返回一个经纬度,相当于我们在搜索框搜索一个地址然后在地图上打个点.反向解析则是输入一个经纬度,返回一个地址的列表,这个列表是表示这个经纬度附近可能有的东西. 百度地图,解析过程实际上就是向百度的服务器接口通过一个特定格式的URL发送一个带有数据信息的Http请求,然后获得一个带有json数据的Ht

DNS服务之反向解析

DNS反向解析就是把IP地址转换成域名. vim /etc/named.rfc1912.zones进入区域数据配置文件中修改它的反向解析配置文件如下图所示 修改完后复制刚才正向解析过的模板过来修改它的配置文件如下图所示 修改完后重启DNS服务后测试如下图所示 到这里DNS反向解析就解析成功了. 原文地址:http://blog.51cto.com/13706698/2141916