DNS配置

DNS工作原理


DNS配置_第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服务器再返回给客户机。

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的缩写,记录的数据就是反解到主机名

Master/Slave

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

Slave:同步master的数据,master和slave必须互相搭配

软件安装

准备两台centOS6.5的linux机器

Ip 10.10.10.58 和 10.10.10.59

10.10.10.58为主服务器

10.10.10.59为从服务器

分别安装 bind 和 bind-chroot

命令:yum install bind 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/

配置文件

注意事项

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

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

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

正向解析

需求:实现正向解析

在主服务器 10.10.10.58上named.conf添加如下配置:

listen-on port 53 { any; };

allow-query    { any; };

ZONE “ rhce.cc” IN {

Type master;

File “rhce.cc.zone”;

};

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

$TTL  1D

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

201111 //Serial供Slave DNS判断是否从Master DNS获取新数据

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正向解析服务成功。

反向解析

需求:实现反向解析

/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

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

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

反向解析完成。

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 {

Algorithm hmac-md5;

Secret “//生成的加密信息”;

};

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

Server 10.10.10.58 {

Keys { tt; };

};

Key xx {

Algorithm hmac-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.zone和xx.zone.arpa两个配置文件,则配置成功。

视图功能

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

修改10.10.10.58的named.conf上配置,通过acl定义主机,并通过view来match相关的视图。 配置如下:

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.查看是否解析出zone和zone1上不同的ip。

子域授权

在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配置)