DNS服务器的搭建及配置详解(二)

服务器 struggling 1362次浏览 0个评论

有了上面的理论基础后,我们就开始来搭建DNS服务器,首先看看正向解析及反向解析的书写格式。正反向解析的文件都是放在数据库中的,数据库中的每一个条目称作一个资源记录(Resource Record, RR)。
资源记录的格式:
NAME:名称 TTL(可省略) IN:表示internet RRT:资源记录类型 VALUE:数据
一般将TTL(生存时间)定义在文件的最开头处,内容的写法就像下面的样子:

<code>
(缓存) 类型 数据
NAME [TTL] IN RRT VALUE
www.feiyu.com. IN A 1.1.1.1
</code>

每个文件都有一个资源记录类型SOA(Start Of Authority): 起始授权记录,出现在第一条,表明本区域内如何完成数据同步,无论正反向解析中,都是第一条,格式如下:

<code>
ZONE NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX (
serial number ;序列号
refresh ;刷新时间
retry ;重试时间
expire ;缓存时间
na ttl ) ;否定缓存时间
</code>

时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
邮箱格式:因为@在此文件中有特殊意义,是以一个通配符表示zone,所以要将一般的admin@feiyu.com 写法改为-> admin.magedu.com这种格式。
以下为示例:

<code>
feiyu.com.   600   IN     SOA    ns1.feiyu.com.     admin.feiyu.com. (
20150420 ;序号,一般用时间表示,“;”(分号)表示注释信息,序列号最长不能超过十位
1H
5M
1W
1D )
</code>

NS(Name Server): ZONE NAME –> FQDN(从区域名到主机名)无优先级,在区域内部定义主从,修改数据只能在主服务器上修改,正反解中都要保留。
邮件服务的定义格式与上面的区别:

<code>
MX(Mail eXchanger): ZONE NAME --> FQDN,邮件服务器有优先级,
优先级
ZONE NAME       TTL            IN          MX    pri(优先级)            VALUE
优先级:0-99,数字越小级别越高,先找优先级低的
feiyu.com.           600            IN          MX    10                             mail.feiyu.com. 成对出现的
mail.feiyu.com.   600            IN           A                                        1.1.1.3
</code>

记住:MX只能定义在正向,ns正反都可以,A表示正向解析,PTR表示反向解析,下面开始来写;

所以,常见的正解文件的写法就像下面这样子:

<code>
# 常见的正解文件 RR 相关信息
[domain]    IN  [[RR type]  [RR data]]
主机名.      IN  A           IPv4 的 IP 地址
主机名.      IN  AAAA        IPv6 的 IP 地址
领域名.      IN  NS          管理这个领域名的服务器主机名字.
领域名.      IN  SOA         管理这个领域名的七个重要参数(容后说明)
领域名.       IN  MX          顺序数字  接收邮件的服务器主机名字
主机别名.    IN  CNAME       实际代表这个主机别名的主机名字.
</code>

定义配置文件/etc/named.conf :

<code>
/etc/named.conf  写法
区域:
zone "ZONE NAME" IN {		IN为关键字
	type {master|slave|hint|forward};  主,从,根,转发
	
};
						**每个地址都要加“ ;”   “{”与文字间要有空格
主区域:
	file "区域数据文件";   *可以使用相对路径
	
从区域:
	file "区域数据文件";
	masters { master1_ip; };	*指明主服务器地址


options {

	directory  "/var/named";     /*路径定义,以下为其的相对路径*/
	/*recursion  no;     /*允许递归,默认开启*/  
	allow-recursion {192.168.0.0/16;  };  /*定义递归网段*/
	/*allow-query   拒绝传送 */
	/*allow-transfer     定义在此则允许所有主机进行传送*/
	notify yes;     /*修改序列号会通知从服务器*/
};


zone "." IN  {   		/*解析根*/

	type  hint;
	file "named.ca";            /*named.ca文件由bind人提供,为root的正解文件*/
	/*allow-transfer { none;};  /*没有从服务器不传送*/
};

zone "localhost"  IN {           /*解析自己*/
	type master;
	file "named.localhost";
	allow-transfer { none; };  /*没有从服务器不传送*/
};

zone "0.0.127.in-addr.arpa"  IN {   /*反向解析自己*/
	type  master;
	file "named.loopback";
	allow-transfer {none;};       
};
zone "feiyu.com" IN {      /*正向解析feiyu域*/
	type  master;                    /*类型*/
	file "feiyu.com.zone";              /* 相对路径,/var/named下定义的文件*/
	allow-transfer { 192.168.1.2;};    /* 允许此ns服务器进行区域传送*/
};
zone "1.168.192.in-addr.arpa" IN  {       /*反向解析feiyu域,将ip反过来写*/    
	type master;                                        
	file "192.168.1.zone";
	allow-transfer {192.168.1.2; 192.168.1.1;};   /*允许从服务进行区域传送*/
};

以下定义正向解析文件/var/named/feiyu.com.zone :

$TTL  600         #生存周期
feiyu.com.     IN     SOA    	ns1.feiyu.com. admin.feiyu.com. (
					20150421        ;每次修改文件后 ,序号都要加1
					1M  	  
					5M	
					2D
					1H)	

		IN  	NS    	ns1		  #ns记录,此处为简写,省略了域,完整为ns1.feiyu.com.
		IN	NS	ns2
		IN      MX   10 mail		
ns1             IN 	A	192.168.1.1
ns2		IN	A	192.168.1.2
mail            IN    	A	192.168.1.2           #解析mail服务器
www		IN  	A	192.168.1.1            #www服务器有两个ip
www		IN	A 	192.168.1.3
ftp1 		IN	CNAME   www                      #设置别名
ftp		IN	A	192.168.1.1

建立反向文件/var/named/192.168.1.zone文件:

$TTL  600
1.168.192.in-addr.arpa.    IN     SOA    	ns1.feiyu.com. admin.feiyu.com. (
					20150418   
					1H  	  
					5M	
					2D
					6H)	

		IN  	NS    	ns1.feiyu.com.		;ns记录保留,不能简写
		IN	NS	ns2.feiyu.com.
1		IN	PTR	ns1.feiyu.com.
1		IN	PTR	ftp.feiyu.com.
2		IN	PTR	ns2.feiyu.com.
1		IN	PTR	www.feiyu.com.
2		IN	PTR	mail.feiyu.com.
3		IN	PTR	www.feiyuu.com.
[root@struggle named]# chgrp named  feiyu.com.zone    #修改文件属组
[root@struggle named]# chmod 640 feiyu.com.zone         #修改文件权限
[root@struggle named]# chgrp named  192.168.1.zone    
[root@struggle named]# chmod 640  192.168.1.zone        
</code>

建立好文件后,重启服务,注意从服务器必须在另一个主机上,下面开始验证:
验证会需要用到几个命令,DNS 的正、反解查询指令: host, nslookup, dig
host:
选项与参数:
-a :代表列出该主机所有的相关信息,包括 IP、TTL 与除错讯息等等
-l :若后面接的那个 domain 设定允许 allow-transfer 时,则列出该 domain
所管理的所有主机名对应数据!
server:这个参数可有可无,当想要利用非 /etc/resolv.conf 内的 DNS 主机
来查询主机名与 IP 的对应时,就可以利用这个参数了!

<code>
[root@localhost named]# host -a  tianfeiyu.com
Trying "tianfeiyu.com"
;; ->>HEADER<</code>

竟然失败了,这样的响应是因为管理 tianfeiyu.com领域的 DNS 并不许我们的领域查询,毕竟我们不是 tianfeiyu.com 的系统管理员,当然没有权限可以读取整个 tianfeiyu.com 的领域设定!

<code>
2.nslookup

[root@localhost named]# nslookup
> 120.114.100.20                                      #设置DNS服务器
Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
20.100.114.120.in-addr.arpa	name = mail-smtp-proxy.ksu.edu.tw.
20.100.114.120.in-addr.arpa	name = mail.ksu.edu.tw.
20.100.114.120.in-addr.arpa	name = mail-out-r2.ksu.edu.tw.

Authoritative answers can be found from:
100.114.120.in-addr.arpa	nameserver = dns1.ksu.edu.tw.
100.114.120.in-addr.arpa	nameserver = dns2.ksu.edu.tw.
100.114.120.in-addr.arpa	nameserver = dns3.twaren.net.
dns2.ksu.edu.tw	internet address = 120.114.150.1
dns1.ksu.edu.tw	internet address = 120.114.50.1
> set  q=any                                  #设定资源记录类型
> www.tianfeiyu.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
Name:	www.tianfeiyu.com
Address: 121.42.101.40

Authoritative answers can be found from:
tianfeiyu.com	nameserver = dns9.hichina.com.
tianfeiyu.com	nameserver = dns10.hichina.com.
dns9.hichina.com	internet address = 140.205.228.13
dns9.hichina.com	internet address = 42.120.221.13
dns9.hichina.com	internet address = 140.205.81.13
dns10.hichina.com	internet address = 42.120.221.23
dns10.hichina.com	internet address = 140.205.81.23
dns10.hichina.com	internet address = 140.205.228.23
> exit
</code>

3.dig (最重要的一个)
选项与参数:
@server :如果不以 /etc/resolv.conf 的设定来作为 DNS 查询,可在此填入其他的 IP
options:相关的参数很多,主要有 +trace, -t type 以及 -x 三者最常用
+trace :就是从 . 开始追踪,在 19.1.2 里面谈过了!回头瞧瞧去!
-t type:查询的数据主要有 mx, ns, soa 等类型,相关类型 19.4 来介绍
-x :查询反解信息,非常重要的项目!

用法在下面展示。

<code>
[root@localhost named]# named-checkconf    			*下面三项检查语法错误(检查主配置文件)
[root@localhost named]# named-checkzone "."  /var/named/named.ca  (检查域)
zone ./IN: has 0 SOA records
zone ./IN: not loaded due to errors.
[root@localhost named]# named-checkzone "localhost"  /var/named/named.localhost
zone localhost/IN: loaded serial 0
OK
[root@localhost named]# named-checkzone "0.0.127.in-addr.arpa"  /var/named/named.loopback
zone 0.0.127.in-addr.arpa/IN: loaded serial 0
OK
[root@struggle named]# service named configtest
zone localhost/IN: loaded serial 0
zone 0.0.127.in-addr.arpa/IN: loaded serial 0

#定义ns服务器为本身,要不然会解析互联网上的主机,此文件比较繁琐,要是出现问题,请看前一篇关于此文件的介绍
[root@struggle named]# cat /etc/resolv.conf    
# Generated by NetworkManager
nameserver 192.168.1.1

[root@struggle named]# dig -t A www.feiyu.com       #使用dig查询,解析www.feiyu.com的A记录

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> -t A www.feiyu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<解析结果
www.feiyu.com.		600	IN	A	192.168.1.1     ------>

;; AUTHORITY SECTION:
feiyu.com.		600	IN	NS	ns1.feiyu.com.

;; ADDITIONAL SECTION:
ns1.feiyu.com.		600	IN	A	192.168.1.1

;; Query time: 2 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Apr 17 04:28:39 2015
;; MSG SIZE  rcvd: 97



[root@struggle named]# dig -t CNAME  ftp.feiyu.com    #解析ftp的别名

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> -t CNAME ftp.feiyu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<解析结果

;; AUTHORITY SECTION:
feiyu.com.		600	IN	NS	ns1.feiyu.com.

;; ADDITIONAL SECTION:
ns1.feiyu.com.		600	IN	A	192.168.1.1

;; Query time: 0 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Apr 17 04:31:59 2015
;; MSG SIZE  rcvd: 83

[root@struggle named]# dig -t NS  feiyu.com     #解析feiyu.com域的ns服务器

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> -t NS feiyu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<解析结果

;; ADDITIONAL SECTION:
ns1.feiyu.com.		600	IN	A	192.168.1.1

;; Query time: 0 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Apr 17 04:33:33 2015
;; MSG SIZE  rcvd: 61

[root@struggle named]# dig -t MX  feiyu.com    #解析邮箱服务器

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> -t MX feiyu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<解析结果

;; ADDITIONAL SECTION:
mail.feiyu.com.		600	IN	A	192.168.1.2    ------->解析结果
ns1.feiyu.com.		600	IN	A	192.168.1.1            -------->解析结果

;; Query time: 0 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Apr 17 04:34:09 2015
;; MSG SIZE  rcvd: 98


全部解析成功,ok了!</code>

请看下节:


DNS服务器的搭建及配置详解(三)



DevOps-田飞雨 》》转载请注明源地址
喜欢 (0)or分享 (0)
发表我的评论
取消评论
*

表情 贴图 加粗 链接 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址