一、实验配置
主DNS服务器的配置:
echo > /etc/named.conf 将这个配置文件写为空 注意:不能直接删除该配置文件,因为会导致组用户的权限从named变为root导致配置失败;
看一下本来的权限:
编辑配置文件:
[root@Server ~]# cat /etc/named.conf
options {
listen-on port 53 {any;};
directory "/var/named";
};
zone "baidu.com" IN{
file "named.baidu.com";
type master;
};
主配置文件写好了,但是解析文件还没有写好
编辑解析文件
写具体解析到 /var/named/named.ca中去看,这是根域的解析文件
然后到下面这个文件中去查看:
[root@Server named]# vim named.localhost
@后是邮箱地址,"."代表@
编辑此文件
[root@Server named]# cat named.baidu.com
$TTL 1D
baidu.com. IN SOA zs.baidu.com. admin.baidu.com. (20241128 1D 1H 1W 3H)
IN NS zs.baidu.com.
zs IN A 192.168.207.140
haha.baidu.com. IN A 192.168.207.1
HAHAHA.baidu.com. IN A 192.168.207.2
wahaha IN CNAME haha
重启dns服务器
[root@Server named]# systemctl restart named
[root@Server named]# host haha.baidu.com 192.168.207.140
Using domain server:
Name: 192.168.207.140
Address: 192.168.207.140#53
Aliases:
haha.baidu.com has address 192.168.207.1
客户端检测的工具,这些命令都可以
二、知识点
DNS
(
Domain Name System
)是互联网上的一项服务,它作为将域名和
IP
地址相互映射的一个分布式
数据库,能够使人更方便的访问互联网。
DNS
系统使用的是网络的查询,那么自然需要有监听的
port
。
DNS
使用的是
53
端口,
在
/etc/services
(搜索
domain
)这个文件中能看到。通常
DNS
是以
UDP
这个较快速的数据传输协议来查
询的,但是没有查询到完整的信息时,就会再次以
TCP
这个协议来重新查询。所以启动
DNS
时,会同时
启动
TCP
以及
UDP
的
port53
。
(
1
)因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在
因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名
(domain name)
。
“
域
”(domain)
是
名字空间中一个可被管理的划分。
域名只是逻辑概念,并不代表计算机所在的物理地点。域名可分为三大类:
国家顶级域名:采用
ISO3166
的规定。如:
cn
代表中国,
us
代表美国,
uk
代表英国,等等。国家域
名又常记为
ccTLD(country code top-level domains
,
cc
表示国家代码
contry-code)
。
通用顶级域名:最常见的通用顶级域名有
7
个,即:
com(
公司企业
)
,
net(
网络服务机构
)
,
org(
非营
利组织
)
,
int(
国际组织
)
,
gov(
美国的政府部门
)
,
mil(
美国的军事部门
)
。
基础结构域名
(infrastructure domain)
:这种顶级域名只有一个,即
arpa
,用于反向域名解析,因
此称为反向域名。
(
2
)域名服务器的类型划分

根据域名服务器起的作用,可以把域名服务器划分为以下类型:
根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所
有的顶级域名服务器的域名和
IP
地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域
名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服
务器。假定所有的根域名服务器都瘫痪了,那么整个
DNS
系统就无法工作。需要注意的是,在很多
情况下,根域名服务器并不直接把待查询的域名直接解析出
IP
地址,而是告诉本地域名服务器下一
步应当找哪一个顶级域名服务器进行查询。
现如今全球一共投放
13
个根服务器
根服务器主要用来管理互联网的主目录,全世界只有
13
台。
1
个为主根服务器,放置在美国。其余
12
个均为辅根服务器,其中
9
个放置在美国,欧洲
2
个,位于英国和瑞典,亚洲
1
个,位于日本。所
有根服务器均由美国政府授权的互联网域名与号码分配机构
ICANN
统一管理,负责全球互联网域名
根服务
器、域名体系和
IP
地址等的管理。 这
13
台根服务器可以指挥
Firefox
或互联网
Explorer
这样的
Web
浏览器和电子邮件程序控制互联网通信。换句话说
——
攻击整个因特网最有力、最直接,也是最致
命的方法恐怕就是攻击根域名服务器了。
在与现有
IPv4
根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的
“
雪
人计划
”
于
2016
年在美国、日本、印度、俄罗斯、德国、法国等全球
16
个国家完成
25
台
IPv6
(互联
网协议第六版)根服务器架设,事实上形成了
13
台原有根加
25
台
IPv6
根的新格局,为建立多边、民
主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的
4
台,由
1
台主根服务器和
3
台辅
根服务器组成,打破了中国过去没有根服务器的困境。
顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
权限域名服务器:负责一个
“
区
”
的域名服务器。
本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当
一个主机发出
DNS
查询请求时,这个查询请求报文就发送给本地域名服务器。
主从
DNS
服务器:为了提高域名服务器的可靠性,
DNS
域名服务器都把数据复制到几个域名服务器
来保存,其中的一个就是主
DNS
服务器(
Master name server
),负责解析至少一个域。其他的
是辅助(从)
DNS
服务器(
Slave name server
):负责解析至少一个域,是主
DNS
服务器的辅
助。当主域名服务器出故障时,辅助域名服务器可以保证
DNS
的查询工作不会中断。主域名服务器
定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据
的一致性。
缓存
DNS
服务器:不负责解析域,只是缓存域名解析的结果。
2、DNS域名解析的过程
DNS 解析方式正向解析:将 FQDN----->IP反向解析:将 IP----->FQDN
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 ,该地址是全球通用的,相对来说,更适合国外以及访问国外1 、在浏览器中输入 www . qq .com 域名,操作系统会先检查自己本地的 hosts 文件是否有这个网址映射关系,如果有,就先调用这个 IP 地址映射,完成域名解析。2 、如果 hosts 里没有这个域名的映射,则查找本地 DNS 解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。3 、如果 hosts 与本地 DNS 解析器缓存都没有相应的网址映射关系,首先会找 TCP/IP 参数中设置的首选 DNS 服务器,在此我们叫它本地 DNS 服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。4 、如果要查询的域名,不由本地 DNS 服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个 IP 地址映射,完成域名解析,此解析不具有权威性。网站的用户使用。
3、DNS服务器配置
提供DNS服务的软件叫bind,服务名是named。
[root@localhost ~]# yum install bind -y
[root@localhost ~]# rpm -ql bind
/etc/named.conf # bind主配置文件
/var/named/slaves # 从dns服务器文件夹
[root@localhost ~]# vim /etc/named.conf
options {
#定义监听端口,如果所有地址都监听,则只写端口
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
#定义数据文件目录
directory "/var/named";
#只允许本地主机进行查询
allow-query { localhost; };
};
#定义区域
zone "." IN {
type hint;
file "named.ca";
};
实验
1
:配置
DNS
正向解析
[root@localhost ~]# vim /etc/named.conf主配置文件
options {
#监听端口为53,大括号内数据内容可以为any
listen-on port 53 { 172.24.8.128; };
directory "/var/named";
};
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};
正向解析文件资源记录(
Resource Record
,
RR
)
,
常见的正解文件
RR
相关信息
:
SOA主要是与区域有关,所以domain要写域名。而SOA后面会接七个参数,这七个参数的意义如下:
Master DNS
服务器主机名:这个区域主要是哪台
DNS
作为
Master
的意思。
管理员的
Email
,发生问题可以联系这个管理员。由于
@
在数据库文件中有特殊含义,所以将用
“.”
代替
@
序号(
Serial
),这个序号代表的是这个数数据库文件的新旧,序号越大代表越新。所以当你更改
了数据库内容时,需要将这个数值放大。
更新频率(
Refresh
)定义
slave
多久向
Master
要求数据更新。
失败重新尝试时间(
Retry
),如果
Slave
无法对
Master
实现连接,那么在多长时间内,
Slave
会尝
试重新连接到
Master
。
失效时间(
Expire
),如果一直尝试失败,持续连接到达这个设置值时限,那么
Slave
将不再继续
尝试连接,并且尝试删除这份下载的
zone file
信息。
缓存时间(
Minumum TTL
),如果这个数据库
zone file
中,每条记录都没有写到
TTL
缓存时间的
话,那么就以这个
SOA
的设置值为主。
ttl
的意思是当这笔记录被其他
DNS
服务器查询到后,这个记
录会在对方
DNS
服务器的缓存中,保持多久时间。如果写了
$TTL
,则以该值为准。
时间单位:
M
(分钟),
H
(小时),
D
(天),
W
(周),默认是秒
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 172.24.8.128
mail IN A 172.24.8.128
www IN A 172.24.8.128
ftp IN CNAME www
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl disable firewalld --now
[root@webserver ~]# setenforce 0
#客户端测试
host [-a] FQDN [server]
nslookup [FQDN] [server]
dig [options] FQDN [@server]
options:+trace代表从.开始追踪;-t type查询的数据主要有MX、NS、SOA、A等类型;-x查
询反解信
息
[root@localhost ~]# host www.baidu.com 172.24.8.128
[root@localhost ~]# nslookup www.baidu.com 172.24.8.128
[root@localhost ~]# dig -t A www.baidu.com @172.24.8.128
实验
2
:反向解析
[root@localhost ~]# vim /etc/named.conf
zone "8.24.172.in-addr.arpa" IN {
type master;
file "named.172.24.8";
};
#反向区域文件
[root@localhost ~]# vim /var/named/named.172.24.8
$TTL 1D
@ IN SOA ns.baidu.com. admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com.
128 IN PTR ns.baidu.com.
128 IN PTR www.baidu.com.
128 IN PTR mail.baidu.com.
128 IN PTR ftp.baidu.com.
#反解需要注意:主机名尽量使用完整的FQDN,即要写上“.
#客户端测试
[root@localhost ~]# host 172.24.8.128 172.24.8.128
[root@localhost ~]# nslookup 172.24.8.128 172.24.8.128
[root@localhost ~]# dig -x 172.24.8.128 @172.24.8.128
实验
3
:主从
DNS
服务器
将一个区域文件复制到多个服务器上的过程叫做区域传送。将主服务器上的信息复制到辅助服务器上来
实现。
(
1
)完全区域传送:复制整个区域文件
#主DNS服务器的配置【主dns服务器的ip地址为172.24.8.128】
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 172.24.8.128; };
directory "/var/named";
allow-transfer { 172.24.8.129; };
};
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com.
IN NS slave.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 172.24.8.128
slave IN A 172.24.8.129
mail IN A 172.24.8.128
www IN A 172.24.8.128
ftp IN CNAME www
[root@localhost ~]# systemct restart named
#从DNS服务器的配置【从dns服务器的ip地址为172.24.8.129】
[root@localhost ~]# yum install bind -y
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 172.24.8.128; };
directory "/var/named";
};
zone "baidu.com" IN {
type slave;
file "slaves/named.baidu.com";
masters {172.24.8.128;};
};
[root@localhost ~]# systemctl restart named
#测试
[root@localhost ~]# host www.baidu.com 172.24.8.129
(
2
)增量区域传送:仅复制区域里变化的文件
#修改主服务器的区域配置文件,序号比之前的序号大【注:区域文件里面必须要写从服务器的NS和A记
录】
#主DNS服务器的配置【主dns服务器的ip地址为172.24.8.128】
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 1 1D 1H 1W 3H )
IN NS ns.baidu.com.
IN NS slave.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 172.24.8.128
slave IN A 172.24.8.129
mail IN A 172.24.8.128
www IN A 172.24.8.128
ftp IN CNAME www
www1 IN CNAME www
[root@localhost ~]# systemct restart named