一、DNS服务简介 DNS(Domain Name System,域名系统), 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。 一个典型的域名由顶级域名、二级域名和主机名构成。例如www.zzz.com,顶级域名是com,二级域名是zzz,主机名是www。

二、域名解析过程

1、如果本地的dns解析器有缓存直接返回;
2、查找本地hosts文件,根据对应的映射返回IP;
3、指定DNS服务器,DNS服务器有缓存直接返回;
4、解析域名,将请求交给根域DNS(如果没开启转发,全球13个根域DNS);
5、根域告诉DNS服务器.com的DNS地址;
6、DNS服务器查找.com解析www.baidu.com;
7、.com域DNS告诉DNS服务器baidu.com的DNS;
8、DNS服务器查找baidu.com DNS;
9、baidu.com 返回www.baidu.com的IP地址给DNS服务器;
10、DNS服务器将DNS响应报文返回给用户。

三、DNS解析记录分类

1、SOA:描述域管理NS,主从DNS服务器同步参数。
2、NS:域DNS服务器FQDN
3、A:域名到IP的映射
4、MX:域邮件服务器
5、CNAME:域名别名
6、PTR:IP到域名的映射

DNS软件介绍

1、软件名称:BIND
2、监听端口:udp53(解析)、tcp53(区域传送)
3、相关文件:
											/etc/named.conf:配置文件
											/etc/named.rfc1912.zones:定义正解、反解区域
											/var/named:存放DNS数据的默认目录
											/var/named/data/named.run:DNS的日志文件

四、DNS解析的工具

1、nslookup
2、host
3、dig

五、DNS安装过程

[root@www ~]# yum insatll bind bind-chroot bind-utils -y  //centos
[root@www ~]# apt-get install bind9  //ubuntu
配置主配置文件:
[root@www ~]# vim /etc/named.conf
.........
listen-on port 53 { any; };
allow-query     { any; };
[root@www ~]# service named start  //启动named服务
验证服务是否正常启动
[root@www ~]# ps -aux| grep named
[root@www ~]# lsof -i:53

六、DNS的正向解析配置

假设要解析一个域test.com
[root@www ~]# vim /etc/named.rfc1912.zones
.......
zone "test.com" IN {
		type master;
		file "test.com.zone";
};
配置对应的A记录:
[root@www ~]# cp /var/named/named.localhost  /var/named/test.com.zone
[root@www ~]# chown root.named /var/named/test.com.zone
[root@www ~]# vim /var/named/test.com.zone
$TTL 1D
@         IN       SOA       test.com.     admin.test.com.  (200 1H 15M 1W 1D )
@         IN       NS         www.test.com.
www     IN       A           10.50.63.185
[root@www ~]# service named restart  //重启named服务
[root@www ~]# dig @localhost www.test.com   //dig测试DNS是否正常解析

七、DNS的反向解析配置

编辑/etc/named.rfc1912.zones
[root@www ~]# vim /etc/namd.rfc1912.zones
.........
zone "63.50.10.in-addr.arpa" IN {     //注意命名规则,IP:10.50.63.0/24--->60.50.10.in-addr.arpa
		type master;
		file "10.50.63.zone";
		allow-update { none };
};
编辑对应的PTR记录
$TTL 1D
@         IN       SOA        test.com.     admin.test.com.  (200 1H 15M 1W 1D )
@         IN       NS           www.test.com.
185       IN       PTR        www.test.com   //第一列的数字为IP的末位
[root@www ~]# service named restart   //重启named服务
[root@www ~]# dig @localhost -x 10.50.63.185  //验证DNS反解是否正常

八、配置DNS实现负载均衡 将DNS中配置的一个域名对应多个IP时,DNS将会返回客户端不同的IP,这样就会达到负载均衡的效果。

$TTL 1D
@         IN      SOA       test.com.     admin.test.com.  (200 1H 15M 1W 1D )
@         IN      NS         dns.test.com
www     IN     A            10.50.63.185
www     IN     A            10.50.63.186
www     IN     A            10.50.63.187
[root@www ~]# service named restart
[root@www ~]# dig @localhost www.test.com

九、配置纯缓存的DNS服务 纯缓存的DNS服务器就是本身并不维护zone文件,只是简单地把DNS请求转发给指定的DNS服务器,然后把结果返回给客户端同时把该结果记录在系统缓存中。等下次相同的请求,直接将该记录返回给客户端。

[root@www ~]# cat /etc/named.conf
options{
		..........
		forward only;
		forwarders {
				223.5.5.5;
				223.6.6.6;
				8.8.8.8;
				8.8.4.4;
		};
		...........
};
[root@www ~]# dig @localhost www.baidu.com   //dig测试

十、主从DNS搭建 优点: 提供冗余,避免单点故障; 均衡负载查询需求,提高系统可用性;

主服务器(10.50.63.183)配置:/etc/named.rfc1912.zones
zone "test.com" IN {
		type master;
		file "test.com.zone";
		allow-update { none; };
		allow-transfer { 10.50.82.44; };
};
zone "63.50.10.in-addr.arpa" IN {
		type master;
		file "10.50.63.zone";
		allow-update { none };
		allow-transfer { 10.50.82.44; };
};

从服务器(10.50.82.44)配置:
zone "test.com" IN {
		type slave;
		file "slaves/test.com.zone";
		masters { 10.50.63.185; };
};
zone "63.50.10.in-addr.arpa" IN {
		type slave;
		file "slaves/10.50.63.zone";
		masters { 10.50.63.185; };
};
主从DNS服务器重启DNS服务:service named restart
在从服务器上查看解析文件是否同步
[root@www ~]# ll /var/named/slaves/
[root@www ~]# dig @localhost -x 10.50.63.185