Dns服务搭建文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dns服务搭建文档相关的知识,希望对你有一定的参考价值。

 

Dns服务搭建文档


Contents

1     工作原理... 2

1.1      DNS 查询的过程... 2

1.2      DNS数据库的记录:ZONE、正解、反解。... 3

1.3      Master/Slave. 3

2     软件安装... 3

3     配置文件... 4

3.1      注意事项... 4

3.2      正向解析... 4

3.3      反向解析... 5

3.4      Master/Slave架构... 6

3.5      视图功能... 8

3.6      子域授权... 9

 

 

1      工作原理

 

1.1     DNS 查询的过程

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。

 

技术分享

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服务器再返回给客户机。

 

1.2    DNS数据库的记录:ZONE、正解、反解。

 

ZONE:DNS服务器内记录信息的文件我们成为数据库,而在数据库里针对每个要解析的域就称为一个区域zone。不管是正解还是反解,每个域的记录就是一个zone.

 

正解:从主机名查询到IP的流程

正解文件的ZONE主要记录了主机名查询到的IP,通常有以下几个标志

SOA:开始验证Start of Authority 的缩写

NS: 名称服务器 name server的缩写,后面记录的数据是DNS服务器

A地址address的缩写,后面记录的是IP的对应

反解:从IP反向解析到主机名的流程

反解的zone主要记录ip对应的主机名。标志有 SOA NS PTR

PTR:指向PoniTeR的缩写,记录的数据就是反解到主机名。

1.3   Master/Slave

Master:里面的所有主机名相关信息都要手动去修改和配置

Slave:同步master的数据,masterslave必须互相搭配。

 

2      软件安装

准备两台centOS6.5linux机器

Ip 10.10.10.58  10.10.10.59

其中 10.10.10.58为主服务器

    10.10.10.59为从服务器

分别安装 bind  bind-chroot 

命令:yum installbind bind-chroot –y

安装bind-chroot的原因是早期的BIND默认将程序启动在var/named当中,但是该程序可以在根目录下的其他目录到处转移,因此若BIND的程序有问题时,则该程序会造成整个系统的危害,为了避免这个问题,我们将某个目录制定为BIND 程序的根目录,由于已经是根目录,所以BIND便不离开该目录,若该程序被攻击了,影响的是该特定目录。CentOS6.x默认将BIND锁定在/var/named/chroot目录中。

由于安装了bind-chroot,/etc/ named* 相关文件都拷贝到 /var/named/chroot/etc    cp –a/etc/name*  /var/named/chroot/etc

由于安装了bind-chroo,还要把/var/named下的部分文件拷贝到/var/named/chroot/var/named cd/var/named 然后  cp –a  data/ dynamic/  slaves/ named.* chroot/var/named/

 

3      配置文件

 

3.1    注意事项

 

排查故障时,可以通过日志来定位问题,日志位置  /var/log/messages

 

编辑/var/named/chroot/etc路径下的 named.conf这个文件,这个是dns的主配置文件

 

Options dns全局选项,会影响整个dns的配置。每行后面用分号来结束。

 

3.2    正向解析

需求:实现正向解析

在主服务器10.10.10.58named.conf配置如下

listen-on port 53 { any; }; 

allow-query     { any; };

 

ZONE “ rhce.cc” IN {

 Typemaster;

 File“rhce.cc.zone”;

}

 

然后再 /var/named/chroot/var/named下创建rhce.cc.zone这个文件

 

$TTL 1D

@   IN  SOA  server.rhce.cc.[email protected](

                                                                                       201111

                           1D  //(每隔1天就要发送一次请求和主dns来同步)

                           1H  //(当从服务器向主服务器发送请求,如果主服务器不回复,每隔1小时重新连接一次)

                           1W   //   (多次连接,一周后还是不成功,就不会再去连接了)

                           3H   //(缓存时间)

)

 

@  IN  NS server.rhce.cc. 

   Server.rhce.cc.  IN A   10.10.10.58

   www.rhce.cc. IN  A   10.10.10.30

   ftp.rhce.cc.  IN   A    10.10.10.31

 

保存配置后退出

注意rhce.cc.zone这个文件的所有组要改成 named,否则启动不成功.到这里,服务器就已经配置完成了。

 

开启防火墙53端口

Iptables  -I INPUT 1 –p tcp –dport 53 –j  ACCEPT

Iptables  -I INPUT 1 –p udp –dport 53 –j  ACCEPT

Service iptables save

 

然后再把dns 设置为自己 文件 /etc/resolv.conf ,添加语句 namesever 127.0.0.1.

 

重启dns服务 service named restart

 

验证  host –l rhce.cc 。查看到域里的服务器对应的ip.

      windows 里的cmd 进行验证  输入 nslookup  。然后  server 192.168.40.128   在输入  www.rhce.cc看看是否会输出我们再rhce.cc.zone里填写的ip 192.168.40.51.即是否和host -l得出的结果一致,一致则dns正向解析服务成功。

 

3.3    反向解析

需求:实现反向解析

 

/var/named/chroot/etc下配置 named.conf

 

Zone “10.10.10.in-addr.arpa”   IN {

                                                   type master;

                                                   file “rhce.cc.arpa”

};

 

 

然后再/var/named/chroot/var/named下创建rhce.cc.arpa这个文件 其中这个文件不用完成手动创建,可以通过拷贝模板来修改,如 该路径下 cp -p named.localhost rhce.cc.arpa.(刚才那个rhce.cc.zone这个文件也是一样可以拷贝修改)

当然,也可以直接用写好的正向解析文件 rhce.cc.zone 作为模板来修改更直接  cp -p  rhce.cc.zone rhce.cc.arpa

 

@    IN SOA  server.rhce.cc.  root(

                                                                                      201111

                           1D 

                           1H 

                           1W     

                           3H  

)

 

@  IN NS server.rhce.cc.

58          IN  PTR  server.rhce.cc.

 30         IN     PTR   www.rhce.cc.

31        IN      PTR   ftp.rhce.cc.

 

重启dns服务 service named restart

 

验证:host10.10.10.30查看是否有输出结果对应www.rhce.cc

 

同时也可用 tcpdump –ieth0 dst 53来抓dns相关包验证

 

反向解析完成。

 

 

3.4    Master/Slave 架构

需求:实现从服务器拷贝主服务器的zone file文件

 

辅助10.10.10.59服务器上Named.conf配置

Zone “rhce.cc” IN {

          Type slave;

           File “slaves/aa.zone”;

          Masters { 10.10.10.58; };

};

 

重启服务器后生效

 

为了防止任何一台服务器都可以从主服务器获得配置,在主服务器的配置文件上添加

All-transfer { 10.10.10.59; }; //允许拷贝信息的机器ip

重启服务器后生效

 

机密安全性:

为了防止有其他机器冒充辅助服务器的ip来获取配置,在主从服务器上通过添加秘钥来保证安全性

Dnssec-keygen  -a HMAC-MD5 –b 128 –n HOST xx

生成一个key.

 

在主服务器10.10.10.58上添加如下的配置

Allow-transfer {  key xx; };//(这里的xx可以随意命名,只要接下来配置一样即可)

 

Server 10.10.10.59 {

Keys { tt; };

};

Key xx {

 Algorithmhmac-md5;

Secret “//生成的加密信息

};

 

在辅助服务器10.10.10.59上添加如下的信息:

Server 10.10.10.58 {

Keys { tt; };

};

Key xx {

 Algorithmhmac-md5;

Secret “//生成的加密信息

};

 

Zone “rhce.cc” IN {

Type slave;

File “slaves/xx.zone”;

Masters { 10.10.10.58; };

};

Zone “10.10.10.in-addr.arpa” IN {

Type slave;

File “slaves/xx.zone.arpa”;

Masters { 10.10.10.58; };

};

 

重启服务器即可生效.

注意,当服务器的时间不同步的时候,会导致复制不成功,需要同步服务器时间,命令:ntpdate time.nist.gov.

 

验证:在辅助的服务器上,/var/named/chroot/var/named/slaves文件夹下如果有生成xx.zonexx.zone.arpa两个配置文件,则配置成功。

 

3.5    视图功能

 

不同的机器查询同一台dns服务器的时候,获得不同的解析ip,如内网访问解析出私有地址,外网访问,解析出公有地址。

 

修改10.10.10.58named.conf上配置,通过acl定义主机,并通过viewmatch相关的视图。

配置如下:

Acl aa { 10.10.10.59; };

Acl bb { 10.10.10.2; };

View “xx”{

Match-clients  { aa; };

Zone “.” IN {

Type hint;

File “name.ca”;

};

Zone “rhce.cc” IN {

Type master;

File “rhce.cc.zone”;

};

};

 

View “xx”{

Match-clients  { bb; };

Zone “.” IN {

Type hint;

File “name.ca”;

};

Zone “rhce.cc” IN {

Type master;

File “rhce.cc.zone1”;

};

};

 

重启服务器生效。

测试:rhce.cc.zone rhce.cc.zone1上的www.rhce.cc对应的ip不同在 10.10.10.59 10.10.10.2上通过host www.rhce.cc.查看是否解析出zonezone1上不同的ip

 

 

3.6    子域授权

10.10.10.58服务器上的rhce.cc.zone文件上 添加子域的关系

 aa.rhce.c IN  NS test.aa.rhce.cc

 test.aa.rhce.cc IN A  10.10.10.59

 

10.10.10.59子域服务器上的配置文件named.conf上添加

Farwards { 10.10.10.58; }; (主服务器上的机器)

 

重启服务器后可生效。

验证:在子域服务器上解析主服务器的文件的配置的主机。

host www.rhce.cc。如果可以得到主服务器的文件的配置上的ip即可。


以上是关于Dns服务搭建文档的主要内容,如果未能解决你的问题,请参考以下文章

centos 6.5 DNS服务器 搭建

0037-如何在Windows Server2008搭建DNS服务并配置泛域名解析

Linux怎么搭建DNS服务器

Centos7搭建DNS服务器

如何搭建DNS服务器?

如何搭建Microsoft的DNS