码迷,mamicode.com
首页 > 其他好文 > 详细

DNS软件bind使用(一)

时间:2015-11-07 06:52:45      阅读:404      评论:0      收藏:0      [点我收藏+]

标签:dns、bind

一、DNS介绍

1、简介

   DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。例如它能够把www.baidu.com这样的域名转换为61.135.169.125这样的IP地址;没有DNS,浏览baidu.com这个网站时,就必须用61.135.169.125这么难记的数字来访问。

2、功能

   每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。

主机名到IP地址的映射有两种方式:

  • 静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用; 

  • 动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。

   通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

3、域名结构

技术分享

   上图中的每一个方框都是域名中的一个词段,国际组织对于每一个段,整个域名的长度,以及能支持的字符集都有明确的规定。但是现在好像有很多网络并没有严格遵守这一规范。

   域名在拼装时,是沿着这棵树的最底下的叶子节点往树根上走的,如:www.sina.com.cn,其实该域名的完整写法应该是:www.sina.com.cn. 注意这最后的一个“.”,图中右边的黑体字给出了每一层的含义。 

   在这棵树上面,挂有互联网上面的所有域名。如果域名不在这棵树上面,那么网站就不能被互联网上面的终端访问。 

   每一个方框是一个词段,其实还可以把每一个方框看成是一个域名解析服务器。他负责了他所有子树的解析。

4、FQDN和正反向解析

   FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置。DNS解析流程:首先查找本机HOSTS表,有的直接使用表中定义,没有查找网络连接中设置的DNS 服务器由他来解析。

  • 正向解析:从主机名查询到IP和方式,称为:正解。及FQDN --> IP。

  • 反向解析:从IP反解析到主机名的方式,称为:反解。及IP --> FQDN。

5、完整的域名查询过程

下图给出了完整的浏览器到最终的网站的访问的全流程:

技术分享

  • 用户电脑的解析器向LDNS发起域名解析请求,查询www.google.com的IP地址 

  • 在缓存没有命中的情况下,LDNS向根服务器查询www.google.com的IP地址 

  • 根告诉LDNS,我不知道www.google.com对应的IP,但是我知道你可以问com域的授权DNS,这个域归他管 

  • LDNS向com的授权服务器问www.google.com对应的IP地址 

  • com告诉LDNS,我不知道www.google.com对应的IP,但是我知道你可以问google.com域的授权DNS,这个域归他管 

  • LDNS向google.com的授权服务器问www.google.com对应的IP地址 

  • google.com查询自己的zone文件,找到了www.google.com对应的IP地址,返回给LDNS 

  • LDNS本地缓存一份记录,把结果返回给用户电脑的解析器

在查询过程中一些名词:

  • 客户端:互联网上提出域名查询请求的终端。 

  • 根域名服务器:在“域名树”的顶端,一次完整的域名查询请求的入口。 

  • 子域:域名树的上下层级关系,下级是上一级的子域。如:www.google.com. 是google.com. 的子域。 

  • 子域授权:上一级域名将子域的解析授予固定的服务器,这一过程为子域授权。 

  • 权威域名服务器:“域名树”中的每一级域名解析服务器都是权威域名服务器。这个概念是相对于本地域名解析服务器的。 当权威域名服务器能直接给出网址的IP地址时,可以直接充当本地域名解析服务器。 

  • 本地域名解析服务器:用于向网络客户端提供域名查询服务的域名服务器。该域名服务器接受网络客户端的查询,并向全球域名系统查询结果和缓存结果。 

  • 递归查询:客户端向本地域名解析服务器查询域名,最终能得到答案。 

  • 迭代查询:本地域名解析服务器向“域名树”通过多次查询得到正确的网址的地址。

6、资源记录(用于此记录解析的属性

SOA:Start Of Authority,起始授权

NS:Name Server,域名服务器

A 地址: 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。

CNAME:标准名称 此记录指定标准主机名的别名。

MX邮件交换器:此记录列出了负责接收发到域中的电子邮件的主机。

NS名称服务器:此记录指定负责给定区域的名称服务器。

PTR:反向解析记录

AAAA:记录ipv6的地址

7、DNS服务器的类型

  • 主DNS服务器 :本身提供DNS 服务,并且本身含有区域数据文件。

  • 辅助DNS服务器:和Master一起提供DNS服务,当Master服务器上的配置信息修改的时候,会同步更新到Slave服务器上。

  • 缓存名称服务器:没有自己的区域数据文件,只是帮助客户端向外部DNS请求查询,然后将查询的结果保存到它的缓存中。

说明:在linux系统下DNS服务的功能是通过bind软件实现的,几乎每个linux发行版都自带了这个DNS服务软件。

  • 转发DNS服务器

8、区域传送

解析库文件同步的过程,即辅助DNS服务器从主DNS服务器或其他的辅助DNS服务器请求数据传输过程 。

  • 完全区域传送:传送区域的所有数据,简称AXFR 

  • 增量区域传送:传送区域中改变的数据部分,简称IXFR


二、DNS资源记录

1、资源记录的格式:

      name [ttl(缓存时间)] IN 资源记录类型(RRtype)  Value

例子:

       www  600(单位s) IN A 192.168.1.8
       www.example.com.  600 IN A 192.168.1.8

2、SOA记录

  • 格式说明

name:只能是区域名称,通常可以简写为@,例如:example.com.

value:有n个数值,最主要的是主DNS服务器的FQDN,点不可省略 。

注意:SOA必须是区域数据库文件第一条记录

  • 例子: 

         @ 600 IN SOA  na.magedu.com. 管理员邮箱(dnsadmin.example.com.)(
             序列号(serial number) ;注释内容,十进制数据,不能超过10位,通常使用日期,例如2014031001
             刷新时间(refresh time) ;即每隔多久到主服务器检查一次
             重试时间(retry time) ;应该小于refresh time
             过期时间(expire time)
             netgative answer ttl ;否定答案的ttl
         )

 3、NS记录

  • 格式说明

name:区域名称,通常可以简写为@

value:DNS服务器的FQDN(可以使用相对名称)

注意:如果有多台NS服务器,每一个都必须有对应的NS记录; 对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

  • 例子: 

       @ 600 IN NS ns

4、MX记录:

  • 格式说明

name:区域名称 ,用于标识smtp服务器。

value:邮件服务器的FQDN 和优先级,优先级为0-99.数字越小,越优先。

注意:如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性 ,对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录; 

  • 例如

@    IN    MX  10    mail.example.com.
@    IN    MX  20    mail2.example.com.

5、A记录

  • 格式说明

name: FQDN(可简写)

value: IP

注意:只能定义在正向区域数据文件中。

  • 例如

www  600(单位s) IN A 1.2.3.4
www  600(单位s) IN A 1.2.3.5

说明:此种方法能做最简单的负载均衡,但是由于其负载均衡的规则为轮询,故使用前一定要注意。

www  600(单位s) IN A 1.2.3.4
ftp 600(单位s) IN A 1.2.3.4

说明:此种是将一个主机名定义多个名称。

6、AAAA记录

  • 格式说明

name:FQDN(可简写)

value:ipv6 IP

7、CNAME记录

  • 格式说明

name: FQDN

value: FQDN

  •   例如

www    IN    A    172.16.10.10
ftp    IN    CNAME    www

8、PTR记录

  • 格式说明

name: 逆向的主机IP地址加后缀in-addr.arpa,例如172.16.10.10/16, 网络地址为172.16, 主机地址为10.10,其name为10.10.in-addr.arpa.(可简写) 

value: FQDN

注意:只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in.addr.arpa.后缀组成。

  • 例如 

10    IN    PTR    www.example.com.


三、安装使用bind

   BIND(Berkeley InternetName Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。此组织还维护一个很有名的软件DHCP。我们使用时安装软件名为bind,而进程名和用户名为named。

1、安装bind

[root@example.com ~]# yum install -y bind  bind-utils

2、安装生成的配置文件

[root@example.com ~]# rpm -qc bind

/etc/logrotate.d/named
/etc/named.conf                       #主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones       #事先定义好的区域文件
/etc/named.root.key                #实现事务签名的密钥文件
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback

3、dig命令说明

   dig(域信息搜索器)命令是个用于询问 DNS 域名服务器的灵活的工具。他执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为DNS 问题的故障诊断,因为他灵活性好、易用、输出清楚。虽然通常情况下 dig 使用命令行参数,但他也能够按批处理模式从文档读取搜索请求。不同于早期版本,dig 的 BIND9 实现允许从命令行发出多个查询。除非被告知请求特定域名服务器,dig 将尝试 /etc/resolv.conf 中列举的任何服务器。当未指定任何命令行参数或选项时,dig 将对“.”(根)执行 NS 查询。

dig命令格式:

  • dig –t 资源记录类型名称@server-ip

  • dig –x IP @server-ip   反向解析

  • dig –t axfr zone    验证完全区域传送

  • dig –t ixfr zone    验证增量区域传输(通常需要指定序列号)

查询根节点:

[root@example.com ~]# dig -t NS .
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t NS .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63456
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;. INNS
;; ANSWER SECTION:
. 5333INNSa.root-servers.net.
. 5333INNSm.root-servers.net.
. 5333INNSb.root-servers.net.
. 5333INNSj.root-servers.net.
. 5333INNSc.root-servers.net.
. 5333INNSf.root-servers.net.
. 5333INNSg.root-servers.net.
. 5333INNSi.root-servers.net.
. 5333INNSl.root-servers.net.
. 5333INNSd.root-servers.net.
. 5333INNSh.root-servers.net.
. 5333INNSe.root-servers.net.
. 5333INNSk.root-servers.net.
;; Query time: 112 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct  2 21:51:41 2015
;; MSG SIZE  rcvd: 228

4、主配置文件说明

[root@example.com ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {                                                              #全局选项
 listen-on port 53 { 127.0.0.1; };                          #定义监听的IP地址和端口,若注释则监听全部IP的53端口
 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; };                            #访问控制,注释该语句后即允许所有IP访问
 recursion yes;
 dnssec-enable yes;                                             #此三项为DNS服务安全的配置,前期学习时为避免未知的错误建议注释掉
 dnssec-validation yes;  
 dnssec-lookaside auto;
 /* Path to ISC DLV key */
 bindkeys-file "/etc/named.iscdlv.key";
 managed-keys-directory "/var/named/dynamic";
};
logging {                                                     #定义日志
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {                                                 #定义区域
 type hint;                                                  # 主域(master)、从域(slave)、缓存域(hint)、转发域(forward)
 file "named.ca";
};
include "/etc/named.rfc1912.zones";                 #正反向区域文件
include "/etc/named.root.key";

5、案例使用

案例要求:

DNS服务器地址:192.168.1.8

mail:192.168.1.9

www:192.168.1.10

pop:mail别名,指向mail

ftp:www别名,指向www

要求可以实现正反向解析

更改配置文件:

[root@example.com ~]# 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";
};
 
logging {                                          
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
 
zone "." IN {
        type hint;
        file "named.ca";
};
zone "example.com" IN {                            
        type master;
        file "example.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {                  
        type master;
        file "192.168.1.zone";
};
include "/etc/named.rfc1912.zones";                
//include "/etc/named.root.key";

   说明:zone "example.com" IN正向解析段和zone "1.168.192.in-addr.arpa" IN反向解析段可以写在主配置文件中,也可以写在本地区域文件中即/etc/named.rfc1912.zones,若使用后者一定不要将主配置文件中的include "/etc/named.rfc1912.zones";  给注释掉。在这里type类型有三种,他们分别为master、slave、hint,含义如下:

  • master:表示定义的主域名服务器 

  • slave:表示定义的是辅助域名服务器 

  • hint:表示是互联网中的根域名服务器 

  • file用来指定存放DNS记录的文件(一般都是区域名称.zone),allow-update定义是否允许客户主机或服务器自行更新DNS记录,上面指定的这个正向区域不允许更新DNS记录。

定义区域数据文件:

[root@example.com named]# vim /var/named/example.com.zone   #编辑正向解析文件
$TTL 3600
@       IN      SOA     dns.example.com.        admin.example.com. (
                                                        2015100301
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns   #若不写全会自动同步名称,若不写全不能以”.”结尾
@       IN      MX 10   mail
dns     IN      A       192.168.1.8
mail    IN      A       192.168.1.9
www     IN      A       192.168.1.10
pop     IN      CNAME   mail
ftp     IN      CNAME   www

正向区域数据文件的格式和含义:

   第一行是一个TTL设定,定义区域数据文件里面的各项记录的宏,缺少此行不影响使用,但是会出现警告信息。

   第二行是一个SOA记录的设定,“@“代表相应的域名,也就是在/etc/named.rfc1912.zones,如在这里表示example.com,IN表示后面的数据使用的是Internet标准。SOA表示目前区域授权开始。每一个区域数据文件只能有一个SOA,不能重复,并且必须是所负责的zone中第一个”记录“。在SOA后面分别指定这个区域的授权主机名称和管理者的邮箱。

   注:授权主机名和管理员信箱后面都要有一个”.”。由于”@”在区域数据文件中有其他含义,因此管理员邮箱地址中用”.”代替“@“符号。

接下来包含在括弧内的5组数字是作为服务器同步信息而设置的,含义如下:

  • 第一段表示配置文件的修改版本,格式是年月日加上修改的次数,每次修改这个配置文件时都应该修改这个数值,因为当DNS进行信息同步时,会比较这个数值的值。如果这个数值比自身的数值大,就进行更新,否则忽略更新。(这个设置很重要,如果修改区域数据后没有更新该值,那么所做的更改就不会同步到其他DNS服务器) 

  • 第二段表示用来设定DNS服务器进行同步的间隔时间又称刷新时间。只通知给本区域解析库文件中定义NS记录的所有主机; 

  • 第三段表示同步更新失败之后,在进行重试的间隔时间。 

  • 第四段表示同步更新失败之后,多长时间清除对应的记录,又称过期时间 

  • 第五段表示否定的TTL值 

   接下来是对域名解析的具体设置,第1列表示不同的主机域名,但是省略了后面的域信息(若为空白表示与上面域名相同)。例如:”www”其实是www.example.com等。“IN“后面的指令含义说明如下:

  • NS:用来定义这个主机是个域名服务器,是个区域名称 

  • MX:定义邮件服务器,这里需要定义优先级的!这里定义的交换级别为10 

  • A:定义了一个A记录,即域名到IP的记录 

  • CNAME:定义了域名的别名

[root@example.com named]# vim /var/named/192.168.1.zone   #定义反向区域文件
$TTL 3600
@       IN      SOA     dns.example.com.        admin.example.com. (
                                                        2015100301
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns.example.com.
8      IN      PTR     dns.example.com.
9      IN      PTR     mail.example.com.
10      IN      PTR     www.example.com.

   分析:可以看出,反向区域文件基本结构和正向区域数据文件基本完全相同,只不过这里多出了一个PTR选项。PTR用来定义一个反向记录,也就是通过IP可以查到对应的域名信息。最后三行的第一列表示是主机的IP地址,只不过省略了网络地址部分,系统会自动补全,如8对应的是192.168.1.8。

   注意:区域名称以逆向的网络地址,并以.in-addr.arpa为后缀 ,第一条必须SOA ,应该具有NS记录,但不能出现MX和A记录,较常见的为PTR记录,名称为逆向的主机名。

定义区域文件的权限关系:

[root@example.com named]# chown root.named /var/named/example.com.zone 
[root@example.com named]# chown root.named /var/named/192.168.1.zone 
[root@example.com named]# chmod 640 /var/named/example.com.zone 
[root@example.com named]# chmod 640 /var/named/192.168.1.zone

检查区域文件语法错误与否:

[root@example.com named]# service named configtest
zone example.com/IN: loaded serial 2015100301
zone 1.168.192.in-addr.arpa/IN: loaded serial 2015100301
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
[root@example.com named]# named-checkconf    #检查主配置文件语法,无信息输出说明配置成功
[root@example.com named]# named-checkzone "example.com" /var/named/example.com.zone   #检查zone语法错误与否
zone example.com/IN: loaded serial 2015100301
OK

启动服务并查看监听的端口:

[root@example.com named]# service named start
Generating /etc/rndc.key:                                  [确定]
启动 named:                                               [确定]
[root@example.com named]# ss -tnlp |grep named
LISTEN     0      3               192.168.1.8:53                       *:*      users:(("named",3439,21))
LISTEN     0      3                 127.0.0.1:53                       *:*      users:(("named",3439,20))
LISTEN     0      128                     ::1:953                     :::*      users:(("named",3439,23))
LISTEN     0      128               127.0.0.1:953                      *:*      users:(("named",3439,22))

使用dig命令对DNS正向区域解析情况进行测试: 

[root@example.com named]# dig -t A www.example.com @192.168.1.8    #解析A记录

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t A www.example.com @192.168.1.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23829
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
www.example.com.	3600	IN	A	192.168.1.10

;; AUTHORITY SECTION:
example.com.	3600	IN	NS	dns.example.com.

;; ADDITIONAL SECTION:
dns.example.com.	3600	IN	A	192.168.1.8

;; Query time: 1 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Fri Oct  2 23:18:38 2015
;; MSG SIZE  rcvd: 83
[root@example.com ~]# dig -t NS example.com @192.168.1.8       #解析NS记录

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t NS example.com @192.168.1.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61028
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;example.com.	IN	NS

;; ANSWER SECTION:
example.com.	3600	IN	NS	dns.example.com.

;; ADDITIONAL SECTION:
dns.example.com.	3600	IN	A	192.168.1.8

;; Query time: 0 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Fri Oct  2 23:20:21 2015
;; MSG SIZE  rcvd: 63
[root@example.com ~]# dig -t SOA example.com @192.168.1.8    #解析SOA记录

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t SOA example.com @192.168.1.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10395
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;example.com.	IN	SOA

;; ANSWER SECTION:
example.com.	3600	IN	SOA	dns.example.com. admin.example.com. 2015100301 7200 600 604800 86400

;; AUTHORITY SECTION:
example.com.	3600	IN	NS	dns.example.com.

;; ADDITIONAL SECTION:
dns.example.com.	3600	IN	A	192.168.1.8

;; Query time: 24 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Fri Oct  2 23:21:01 2015
;; MSG SIZE  rcvd: 105
[root@example.com ~]# dig -t MX example.com @192.168.1.8   #解析MX记录

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t MX example.com @192.168.1.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24684
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;example.com.	IN	MX

;; ANSWER SECTION:
example.com.	3600	IN	MX	10 mail.example.com.

;; AUTHORITY SECTION:
example.com.	3600	IN	NS	dns.example.com.

;; ADDITIONAL SECTION:
mail.example.com.	3600	IN	A	192.168.1.9
dns.example.com.	3600	IN	A	192.168.1.8

;; Query time: 2 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Fri Oct  2 23:29:41 2015
;; MSG SIZE  rcvd: 100
[root@example.com ~]# dig -x 192.168.1.8          #反向区域解析

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 192.168.1.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37041
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;8.1.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
8.1.168.192.in-addr.arpa. 3600	IN	PTR	dns.example.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.	3600	IN	NS	dns.example.com.

;; ADDITIONAL SECTION:
dns.example.com.	3600	IN	A	192.168.1.8

;; Query time: 1 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Fri Oct  2 23:19:22 2015
;; MSG SIZE  rcvd: 101
[root@example.com ~]# dig -t axfr 1.168.192.in-addr.arpa       #完全区域传送

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t axfr 1.168.192.in-addr.arpa
;; global options: +cmd
1.168.192.in-addr.arpa.	3600	IN	SOA	dns.example.com. admin.example.com. 2015100301 7200 600 604800 86400
1.168.192.in-addr.arpa.	3600	IN	NS	dns.example.com.
10.1.168.192.in-addr.arpa. 3600	IN	PTR	www.example.com.
8.1.168.192.in-addr.arpa. 3600	IN	PTR	dns.example.com.
9.1.168.192.in-addr.arpa. 3600	IN	PTR	mail.example.com.
1.168.192.in-addr.arpa.	3600	IN	SOA	dns.example.com. admin.example.com. 2015100301 7200 600 604800 86400
;; Query time: 3 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Fri Oct  2 23:22:37 2015
;; XFR size: 6 records (messages 1, bytes 205)

前面举例中均需要指定我们创建的DNS服务器192.168.1.8,若不想指定则可以将DNS指向本机即可。

修改本机的DNS解析主机名:

[root@example.com ~]# cat /etc/resolv.conf
nameserver 192.168.1.8
nameserver 8.8.8.8
nameserver 202.102.224.68
[root@example.com ~]# dig -t axfr example.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t axfr example.com
;; global options: +cmd
example.com.	3600	IN	SOA	dns.example.com. admin.example.com. 2015100301 7200 600 604800 86400
example.com.	3600	IN	NS	dns.example.com.
example.com.	3600	IN	MX	10 mail.example.com.
dns.example.com.	3600	IN	A	192.168.1.8
ftp.example.com.	3600	IN	CNAME	www.example.com.
mail.example.com.	3600	IN	A	192.168.1.9
pop.example.com.	3600	IN	CNAME	mail.example.com.
www.example.com.	3600	IN	A	192.168.1.10
example.com.	3600	IN	SOA	dns.example.com. admin.example.com. 2015100301 7200 600 604800 86400
;; Query time: 1 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Fri Oct  2 23:24:49 2015
;; XFR size: 9 records (messages 1, bytes 234)

本文出自 “粗茶淡饭” 博客,请务必保留此出处http://cuchadanfan.blog.51cto.com/9940284/1710387

DNS软件bind使用(一)

标签:dns、bind

原文地址:http://cuchadanfan.blog.51cto.com/9940284/1710387

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!