一、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
例子:
1 2 | 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必须是区域数据库文件第一条记录
例子:
1 2 3 4 5 6 7 | @ 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记录;
例子:
1 | @ 600 IN NS ns |
4、MX记录:
格式说明
name:区域名称 ,用于标识smtp服务器。
value:邮件服务器的FQDN 和优先级,优先级为0-99.数字越小,越优先。
注意:如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性 ,对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;
例如
1 2 | @ IN MX 10 mail.example.com. @ IN MX 20 mail2.example.com. |
5、A记录
格式说明
name: FQDN(可简写)
value: IP
注意:只能定义在正向区域数据文件中。
例如
1 2 | www 600(单位s) IN A 1.2.3.4 www 600(单位s) IN A 1.2.3.5 |
说明:此种方法能做最简单的负载均衡,但是由于其负载均衡的规则为轮询,故使用前一定要注意。
1 2 | 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
例如
1 2 | 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.后缀组成。
例如
1 | 10 IN PTR www.example.com. |
三、安装使用bind
BIND(Berkeley InternetName Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。此组织还维护一个很有名的软件DHCP。我们使用时安装软件名为bind,而进程名和用户名为named。
1、安装bind
1 | [root@example.com ~]# yum install -y bind bind-utils |
2、安装生成的配置文件
[root@example.com ~]# rpm -qc bind
1 2 3 4 5 6 7 8 9 10 11 12 | /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 验证增量区域传输(通常需要指定序列号)
查询根节点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | [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、主配置文件说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | [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
要求可以实现正反向解析
更改配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | [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记录。
定义区域数据文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [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:定义了域名的别名
1 2 3 4 5 6 7 8 9 10 11 12 | [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记录,名称为逆向的主机名。
定义区域文件的权限关系:
1 2 3 4 | [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 |
检查区域文件语法错误与否:
1 2 3 4 5 6 7 8 9 10 11 12 | [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 |
启动服务并查看监听的端口:
1 2 3 4 5 6 7 8 | [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正向区域解析情况进行测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | [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解析主机名:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [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