DNS查询方式

迭代查询:客户端向本地DNS服务器发出请求后,一直处于等待状态,直到本地名称服务器返回查询结果。
递归查询:客户端和本地DNS服务器的查询就属于递归查询,客户端发出查询请求后处于等待状态,本地DNS以客户端身份询问下一个DNS服务器,直到本地DNS服务器返回确定回复或否定回复。
一次完整的查询请求经过的流程:Client-->hosts文件-->DNS Server Local Cache --> DNS Server(recursion)--Server Cache -->iteration(迭代)-->根-->顶级DNS-->二级域名DNS……

DNS服务器类型

主名称服务器(Primary name server):从域管理员构造的本地磁盘文件中加载域信息,该文件(区域文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威云回复对其管辖域的任何查询。
从名称服务器(Second name server):它可从主服务器中复制一整套域信息。区域文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。这种复制称为“区域文件复制”。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器也称作权威性服务器。配置辅助域名服务器不需要生成本地区域文件,因为可以从主服务器中下载该区域文件。
唯高速缓存名称服务器(caching-only server):可运行域名服务器软件,但是没有域名数据库软件。它从某个远程器取得域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威服务器,因为它提供的所有信息都是间接信息。当BIND被配置为缓存服务器的时候,它只会回应已缓存的请求,并将所有其他的请求转发到上游的DNS服务器。缓存名称服务器只需要.这个zone file即可。

DNS配置的主要文件组

/etc/hosts 主机的一个文件列表,默认请求DNS或NIS网络域名服务器前,/etc/named.conf通常会告诉程序先查看此文件。
/etc/resolv.conf DNS服务器列表
/etc/named.conf BIND主文件
/var/named/named.ca 根域名配置服务器指向文件
/var/named/localhost.zone localhost区正向域名解析文件,用于将localhost解析为127.0.0.1
/var/named/name.local localhost区反向域名解析文件,用于将localhost转换为127.0.0.1
/etc/named.rfc1912.zones 区块设置文件

name.conf文件的配置

acl 定义ip地址的访问控制清单
control 定义rndc使用的控制通道
include 把其他的文件包含到配置文件中
key 定义授权的安全密钥
logging 定义日志内容和位置
options 定义全局配置选项和默认值
server 定义远程服务的特征
zone 定义一个区域

DNS的资源记录(Resource Record,RR)格式

DNS域名数据库有资源记录和区域文件指令组成,由SOA(Start Of Authority起始授权记录,SOA记录定义了主从服务器之间通信的相关属性)RR开始:正向解析包括:

  • A(internet Address,作用,fqdn-->ip)RR
  • MX(Mail eXchanger,邮件交换器)RR
  • CNAME(Canonical NAME别名)RR
  • 反向解析文件包括PTR(PoinTeR,IP-->fqdn)RR

RR 语法:name [TTL] IN type value

  • TTL可从全局继承
  • @可用于引用当前区域的名称
  • 同一个名称可能通过多条记录定义多个不同的值:此时DNS服务器会以轮询方式响应
  • 同一个值也可能朋多个不同的定义名字
    value有多部分组成:
  • 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
  • 当前区域管理员的邮箱地址:地址中不能使用@符号,一般用.替换
  • 主从服务区域传输相关定义以及否定的答案统一的TTL

DNS服务器端配置

BIND的安装配置:dns服务程序包bind,程序包named
一台服务器可同时为多个区域提供解析
必须要有根区域文件:named.ca
应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址解析库主配置文件:/etc/named.conf(用户和属组需要为root权限,否则BIND无法启动)。
全局配置:options {};
日志子系统配置:logging {};
区域定义:本机能够为哪些zone进行解析,就要定义哪些zone zone "ZONE_NAME" in {};
主配置文件语法检查:named-chkconfig

搭建DNS正向解析服务器

安装软件包

yum install bind -y

修改主配置文件

options {
        listen-on port 53 { any; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

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

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

把listen-on的127.0.0.1改为any,把allow-query的localhost改为any
在/etc/named.rfc1912.zones追加以下内容:

zone "magedu.com" IN {
        type master;
        file "magedu.com.zone"
};
   

创建正向区域文件

vim magedu.com.zone

内容如下:

$TTL 600
@	IN	SOA	dns1.magedu.com	admin.magedu.com.	(
		2019011301;serial
		1D;refresh
		1H;retry
		1W;expire
		3H);minimum
@	NS	dns1
dns1	A	192.168.2.104
web	A 	192.168.2.21
www	CNAME	web

检查配置文件语法

named-checkconf

测试结果:

root@node2:~# dig -t  A www.magedu.com @192.168.2.72

; <<>> DiG 9.11.3-1ubuntu1.2-Ubuntu <<>> -t A www.magedu.com @192.168.2.72
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47417
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		600	IN	CNAME	web.magedu.com.
web.magedu.com.		600	IN	A	192.168.2.21

;; AUTHORITY SECTION:
magedu.com.		600	IN	NS	dns1.magedu.com.

;; ADDITIONAL SECTION:
dns1.magedu.com.	600	IN	A	192.168.2.104

;; Query time: 6 msec
;; SERVER: 192.168.2.72#53(192.168.2.72)
;; WHEN: Sun Jan 13 21:26:23 CST 2019
;; MSG SIZE  rcvd: 112


在以上文件中增加一条A记录

*       A       192.168.2.21

此为泛域名解析,ping测试即使www写错也可以正确解析。

创建反向解析区域

配置文件
在/etc/named.rfc1912.zones中追加以下内容

zone "2.168.192.in-addr.zrpa" IN {
        type master;
        file "2.168.192.zone";
};

创建反向解析区域文件

$TTL 600
@		IN	SOA	dns1.magedu.com.	admin.magedu.com.	(
		2019011301;
		10m;
		2m;
		1h;
		1h);
	IN	NS	dns1.magedu.com.
72	IN	PTR	dns1.magedu.com.
21	IN	PTR	www.magedu.com.

测试结果:

root@node2:~# dig -x 192.168.2.21

; <<>> DiG 9.11.3-1ubuntu1.2-Ubuntu <<>> -x 192.168.2.21
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36642
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;21.2.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
21.2.168.192.in-addr.arpa. 600	IN	PTR	www.magedu.com.

;; AUTHORITY SECTION:
2.168.192.in-addr.arpa.	600	IN	NS	dns1.magedu.com.

;; ADDITIONAL SECTION:
dns1.magedu.com.	600	IN	A	192.168.2.104

;; Query time: 5 msec
;; SERVER: 192.168.2.72#53(192.168.2.72)
;; WHEN: Sun Jan 13 21:57:40 CST 2019
;; MSG SIZE  rcvd: 117

dig 命令使用

dig [-t type] name [@server] [query options]
(dig只用于测试dns系统,不查询hosts文件)
查询选项:+[no]trace: 跟踪解析过程
+[no]recurse:进行递归解析
测试反向解析:dig -x IP.AD.DR.RESS @SERVER
模拟区域传送:dig -t axfr ZONE_NAME @SERVER

 posted on 2019-01-13 22:06  feng_land  阅读(159)  评论(0编辑  收藏  举报