今天我们来介绍一下DNS服务,在大家的印象中DNS可能只是将域名解析为IP地址,可能其他的暂时还不太了解,希望本篇内容能帮助大家。

1、什么是DNS?

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,使用的是UDP协议的53号端口,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。

2、DNS服务基本概念

在介绍DNS服务器工作原理之前我们先来了解几个DNS相关的概念:

1、FQDN:Full Qualified Domain Name,完全限定域名,即每个域在全球网络都是唯一的;另外值得提到的一点是域并不是指诸如www.google.com这样的域名,而google.com才是域;

2、域的分类

(1)根域 :世界有13个ip地址管理,有10个在美国,1个在日本,3个在欧洲,荷兰,瑞典

(2)顶级域:顶级域(Top Level Domain,简称TLD)分为三类

1> 通用顶级域:诸如 .com(商业机构) .org(非营利性组织) .net(网络服务机构)等

2> 国家顶级域:诸如 .cn(中国) .uk(英国) .us(美国) .jp(小日本)

3> 反向域(基础建设顶级域):.arpa,即从IP到FQDN的反向解析

223.5.5.5  阿里DNS地址
223.6.6.6 阿里DNS地址
8.8.8.8 谷歌提供的DNS地址
8.8.4.4 谷歌提供的DNS地址
1.1.1.1 澳大利亚DNS地址
119.29.29.29 腾讯DNS地址

3、DNS服务器查询的类型:

(1)递归查询:

递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。

当收到DNS工作站的查询请求后,DNS服务器在自己的缓存或区域数据库中查找,如找到则返回结果,如找不到,返回错误结果。即DNS服务器只会向DNS工作站返回两种信息:要么是在该DNS服务器上查找到的结果,要么是查询失败。该DNS工作站自行向该DNS服务器询问。“递归”的意思是有来有往,并且来、往的次数是一致的。
一般由DNS工作站提出的查询请求便属于递归查询。
由于递归查询是两者之间的,所以通常查询起来高效快捷,能最快应答成功或失败的解析,然而无法成功解析所有域名。一般发生在客户端与服务器间,也特殊情况是dns服务器与dns服务器之间。同时与迭代查询相对.

(2)迭代查询:

迭代查询又称重指引,当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。B访问C、D、E、F、G,
都是迭代查询,首先B 访问C,得到了提示访问D的提示信息后,开始访问D,D又返回给B提示信息,告诉B应该访问E,依次类推。

4、DNS名称解析方式:

(1)正向解析:即将FQDN转化为IP。

(2)反向解析:即将IP转化为FQDN。

每台 DNS 服务器都负责管理一个有限范围(一个或几个域)内的主机域名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为“zone”(区域)。

5、DNS服务器类型:

(1)主DNS服务器:负责解析至少一个域。

(2)辅助(从)DNS服务器:负责解析至少一个,是主DNS服务器的辅助。

(3)缓存DNS服务器:不负责解析域,只是缓存域名解析结果。

6、DNS返回的结果类型:

(1)肯定答案:查询的域存在,会被缓存下来。

(2)否定答案:不存在查询的域名,因此不存在与其查询的域名对应的IP;会被缓存下来。

(3)权威答案:所查询的域名的结果是由负责解析这个域的DNS服务器所返回的答案。

(4)非权威答案:在缓存中查询的结果。

7、DNS的监听端口:tcp的53号端口,udp的53号端口。

3、DNS解析原理

(1)当用户在浏览器中输入www.qq.com域名访问该网站时,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 

(2)如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 

(3)如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 

(4)如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。 

(5)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。 

(6)如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
提示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间的交互查询就是迭代查询。

4、DNS配置文件

/etc/named.conf          主配置文件 服务器主要运行参数

/etc/named.rfc1912.zones  区域文件,主要指定要解析哪个域名

/var/named/xxx.xx        数据文件,用来正向和反向的解析

5、资源记录

区域解析库:由众多RR组成:
资源记录:Resource Record, RR
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个
SOA记录,必须位于解析库的第一条记录
A:internet Address,作用,FQDN --> IP
AAAA:FQDN --> IPv6
PTR:PoinTeR,IP --> FQDN
NS:Name Server,专用于标明当前区域的DNS服务器
CNAME : Canonical Name,别名记录
MX:Mail eXchanger,邮件交换器
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:
SPF(反垃圾邮件)记录,https验证等
示例:_dnsauth TXT 2012011200000051qgs69bwoh4h6nht4n1h0lr038x

6、资源记录定义的格式:

语法:name [TTL] IN rr_type value
注意:
(1) TTL可从全局继承
(2) @可用于引用当前区域的名字
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询
方式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值
进行定义;此仅表示通过多个不同的名字可以找到同一个主机
$TTL(主标题定义,下面可以省略TTL格式) 1D(默认一天)
@(代表管理的域名,例如:baidu.com) IN(internet) SOA(当前区域名称) dns1(主DNS服务器名称,注释名称,必须用A记录解析成IP,对应本机的IP地址) admin.baidu.com.(管理员的邮箱地址) (
0 ; serial (数据库版本号,要将数据递增,才会生效下面的数据)
1D ; refresh (刷新间隔)
1H ; retry (重试时间间隔)
1W ; expire (过期时长)
3H ) ; minimum (缓存时长)
(可以继承前面的内容) NS dns1
dns1 A 192.168.34.101 (必须将上面的dns1主服务器名称需要定义解析成IP地址)

7、SOA记录

 name: 当前区域的名字,例如“baidu.com.”
 value: 有多部分组成
 (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
 (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.baidu.com
 (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
 例如:
baidu.com. 86400 IN SOA ns.baidu.com.
nsadmin.baidu.com. (
2015042201 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)

8、NS记录

name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如ns.baidu.com.
注意:一个区域可以有多个NS记录
例如:
baidu.com. IN NS ns1.baidu.com.
baidu.com. IN NS ns2.baidu.com.

 注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略 
(2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有
一个A记录 

9、MX记录

name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
例如:
baidu.com. IN MX 10 mx1.baidu.com.
IN MX 20 mx2.baidu.com.

注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有
一个A记录  

10、A记录

name: 某主机的FQDN,例如www.baidu.com.
value: 主机名对应主机的IP地址
例如:
www.baidu.com. IN A 1.1.1.1
www.baidu.com. IN A 2.2.2.2
mx1.baidu.com. IN A 3.3.3.3
mx2.baidu.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$
*.baidu.com. IN A 5.5.5.5
baidu.com. IN A 6.6.6.6

注意:避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址,比如:@,  * 两个关键写法。

11、PTR记录:

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而
有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
例如:
4.3.2.1.in-addr.arpa. IN PTR www.baidu.com.
如1.2.3为网络地址,可简写成:
4 IN PTR www.baidu.com.

12、AAAA记录

name: FQDN
value: IPv6

13、CNAME(别名记录)

name: 别名的FQDN
value: 真正名字的FQDN
例如:
www.baidu.com. IN CNAME websrv.baidu.com.

注意:网络地址及后缀可省略;主机地址依然需要反着写。

14、测试命令及rndc命令:

1、dig

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

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

查询选项:

  +[no]trace程 :跟踪解析过程 : dig +trace baidu.com

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

  测试反向解析:dig -x IP = dig -t ptr reverseip.in-addr.arpa

  模拟区域传送:

  dig -t axfr ZONE_NAME @SERVER    抓区域数据库,可以被allow-transfer  { 192.168.30.106;}; 防止

  dig -t axfr baidu.com @10.10.10.11

  dig -t axfr 100.1.10.in-addr.arpa @172.16.1.1

  dig -t NS . @114.114.114.114  测试邮件记录

  dig -t NS . @a.root-servers.net  查根的服务器,13个

2、host,查询没有dig详细

host [-t type] name [SERVER]

host -t NS baidu.com 172.16.0.1

host -t soa baidu.com

host -t mx baidu.com

host -t axfr baidu.com

host 1.2.3.4

3、nslookup: (windows和linux都有这个命令)

命令: nslookup [-option] [name | -] [server]

交互式模式:

  nslookup>

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

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

  NAME: 要查询的名称

4、rndc命令

rndc:

  rndc --> rndc (953/tcp)

  rndc COMMAND

COMMAND:

  reload: 重载主配置文件和区域解析库文件

  reload zonename: 重载区域解析库文件

  retransfer zonename: 手动启动 区域传送, 而不管序列号是否增加

  notify zonename: 重新对区域传送发通知,当主从同步过程发生意外时,

    例:rndc notify baidu.com

  reconfig: 重载主配置文件

  querylog: 开启或关闭查询日志文件/var/log/message(默认不启用日志),排错的时候才开启,要不访问一条加一条记录,量太大了;关闭,执行同样的命令

    tail -f /var/log/messages 动态查询日志

  trace: 递增debug 一个级别

  trace LEVEL: 指定使用的级别,日志级别,日志的详细程度

  notrace:为将调试级别设置为 0

  flush :清空DNS 服务器的所有缓存记录

主从服务器数据同步方式的方式:

  • 推:push,主服务发生变化,从服务器随之变化
  • 拉: pull

14、验证linux的DNS服务具有缓存功能:

首先:我们拿一台linux主机A作为DNS服务端,另一台linux主机B作为客户端:

看一下主机A的当前网络配置:

安装bind软件:yum install bind -y

启动bind服务: systemctl start named(centos7启动)

service named start (centos6启动)

[root@ansiblenetwork-scripts]#vim ifcfg-ens33 

DEVICE=ens33
BOOTPROTO=static
IPADDR=192.168.34.101
PREFIX=24
GATEWAY=192.168.34.2
ONBOOT=yes
DNS1=127.0.0.1

然后在主机A上ping网址,如ping www.baidu.com,此时可以看到能ping通:

[root@ansiblenetwork-scripts]#ping www.baidu.com
PING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=1 ttl=128 time=1003 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=2 ttl=128 time=16.8 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=3 ttl=128 time=14.6 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=4 ttl=128 time=19.7 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=5 ttl=128 time=17.6 ms
^C
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 8649ms
rtt min/avg/max/mdev = 14.634/214.418/1003.120/394.354 ms, pipe 2

修改配置文件: 

注释掉第一个,是因为他默认是监听在本地端口上,这样是不能提供服务的。
可以改成把IP改成localhost,或是你指定的某个IP。注释后默认监听在所有本地端口上。
注释掉第二个,是因为它里面写了localhost,指明了只能被本机所使用查询功能,
注释后默认所有IP都可以使用,也可以把localhost改成any。

vim /etc/named.conf

[root@ansible~]#vim /etc/named.conf
options {
listen-on port 53 { localhost; }; 本地端口进行连接 allow-query { any; }; 改为any,是允许所有人进行连接此计算机

将主机B的DNS地址写成主机A的IP地址,即192.168.34.101当做主机B的DNS,指向主机A:

[root@centos6~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
PROTOBOOT=static
IPADDR=192.168.34.105
GATEWAY=192.168.34.2
ONBOOT=yes
DNS1=192.168.34.101

此时将主机A的连接外网的一个网卡down掉,然后在主机B上ping www.baidu.com,此时可以ping通:

[root@ansible~]#ifconfig ens37 down  将A主机的外网网卡去掉
[root@centos6~]#ping www.baidu.com 此时还是可以通过192.168.34.101主机可以ping到外网
PING www.a.shifen.com (112.80.248.76) 56(84) bytes of data.
64 bytes from 112.80.248.76: icmp_seq=1 ttl=128 time=20.2 ms
64 bytes from 112.80.248.76: icmp_seq=2 ttl=128 time=15.0 ms
64 bytes from 112.80.248.76: icmp_seq=3 ttl=128 time=39.5 ms
64 bytes from 112.80.248.76: icmp_seq=4 ttl=128 time=17.2 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3419ms
rtt min/avg/max/mdev = 15.076/23.020/39.545/9.713 ms
[root@centos6~]#dig www.baidu.com 也可以查询到当前的执行结果 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15097
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5 ;; QUESTION SECTION:
;www.baidu.com. IN A ;; ANSWER SECTION:
www.baidu.com. 361 IN CNAME www.a.shifen.com.
www.a.shifen.com. 110 IN A 112.80.248.75
www.a.shifen.com. 110 IN A 112.80.248.76 ;; AUTHORITY SECTION:
a.shifen.com. 362 IN NS ns1.a.shifen.com.
a.shifen.com. 362 IN NS ns3.a.shifen.com.
a.shifen.com. 362 IN NS ns4.a.shifen.com.
a.shifen.com. 362 IN NS ns2.a.shifen.com.
a.shifen.com. 362 IN NS ns5.a.shifen.com. ;; ADDITIONAL SECTION:
ns5.a.shifen.com. 362 IN A 180.76.76.95
ns2.a.shifen.com. 362 IN A 220.181.33.32
ns3.a.shifen.com. 362 IN A 112.80.255.253
ns4.a.shifen.com. 362 IN A 14.215.177.229
ns1.a.shifen.com. 362 IN A 61.135.165.224 ;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101) 连接通的IP地址来自于192.168.34.101
;; WHEN: Wed Nov 6 20:46:45 2019
;; MSG SIZE rcvd: 260

15、实现正向解析DNS服务器

在主配置文件中定义区域:

type类型有 主:从:根:转发。 
file指区域解析库文件的文件名,默认放在/var/named/目录下,修改当前配置文件:

vim /etc/named.rfc1912.zones

[root@ansiblenamed]#vim /etc/named.rfc1912.zones

zone  "baidu.com" {       将文件内容写入当前文件中
type master;
file "baidu.com.zone";
};

将 /var/named/目录下的默认配置文件复制一份,并修改区域数据解析库文件:

注意:named.localhost的属性,尤其是属组,一定要是named所属组。

[root@ansiblenamed]#cd /var/named
[root@ansiblenamed]#cp -p named.localhost baidu.com.zone

修改里边的区域数据解析库内容:

[root@ansiblenamed]#vim baidu.com.zone 

$TTL 1D
@ IN SOA dns1 admin.baidu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1
dns1 A 192.168.34.101
www CNAME webs
webs A 6.6.6.6
webs A 8.8.8.8
webs A 7.7.7.7
@ MX 10 mailser1
@ MX 20 mailser2
mailser1 A 11.9.9.9
mailser2 A 9.9.9.9
@ A 8.8.8.8 此写法可以省略前面的www写法
* A 8.8.8.8 此写法避免用户只知道域名,www前面的输入错误也能打开页面。
$GENERATE 1-200 server$ A 192.168.34.$ 将一个服务生成最大200条记录

注意:以上的SOA记录里面小括号里面的那五行分别指的是 序列号;刷新时间;重试时间; 
过期时间;否定答案时间的TLL值。

检测配置文件内容是否有误:

named-checkzone  baidu.com  /var/named/baidu.com.zone

rncd reload  重新加载服务。

[root@ansiblenamed]#named-checkzone baidu.com  /var/named/baidu.com.zone
zone baidu.com/IN: loaded serial 0
OK
[root@ansiblenamed]#rndc reload 让此配置文件生效,或者直接重启named也可以,systemctl restart named
server reload successful

主机B此时的DNS配置信息还是主机A的IP地址:

[root@centos6~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
PROTOBOOT=static
IPADDR=192.168.34.105
GATEWAY=192.168.34.2
ONBOOT=yes
DNS1=192.168.34.101

在主机B上验证当前6.6.6.6的解析结果来自于主机A(192.168.34.101),结果如下:

1、dig www.baidu.com   host www.baidu.com   nslokup www.baidu.com 都可以查询

[root@centos6named]#dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17575
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; QUESTION SECTION:
;www.baidu.com. IN A ;; ANSWER SECTION:
www.baidu.com. 86400 IN A 6.6.6.6 ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS baidu.com. ;; ADDITIONAL SECTION:
baidu.com. 86400 IN A 127.0.0.1
baidu.com. 86400 IN AAAA ::1 ;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov 6 21:05:59 2019
;; MSG SIZE rcvd: 105

此时可以看到当前的7.7.7.7解析结果也是来自于192.168.34.101:

dig blog.baidu.com   host blog.baidu.com   nslokup blog.baidu.com

[root@centos6named]#dig blog.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> blog.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46754
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; QUESTION SECTION:
;blog.baidu.com. IN A ;; ANSWER SECTION:
blog.baidu.com. 86400 IN A 7.7.7.7 ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS baidu.com. ;; ADDITIONAL SECTION:
baidu.com. 86400 IN A 127.0.0.1
baidu.com. 86400 IN AAAA ::1 ;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov 6 21:06:57 2019
;; MSG SIZE rcvd: 106

不输入www验证解析内容:

[root@ansiblenamed]#dig baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28766
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;baidu.com. IN A ;; ANSWER SECTION:
baidu.com. 86400 IN A 8.8.8.8 ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS dns1.baidu.com. ;; ADDITIONAL SECTION:
dns1.baidu.com. 86400 IN A 192.168.34.101 ;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 23:39:16 CST 2019
;; MSG SIZE rcvd: 89

用户输入错误解析文件信息:

[root@ansiblenamed]#dig adsds.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> adsds.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34813
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;adsds.baidu.com. IN A ;; ANSWER SECTION:
adsds.baidu.com. 86400 IN A 8.8.8.8 ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS dns1.baidu.com. ;; ADDITIONAL SECTION:
dns1.baidu.com. 86400 IN A 192.168.34.101 ;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 23:40:39 CST 2019
;; MSG SIZE rcvd: 95

解析当前的A记录:

[root@ansiblenamed]#dig www.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20270
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A ;; ANSWER SECTION:
www.baidu.com. 86400 IN CNAME webs.baidu.com.
webs.baidu.com. 86400 IN A 7.7.7.7
webs.baidu.com. 86400 IN A 8.8.8.8
webs.baidu.com. 86400 IN A 6.6.6.6 ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS dns1.baidu.com. ;; ADDITIONAL SECTION:
dns1.baidu.com. 86400 IN A 192.168.34.101 ;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 22:03:38 CST 2019
;; MSG SIZE rcvd: 144

查询域中的MX记录:

[root@ansiblenamed]#dig -t mx  baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> -t mx baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62611
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 4 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;baidu.com. IN MX ;; ANSWER SECTION:
baidu.com. 86400 IN MX 10 mailser1.baidu.com.
baidu.com. 86400 IN MX 20 mailser2.baidu.com. ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS dns1.baidu.com. ;; ADDITIONAL SECTION:
mailser1.baidu.com. 86400 IN A 11.9.9.9
mailser2.baidu.com. 86400 IN A 9.9.9.9
dns1.baidu.com. 86400 IN A 192.168.34.101 ;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 22:04:16 CST 2019
;; MSG SIZE rcvd: 155

验证当前生成最大200条记录的信息内容:

[root@centos6named]#dig server20.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> server20.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5853
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;server20.baidu.com. IN A ;; ANSWER SECTION:
server20.baidu.com. 86400 IN A 192.168.34.20 ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS dns1.baidu.com. ;; ADDITIONAL SECTION:
dns1.baidu.com. 86400 IN A 192.168.34.101 ;; Query time: 3 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov 6 23:47:27 2019
;; MSG SIZE rcvd: 87 [root@centos6named]#dig server10.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> server10.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61484
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;server10.baidu.com. IN A ;; ANSWER SECTION:
server10.baidu.com. 86400 IN A 192.168.34.10 ;; AUTHORITY SECTION:
baidu.com. 86400 IN NS dns1.baidu.com. ;; ADDITIONAL SECTION:
dns1.baidu.com. 86400 IN A 192.168.34.101 ;; Query time: 2 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov 6 23:47:33 2019
;; MSG SIZE rcvd: 87

查询邮件服务器:

dig -t mx easthome.com 查找一个域的邮件服务器。

[root@ansiblenamed]#dig -t  mx easthome.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> -t mx easthome.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50719
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 19 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;easthome.com. IN MX ;; ANSWER SECTION:
easthome.com. 1200 IN MX 1 mail.easthome.com. ;; AUTHORITY SECTION:
easthome.com. 172749 IN NS dns20.hichina.com.
easthome.com. 172749 IN NS dns19.hichina.com. ;; ADDITIONAL SECTION:
dns19.hichina.com. 172749 IN A 140.205.41.17
dns19.hichina.com. 172749 IN A 140.205.41.27
dns19.hichina.com. 172749 IN A 140.205.81.17
dns19.hichina.com. 172749 IN A 140.205.81.27
dns19.hichina.com. 172749 IN A 106.11.141.117
dns19.hichina.com. 172749 IN A 106.11.141.127
dns19.hichina.com. 172749 IN A 106.11.211.57
dns19.hichina.com. 172749 IN A 106.11.211.67
dns19.hichina.com. 172749 IN AAAA 2400:3200:2000:38::1
dns20.hichina.com. 172749 IN A 140.205.81.18
dns20.hichina.com. 172749 IN A 140.205.81.28
dns20.hichina.com. 172749 IN A 106.11.141.118
dns20.hichina.com. 172749 IN A 106.11.141.128
dns20.hichina.com. 172749 IN A 106.11.211.58
dns20.hichina.com. 172749 IN A 106.11.211.68
dns20.hichina.com. 172749 IN A 140.205.41.18
dns20.hichina.com. 172749 IN A 140.205.41.28
dns20.hichina.com. 172749 IN AAAA 2400:3200:2000:39::1 ;; Query time: 274 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 22:10:52 CST 2019
;; MSG SIZE rcvd: 422

16、实现反向解析DNS服务器  

修改当前配置文件:vim /etc/named.rfc1912.zones

[root@ansiblenamed]#vim /etc/named.rfc1912.zones
zone "34.168.192.in-addr.arpa"IN {
type master;
file "192.168.34.zone";
};

 修改反向区域解析库文件: 

[root@ansiblenamed]#vim 192.168.34.zone 

$TTL 1D
@ IN SOA dnsserver admin.baidu.com. ( 20191110 3H 10M 1D 1H )
NS dnsserver
dnsserver A 192.168.34.101
7 PTR dnsserver.baidu.com.
100 PTR www.baidu.com
200 PTR blog.baidu.com

将配置文件生效:

[root@ansiblenamed]#rndc reload

检查区域库文件反向解析结果:

[root@centos6named]#dig -x 192.168.34.100

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -x 192.168.34.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33971
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;100.34.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION:
100.34.168.192.in-addr.arpa. 86400 IN PTR www.baidu.com.34.168.192.in-addr.arpa. ;; AUTHORITY SECTION:
34.168.192.in-addr.arpa. 86400 IN NS dnsserver.34.168.192.in-addr.arpa. ;; ADDITIONAL SECTION:
dnsserver.34.168.192.in-addr.arpa. 86400 IN A 192.168.34.101 ;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov 6 22:38:10 2019
;; MSG SIZE rcvd: 113 [root@centos6named]#dig -x 192.168.34.200 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -x 192.168.34.200
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41455
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;200.34.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION:
200.34.168.192.in-addr.arpa. 86400 IN PTR blog.baidu.com.34.168.192.in-addr.arpa. ;; AUTHORITY SECTION:
34.168.192.in-addr.arpa. 86400 IN NS dnsserver.34.168.192.in-addr.arpa. ;; ADDITIONAL SECTION:
dnsserver.34.168.192.in-addr.arpa. 86400 IN A 192.168.34.101 ;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov 6 22:38:18 2019
;; MSG SIZE rcvd: 114 [root@centos6named]#dig -x 192.168.34.7 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -x 192.168.34.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35113
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;7.34.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION:
7.34.168.192.in-addr.arpa. 86400 IN PTR dnsserver.baidu.com. ;; AUTHORITY SECTION:
34.168.192.in-addr.arpa. 86400 IN NS dnsserver.34.168.192.in-addr.arpa. ;; ADDITIONAL SECTION:
dnsserver.34.168.192.in-addr.arpa. 86400 IN A 192.168.34.101 ;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov 6 22:38:22 2019
;; MSG SIZE rcvd: 116

  

 

 

  

  

 

  

  

  

  

  

  

  

DNS服务和BIND的更多相关文章

  1. CentOS7.x的DNS服务的基础配置

    一.bind服务器安装 bind:开源.稳定.应用广泛的DNS服务.bind的软件包名bind,服务名称named. 查看是否安装bind, 安装bind包: rpm -qa bind yum -y ...

  2. 移植DNS服务bind

    移植DNS服务bind 标签: makefile工作linuxbuildgcc工具 先写用于DNS的bind. 一. 移植环境 1 .硬件环境: Host : X86 PC Target : MPC8 ...

  3. 《linux就该这么学》第十四节课:第13章,部署DNS域名解析服务(bind服务)

    (借鉴请改动)  第十二章收尾  12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在  /etc/export  写入格式:共享目录    允许的客户端(参数)  ro        ...

  4. 【Linux】DNS服务-BIND从服务器、缓存服务器及转发服务器配置(三)

    环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example. ...

  5. 【Linux】DNS服务-BIND基础配置(二)

    BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet ...

  6. dns 服务架构优化 - 百万级并发不是梦 - bind+namedmanager+dnsmasq

    bind: DNS服务端. namedmanager: DNS web管理页面. dnsmasq: 并发查询上游dns域名解析. 问题:作为消息推送业务,单台业务机器域名解析并发达到上万次.业务机器集 ...

  7. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  8. DNS解析原理与Bind部署DNS服务

    DNS是什么? DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址.反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提 ...

  9. 【Linux】DNS服务-BIND基础配置

    1.BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Intern ...

随机推荐

  1. nginx+mysql双主搭建

    说明:mysql双主架构经过测试在生产环境中使用没有问题,但是还是建议使用读写分离, Mysql主主同步环境部署: centos 7.4 三台云主机:mysql1 :10.1.1.142 mysql2 ...

  2. php注册自动加载函数

    $autoload_func = function($class) { $class = str_replace('\\', '/', $class); $file_name = dirname(__ ...

  3. Java使用PegDown将markdown文件转成html格式

    maven依赖: <dependency> <groupId>org.pegdown</groupId> <artifactId>pegdown< ...

  4. Jrebel激活方法

    参考 https://www.yanjiayu.cn/posts/3eecb801.html https://gitee.com/gsls200808/JrebelLicenseServerforJa ...

  5. vscode常用插件小结

    工欲善其事,必先利其器. 个人用过的代码编辑器有sublime,webstrom,vscode,H5builder.综合比较下来还是更倾向于vscode. sublime是一款轻量级的编辑器,优点是启 ...

  6. Golang 异常/日志处理

    1.xerrors 异常 xerrors 包是一个非常棒的设计,不同于往常语言如java/php,因为go的errors只是一个string类型的映射,所以内存占用空间很少.这在golang的核心库和 ...

  7. Mybatis表关联一对多、多对一、多对多

    项目工程结构如下: 1. 搭建MyBatis框架环境 首先需要引入两个包:mybatis.jar 和 sqljdbc42.jar包 若分页需要导入两个包:pagehelper-5.1.0.jar 和 ...

  8. WCF-复杂配置

    两种模式,一个契约两个实现,两个契约一个实现. 服务类库 宿主 static void Main(string[] args) { ServiceHost sh1 = new ServiceHost( ...

  9. C++:盾神与条状项链

    实现代码如下: #include<cstdlib> #include <string> #include <iostream> using namespace st ...

  10. zookeeper-伪分布式搭建

    1. 下载解压 2. 在conf目录下,新建3个文件(3台服务器):zoo1.cfg.zoo2.cfg.zoo3.cfg zoo1.cfg: tickTime=2000dataDir=/tmp/zoo ...