详解dns

dns

权威名称服务器
存储并提供某区域(整个DNS域或DNS域的一部分)的实际数据
权威名称服务器的类型包括:
Master:包含原始区域数据。有时称作‘主要‘名称服务器’
Slave:备份服务器,通过区域传送从Mster服务器获得的区域数据的副本,称作’次要‘名称服务器
非权威/递归名称服务器
客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括仅缓存名称服务器:仅用于查找,对于非重要数据之外的任何内容都不具有权威性

实验环境:
重置一个虚拟机,让虚拟机可以上网

高速缓存dns

在访问网站的时候,我们的客户端主机每次都要去访问114或者更高级别的 根 dns,在一个内网中有很多主机,但输入只有一条,如果每个主机访问都通过自己去连接的话速度太满,且太浪费资源,那么我们将这个局域网中的一个主机,与外网相连接,其他的内网主机要访问外网的时候,都通过这台主机去连接,比如有人去访问baidu,com,那么这台主机先去外网的dns去获取百度的ip地址,然后将获得的信息返回,访问百度的这台主机便实现了目的,又有第二台主机要访问百度,那么,这台公共主机便不会再去外网询问,而是将缓存信息中的百度直接返回给这第二太主机,这样就更加快捷,而这台主机便叫做 高速缓存DNS

配置desktop虚拟机,使它成为一个高速缓存dns
1.在desktop虚拟机安装提供高速缓存dns服务的软件bind

yum install bind -y

2.开启软件
systemctl start named
开启时可能会卡住,因为虚拟机reset重置的,因为他是新的,没法加密,这时在desktop虚拟机敲击键盘或移动鼠标,就会解决

3.管理火墙

firewall-cmd --list-all
firewall-cmd --permanent --add-server=dns   ##添加dns服务
firewall-cmd --reload

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.打开另一个虚拟机server,将dns设置为172.25.254.113 desktop的ip
Vim /etc/resolv.conf

5.测试
dig www.baidu.com
会显示无法链接
在这里插入图片描述
解决方案:
在desktop虚拟机
netstat -antulupe |grep named 查看named服务的接口
可以看到接口没有对其他地址开启
在这里插入图片描述
配置named的配置文件
在这里插入图片描述
将13行 53接口对哪些用户开启 改为 any
在这里插入图片描述
Systemctl restart named

重启named,再进行dig操作发现可以连接但是被拒绝
在这里插入图片描述
解决方案;
将named的配置文件第17行,允许的用户改为any,允许其他用户登陆
在这里插入图片描述
因为是内网,所以我们将安全监测也关掉
在这里插入图片描述
测试
dig www.baidu.com

在这里插入图片描述
在这里插入图片描述
再将主机的/etc/resolve.conf也改为desktop的ip,让主机也通过desktop高速缓存dns

dig www.baidu.com
发现速度比server虚拟机快了很多,但还是很慢

解决方案

在18行添加 forwarders {114.114.114.114;}; ##让destop不去’ . '访问,而去中国的14去解析地址,
在这里插入图片描述
再次测试;
用server去 dig www.taobao.com
在这里插入图片描述
在这里插入图片描述
再去用主机 dig www.taobao.com
在这里插入图片描述
在这里插入图片描述
测试成功,目的达成,

权威dns配置

打开dns的配置文件
vim /etc/named.conf
在第57行可以看到它会读取/etc/named.rfc1912.zones文件
为了防止主配置文件过长,难读
所以我们在这个文件里进行配置
在这里插入图片描述

vim /etc/named.rfc1912.zones 
在命令模式下第19行y6y  ##复制六行
p  把它复制到25行
修改复制的6行
修改为:
 25  zone "westos.com" IN {
 26         type master;
 27         file "westos.com.zone";
 28         allow-update { none; };
 29 };
	##在westos.com域内的地址,去查看westos.com.zone这个文件

在这里插入图片描述
在/var/named目录下

cp -p named.localhost westos.com.zone
切记 -p
然后去编辑这个文件
 1 $TTL 1D
  2 @       IN SOA  dns.westos.com. lee.westos.com. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      dns.westos.com.
  9 dns     A       172.25.254.113
 10 www     A       172.25.254.66

在这里插入图片描述
dns.westos.com. lee.westos.com. 谁为这个负责
@ 文件内如果不是以‘.’结尾,会在后面自动补齐 为westos.com.结尾
上面的www不是以.结尾的所以它会补齐为 www.westos.com

cname

编辑westos.com.zone

  1 $TTL 1D
  2 @       IN SOA  dns.westos.com. lee.westos.com. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      dns.westos.com.
  9 dns     A       172.25.254.113
 10 bbs     A       172.25.254.66
 11 www     CNAME   node1.westos.com.
 12 node1   A       172.25.254.111
 13 node1   A       172.25.254.222

cname是规范域名,将外部域名转化成内部域名,然后作解析
在这里插入图片描述
在这里插入图片描述

ptr 反向域名转换

将ip地址转化为域名

先配置vim /etc/named.rfc1912.zones
将37-41复制,粘贴在后面,然后编辑

 43 zone "254.25.172.in-addr.arpa" IN {
 44         type master;
 45         file "172.25.254.ptr";
46         allow-update { none; };
47 };

在这里插入图片描述
再编辑172.25.254.ptr
在/var/named目录下
cp -p named.loopback 172.25.254.ptr
编辑文件172.25.254.ptr

 1 $TTL 1D
 2 @       IN SOA  dns.westos.com. lee.westos.com. (
 3                                         0       ; serial
 4                                         1D      ; refresh
5                                         1H      ; retry
6                                         1W      ; expire
7                                         3H )    ; minimum
 8         NS      dns.westos.com.
9 dns     A       172.25.254.113
10 66      PTR     hello.westos.com.

在这里插入图片描述
做完后重启named

ptr测试 dig -x ip
在这里插入图片描述

MX

邮件交换器

vim westos.com.zone

 1 $TTL 1D
  2 @       IN SOA  dns.westos.com. lee.westos.com. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      dns.westos.com.
9 dns     A       172.25.254.113
10 bbs     A       172.25.254.66
11 www     CNAME   node1.westos.com.
12 node1   A       172.25.254.111
13 node1   A       172.25.254.222
14 westos.com.     MX 1 172.25.254.113.

在这里插入图片描述
然后在客户端

[root@localhost ~]# > /var/log/maillog 
[root@localhost ~]# mail [email protected]
Subject: hahah
hahaha
hahhaha

. EOT

输入 . 后回车 邮件发送

mailq 查看

[root@localhost ~]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
D5CFF17E85C      453 Sat May 11 02:55:58  [email protected]
          (connect to 172.25.254.113[172.25.254.113]:25: No route to host)
                                     [email protected]

-- 0 Kbytes in 1 Request.

在这里插入图片描述
双向解析
内网在访问dns是得到内网的网段,外网解析地址时访问得到外网网段
实验思路:
在内网网段的ip来访问时,读取属于内网的配置文件,为它解析成内网的ip
在外网网段的ip来访问时,读取属于外网的配置文件,为它解析成外网的ip
使内外分开
在此时实验中我们将与dns的ip处于同一网段的看为内网,为内网解析成172网段
外网解析为1网段
操作:(在实验中为我们为了方便,为本机解析一套地址,为接入的主机解析一套ip)
在/var/named下,
1.Vim /etc/named.conf
编辑named主配置文件
在这里插入图片描述
2

	cp -p /etc/named.rfc.1912.zones /etc/named.rfc1912.inter.zones

编辑etc/named.rfc1912.inter.zones文件
在这里插入图片描述

	cp -p westos.com.zone westos.inter.com.zone

编辑westos.inter.com.zone文件
将172.25.254. 换成1.1.1.
在这里插入图片描述
4.测试
用dns本机作(desktop)测试,dig node1.westos.com
在这里插入图片描述
用server虚拟机测试,dig node1.westos.com
在这里插入图片描述

辅助dns
当访问量过大时,一台dns服务器显然不能满足要求,就需要辅助dns来替主dns分担

实验步骤
1.在辅助dns服务器上配置好dns
(1)下载bind软件
修改主配置文件

options {
 13         listen-on port 53 { any; };
 14         listen-on-v6 port 53 { ::1; };
 15         directory       "/var/named";
 16         dump-file       "/var/named/data/cache_dump.db";
 17         statistics-file "/var/named/data/named_stats.txt";
 18         memstatistics-file "/var/named/data/named_mem_stats.txt";
 19         allow-query     { any; };

34         dnssec-validation no;

在这里插入图片描述
在这里插入图片描述

vim /etc/named.rfc1912.zones

 zone "westos.com" IN {
    type slave;
    file "slaves/westos.com.zone";
    masters {172.25.254.113;};
    allow-update { none; };
};

在这里插入图片描述
在这里插入图片描述
2.在dns服务器主配置文件将做的双向解析的操作注释掉,并复原
(1)在/etc/named.rfc.1912.zones
在这里插入图片描述

测试
在主dns和辅助dns dig bbs.westos.com
功能可以实现,那么能否完成同步呢
在这里插入图片描述
在这里插入图片描述

修改在测试
在这里插入图片描述

在主dns修改
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到并没有完成更新
修改srial值便可以更新,他的值增大才生效,最大为10位
在这里插入图片描述
在这里插入图片描述

远程更新
在desktop,dns服务器

1. cp -p westos.com.zone /opt/  
2. vim /etc/named.rfc1912.zones

 25 zone "westos.com" IN {
 26         type master;
 27         file "westos.com.zone";
 28         also-notify { 172.25.254.213; };
 29         allow-update { 172.25.254.113; };
 30 };

做更改,盖好后重启named
清空日志

> /var/log/messages

然后

[root@dns named]# nsupdate
> server 172.25.254.113		
> update add test.westos.com 86400 A 172.25.254.222
> send
update failed: SERVFAIL
> quit

失败,查看日志,看是什么问题

[root@dns named]# cat /var/log/messages
May 11 05:22:25 localhost named[4349]: client 172.25.254.113#53389: updating zone 'westos.com/IN': adding an RR at 				'test.westos.com' A
May 11 05:22:25 localhost named[4349]: westos.com.zone.jnl: create: permission denied
May 11 05:22:25 localhost named[4349]: client 172.25.254.113#53389: updating zone 'westos.com/IN': error: journal 	open failed: unexpected error

在这里插入图片描述
这个文件需要建立文件,但他没有权限,需要给个权限

[root@dns named]# chmod 770 /var/named
[root@dns named]# nsupdate
> server 172.25.254.113
> update add test.westos.com 86400 A 172.25.254.222
> send
> quit

测试

在这里插入图片描述
在这里插入图片描述

通过密钥来更新key
上面的实验我们是通过ip来更新的,这样十分的不安全,那我们可以通过下面介绍的这种方法去更新
1.删除之前的ip更新
在/var/named目录下

 rm -fr westos.con.zone*

然后将我们在/opt目录下的备份复制一份回来
2.生成自己的加密文件

cp -p /etc/rndc.key /etc/westos.key

在这里插入图片描述
3.在/mnt/目录下生成钥匙

[root@dns-server mnt]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
Kwestos.+157+56402

在这里插入图片描述
4.编辑加密文件
在这里插入图片描述
在这里插入图片描述
5.编辑主配置文件,使能读取钥匙文件
在这里插入图片描述
6.

vim /etc/named.rfc1912.zones

在这里插入图片描述

测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ddns

思路:每次域名的ip地址发生改变,去手动修改文件显然是不现实的,那么如何在它ip地址发生改变后,自动的告诉dns域名和ip地址的对应关系呢,显然由dhcp去告知dns,这样在每次的域名好更改后,dhcp都将域名和IP地址的对应关系告诉dns

环境:做好了key
1。将之前做过的更新生成的文件删除,
2.将westos。com。zon从/opt复制过来,记得-p
3。服务端下载dhcp,修改配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.修改客户端主机名为test.westos.com
4.将客户端网络设置为dhcp,重启网络获得dhcpIP地址
5.测试:dig test.westos.com,查看它的ip和动态获得的ip是否一致

猜你喜欢

转载自blog.csdn.net/zhaoliang_Guo/article/details/90259891
DNS