一、实验要求
配置Dns主从服务器,能够实现正常的正反向解析
二、知识点
1、DNS简介
DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询。所以启动DNS时,会同时启动TCP以及UDP的port53。
2、DNS域名解析的过程
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域的服务器收到请求后,如果自己无法解析,它就会找一个管理qq.com的DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www . qq .com主机。 6、如果用的是转发模式,本地DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。找到最后把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。 注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间使用的交互查询就是迭代查询。 114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。 8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。
提供DNS服务的软件叫bind,服务名是named。
(正向解析)资源记录文件
主机名 TTL INTER 资源记录类型 数据
(反向解析)资源记录文件
ip TTL INTER 资源记录类型 数据
资源记录类型
A 通过域名能够查询到对应ipv4
AAAA 通过域名能够查询到对应ipv6
CNAME 别名资源记录www.baidu.com wwww.baidu,com
PTR 指针记录lpv4/ipv6 查询到一个域名
NS dns解析记录类型(标记本地dns服务器的主机名)
MX 邮件解析记录类型(标记邮件服务器的主机名)
SoA 起始授权记录(主从服同步masterdns TTL INTER 资源记录类型数据 邮箱地址
(版本、 检查时间 、重试时间 、失效时间 TTL)
时间单位:M(分钟),H(小时),D(天),W(周),默认是秒
Linux搭建DNS主从服务器
需求:
利用两台linux主机,配置dns主从服务器,能够实现正常的正反向解析配置思路:
配置文件:
/etc/named.conf --> 主配置文件
/etc/named.rfc1912.zones --> 域配置文件(此配置文件会默认加载到主配置文件)
/var/named/ --> 所有的域名解析文件所在目录
主服务器:
在主服务器上对主配置文件配置对本服务器进行监听IP地址和端口号53,允许至少‘从服务器’主机可以访问,允许对从服务器的IP进行“传送数据”
对主服务器的域配置文件,进行相应域的配置
在 /var/named/ 文件下创建域名解析文件,并对其进行相应编写
从服务器:
在主配置文件对本服务器进行监听IP地址和端口号53,允许相应主机进行访问,
对域配置文件,进行相应域的配置
重启DNS服务后,观察 /var/named/slaves/ 文件目录下的变化
三、实验步骤
下载并安装服务
[root@server ~]# yum install bind -y
配置DNS正向解析
[root@server ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.1.14; };
directory "/var/named";
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};
[root@server ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ baidu.com (
0
3M
3M
3M
3M
)
IN NS dns.baidu.com.
dns IN A 192.168.1.14
mail IN A 192.168.1.200
www IN A 192.168.1.100
a IN A 192.168.1.50
aaa IN CNAME a
~
重启服务
[root@server ~]# systemctl restart named
测试
[root@server ~]# nslookup
> server 192.168.1.14
Default server: 192.168.1.14
Address: 192.168.1.14#53
> www.baidu.com
Server: 192.168.1.14
Address: 192.168.1.14#53
> aaa.baidu.com
Server: 192.168.1.14
Address: 192.168.1.14#53
aaa.baidu.com canonical name = a.baidu.com.
Name: a.baidu.com
Address: 192.168.1.50
配置DNS反向解析(主服务器192.168.1.14配置)
vim /etc/named.conf
下边是反向文件的配置
vim /etc/named.conf
[root@server ~]# vim /var/named/named.baidu.arpa
$TTL 1D
@ IN SOA @ baidu.com (
0
3M
3M
3M
3M
)
IN NS dns.baidu.com.
14 IN PTR ns.baidu.com.
200 IN PTR mail.baidu.com.
100 IN PTR www.baidu.com.
50 IN PTR a.baidu.com.
aaa IN CNAME a
~
[root@server ~]# systemctl restart named
从服务器配置(192.168.1.13配置)
vim /etc/named.conf
[root@server ~]# systemctl restart named
测试(192.168.1.13)
[root@client ~]# nslookup
> server 192.168.1.14
Default server: 192.168.1.14
Address: 192.168.1.14#53
> aaa.baidu.com #正向解析
Server: 192.168.1.14
Address: 192.168.1.14#53
aaa.baidu.com canonical name = a.baidu.com.
Name: a.baidu.com
Address: 192.168.1.50
> 192.168.1.200 #反向解析
200.1.168.192.in-addr.arpa name = mail.baidu.com.