文章目录
DNS概述和DNS服务器部署(正向解析)
一、简介
DNS是Domain Name System(域名系统)的简称,DNS可以为计算机、服务以及接入互联网或局域网的任何资源提供分层的域名解析功能。DNS提供了很多功能,其中最主要的功能就是进行域名与IP之间的解析。在互联网中标记唯一一台计算机使用的是IP地址,通过合法的IP地址,我们可以与全世界任何一台主机进行通信。然而在当今计算机如此普及的情况下,以人类现有的智慧与记忆力很难将大量的IP地址背诵下来,这时使用域名系统就可以将难以记忆的数字IP地址与容易记忆的域名建议映射关系,用户通过输入域名,计算机会寻找指定的DNS服务器,请求服务器帮助解析该域名对应的IP地址,成功解析后,将获得该域名对应的真实IP地址,然后使用该IP地址与对方通信。
二、域名
2.1 域名层次结构
DNS采用的是一种层次的树状结构,这个树状结构称为DNS域名空间,树状结构最顶层称为根域,用 “.” 表示,相应服务器称为根服务器,整个域名空间解析权都归跟服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将 com 域 的解析全委派给 com 域服务器,以后但凡跟服务器收到以 com 结尾的域名解析请求,都会转发给com 域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。
2.2 查询方式
DNS查询有两种查询方式,一个是递归查询,一个是迭代查询,根据DNS的域名解析流程使用不同的方式。
迭代查询:
转发器按照域名级别高低查询域名服务器,以qq.com.为例,先后查询.根服务器、.com域服务器、qq.com域服务器,最终得到授权应答。这个查询过程即迭代查询。
递归查询:
转发器将相应的查询结果返回至本地DNS服务器,以qq.com.本地DNS服务器进行查询,将查询结果返回至主机,最终得出qq.com.的ns记录。
2.3 DNS域名解析过程
三 、DNS服务器类型
-
主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
-
从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
-
缓存域名服务器:只提供域名解析结果的缓存功能 目的在于提高查询速度和效率,但没有域名数据库。
它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。 -
转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
四、DNS服务器部署
4.1、BIND服务
BIND服务器端程序
主要执行程序:/usr/sbin/named
默认监听端口:53
主配置文件: /etc/named.conf
区域配置文件:/etc/named.rfc1912.zones
保存DNS解析记录的数据文件位于:/var/named/
4.2、DNS服务器正向解析配置
1、安装BIND软件
yum -y install BIND
2、查看需要修改的配置文件所在路径
rpm -qc BIND //查询BIND服务配置文件
/etc/named.conf //主配置文件
/etc/named.rfc1912.zones //区域配置文件
/etc/named/named.localhost //区域数据配置文件
3、配置主配置文件
vim /etc/named.conf
options {
listen-on-v6 poet 53 { 192.168.10.10; }; //监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
# listen-on-v6 port 53 { : :1; };
directory "/var/named"; //区域数据文件的默认存放位置
dump- file "/var/ named/data/cache_ dump . db"; //域名缓存数据库文件的位置
statistics-file "/var/named/data/named stats.txt"; //状态统计文件的位置
memstatistics-file "/var/named/data/named_ mem_ stats. txt"; //内存统计文件的位置
allow-query
{ any; }; //允许使用本DNS解析服务的网段,也可用any代表所有
4、配置区域配置文件
vim /etc/named.rfc1912.zones
zone "shim. com" IN { //正向解析"shim.com"区域
type master; //类型为主区域
file "shim. com. zone"; //指定区域数据文件为shim. com. zone
allow-update { none; }; //关闭更新
5、配置区域数据文件(/var/named/shi.com.zone,需要新建文件,可以通过复制named.localhost文件为模板)
cd /var/named/
cp -p named.localhost shim.com.zone //保留源文件的权限和属主的属性复制
vim /var/named/shim.com.zone
$TTL 1D //设置缓存解析有效时间
@ IN SOA shim.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS shim.com //记录当前区域的DNS服务器的名称
A 192.168.10.10 //记录主机的IP地址
IN MX 10 mail.shim.com //MX为邮件记录,数值代表优先级,越大越优
www IN A 198.168.10.10 // WWW.shim.com映射的IP地址
ftp IN A 198.168.10.10
mail IN A 192.168.10.10
* IN A 192.168.10.10 //泛域名解析,*代表任意主机名
6、启动DNS服务并进行测试验证
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start named //启动named服务
[root@localhost ~]# systemctl status named //查看服务状态
named-checkconf -z /etc/named.conf //检查配置文件
测试
echo "nameserver 192.168.10.10" > /etc/resolv.conf //添加DNS服务器地址
cat /etc/resolv.conf
nslookup mail.shim.com //解析mail.shim.com