高速缓存DNS

文章目录

    • DNS
      • 1. 什么是DNS
      • 2.DNS的分类
    • 一.高速缓存DNS的部署
      • 1.什么是高速缓存DNS
      • 2.为什么要部署高速缓存DNS
      • 3.实验步骤
    • 二.正向解析
    • 三.轮询式域名解析
    • 四.MX邮件交换记录
    • 五.反向解析
    • 六.多向解析
    • 七.DNS集群
    • 八.远程更新DNS
      • 1.基于IP的更新
      • 2.基于密钥的更新
    • 九.动态域名解析DDNS

DNS

1. 什么是DNS

  域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

2.DNS的分类

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

一.高速缓存DNS的部署

1.什么是高速缓存DNS

  如果某台DNS服务器只负责查询数据,将曾经查到的数据往高速缓存中保存一份,并响应DNS工作站的查询请求,则此DNS服务器被称为高速缓存名字服务(Cache-Only Name Server)。
  高速缓存名字服务器不负责管理任何的区域(非权威DNS),它只将曾经查询到的数据复制一份,以便下次DNS工作站查询相同数据时,能够快速地从高速缓存中访问到该数据

2.为什么要部署高速缓存DNS

  如果一个企业内网里面的每一台主机要访问外网,都需要114.114.114.114这个权威dns进行域名解析。每台主机之间互不关联,这大大浪费了带宽资源,且解析地址的效率很低
  但如果把内网其中的一台服务器搭建成高速缓存DNS,其他主机不再需要问114.114.114.114,直接问高速缓存dns服务器即可。这样只需一台主机进行域名解析,就可共享给内网所有的主机。不仅节省带宽资源,且因为数据存放在高速缓存中,高速缓存DNS服务器第一次解析完成后,内网解析地址的速度也会大大提高。

3.实验步骤

1.部署环境
将一台虚拟机作为高速缓存DNS服务器,首先确保其能连接外网:

vim /etc/sysconfig/network-scripts/ifcfg-eth0  
GATEWAY=172.25.70.250   ###修改虚拟机网关为真机IP

vim /etc/resolv.conf
nameserver 114.114.114.114   ###添加虚拟机DNS

在这里插入图片描述
2.高速缓存DNS服务器安装bind,并开启服务
BIND是最广泛使用的开源名称服务器
在RHEL中,通过bind软件包提供
防火墙开启端口 53/TCP 和 53/UDP
BIND 的主配置文件是 /etc/named.conf
/var/named 目录包含名称服务器所使用的其他数据文件

yum install bind -y  ###安装bind软件包
systemctl start named  ###开启服务
firewall-cmd --permanent --add-service=dns ###火墙允许dns服务
firewall-cmd --reload ###重新加载火墙

高速缓存DNS_第1张图片
3.客户主机访问测试

vim /etc/resolv.conf 
nameserver 172.25.70.251 ###客户主机修改DNS为服务端IP

dig www.baidu.com  ###测试访问外网

在dig外网时,可能会有以下几种情况:

信息显示 可能的原因
connection timed out; no servers could be reached 无法访问DNS服务器主机
REFUSED DNS服务器拒绝回答(也许是出于访问控制原因)
SERVFAIL DNS服务器停机或DNSSEC响应验证失败
NXDOMAIN DNS服务器提示提示不存在这样的内容
NOERROR 查询成功

在出现报错信息时,我们需要修改服务端named服务的主配置文件

vim /etc/named.conf

高速缓存DNS_第2张图片
高速缓存DNS_第3张图片
此时客户主机即可正常访问外网了。
第一次解析速度:在这里插入图片描述
第二次解析速度:
高速缓存DNS_第4张图片
可以看到,在第一次解析过后,第二次地址解析速度大大提升。

二.正向解析

正向解析就是将域名转化为IP地址。
我们可以尝试自己搭建的权威DNS服务器。

1.服务端修改dns解析地址

vim /etc/resolv.conf 
nameserver 172.25.70.251  ###DNS为服务端本身IP地址

在这里插入图片描述

2.修改named服务配置文件,改为本地解析 (不去访问其他服务器)

vim /etc/named.conf

高速缓存DNS_第5张图片

3.编辑子配置文件

vim /etc/named.rfc1912.zones 

高速缓存DNS_第6张图片

4.编辑域中主机与IP对应关系的文件

cp -p named.localhost westos.org.zone
vim westos.org.zone  

高速缓存DNS_第7张图片
修改完成后重启服务
5.测试

dig  hello.westos.org

高速缓存DNS_第8张图片

三.轮询式域名解析

1.修改对应关系文件

vim /var/named/westos.org.zone

高速缓存DNS_第9张图片
重启服务。
2.测试

dig abc.westos.org

第一次访问域名:
在这里插入图片描述
第二次访问域名:
在这里插入图片描述
可以看到,出现了轮询。

四.MX邮件交换记录

  MX记录 :邮件交换记录。用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理。如:用户所用的邮件是以域名mydomain.com为结尾的,则需要在管理界面中添加该域名的MX记录来处理所有以@mydomain.com结尾的邮件。
1.修改对应关系文件

vim /var/named/westos.org.zone

高速缓存DNS_第10张图片
2.测试

dig -t mx westos.org  ###访问westos.org域名的MX

高速缓存DNS_第11张图片

mail [email protected]   ###向root用户发送邮件

高速缓存DNS_第12张图片

mailq ###查看邮箱

高速缓存DNS_第13张图片

五.反向解析

  域名反向解析即从IP地址到域名的映射。由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。

vim /etc/named.rfc1912.zones

添加
zone "70.25.172.in-addr.arpa"  IN {
type master;
file "172.25.254.ptr";
allow-update {none; };
};

高速缓存DNS_第14张图片

cd /var/named
cp -p named.loopback 172.25.254.ptr #复制模板文件生成反向解析文件
vim 172.25.254.ptr   ###编辑反向解析文件

高速缓存DNS_第15张图片
重启服务后,测试:

dig -x 172.25.70.111  ###反向解析IP对应的域名

在这里插入图片描述
若没有IP对应的域名,则查找不到:
高速缓存DNS_第16张图片

六.多向解析

DNS服务器可以根据不同网段的主机,解析域名为其所在网段的IP地址。这就是多向解析。
步骤:
1.设置虚拟机有不同网段的IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0 
添加:
IPADDR0=172.25.70.251
NETMASK0=255.255.255.0
IPADDR1=1.1.1.251
NETMASK1=255.255.255.0

systemctl restart network

ip addr show  ###显示IP信息

高速缓存DNS_第17张图片
高速缓存DNS_第18张图片
2.生成1.1.1网段的域名IP对应关系的文件

cd /var/named/
cp -p westos.org.zone westos.org.local.zone  ###该文件写入1.1.1网段的域名与IP的对应关系
vim westos.org.local.zone 

高速缓存DNS_第19张图片
3.编辑named服务的配置文件,规定不同网段主机寻求解析服务时查看的文件

cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.local.zones
vim 
vim /etc/named.rfc1912.local.zones 
修改配置文件为:
zone "westos.org" IN {
		 type master;
	     file "westos.org.local.zone";###进行域名解析时查看的文件
		 allow-update { none; };
}; 

高速缓存DNS_第20张图片

vim /etc/named.conf  ###

高速缓存DNS_第21张图片
测试,两台网段不同的主机域名解析的IP地址不同:

dig www.westos.org

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

七.DNS集群

为了缓解DNS服务器的访问压力,我们可以在另外的主机上建立辅助DNS,帮助主DNS减轻压力

1.设置主DNS更新时通知辅助DNS
将主DNS的主配置文件还原,防止出错。并修改子配置文件:

vim /etc/named.rfc1912.zones 
添加:
also-notify { 172.25.70.252; }; ###DNS更新时通知辅助DNS

高速缓存DNS_第22张图片
2.辅助DNS开启named服务

yum install bind -y
systemctl start named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload 

在这里插入图片描述

编辑主配置文件:

vim /etc/named.conf 

高速缓存DNS_第23张图片
在这里插入图片描述
3.辅助DNS设定主DNS的IP地址

vim /etc/named.rfc1912.zones  
添加
zone "westos.org" IN {
  	  type slave; ###类型为辅助DNS
	  masters { 172.25.70.251; };###主DNS的IP
 	  file "slaves/westos.org.zone";###存放对应关系的文件
      allow-update { none; };
};

systemctl restart named

高速缓存DNS_第24张图片
在这里插入图片描述
4.主DNS修改后,通知辅助DNS
此时辅助DNS就已经生效了。
辅助DNS dig外网:

dig www.westos.org

高速缓存DNS_第25张图片
但主DNS的更新怎么及时通知到辅助DNS呢?
需要修改serial的值,当这个值变化时,会通知辅助DNS,主DNS已经发生了改变。

测试:

dig hello.westos.org

在这里插入图片描述
修改主DNS的数据,再在辅助DNS上测试:

vim westos.org.zone
修改: 
hello           A       172.25.70.222

systemctl restart named

dig hello.westos.org  ###辅助DNS测试是否生效

在这里插入图片描述
改变主DNS数据,再改变serial的值,此时辅助DNS测试:

vim /var/named/westos.org.zone 
修改:
2019112701      ; serial   ###serial最长可以10位。可以表示年月日和修改次数。
hello           A       172.25.70.233

systemctl restart named

辅助DNS测试:
dig hello.westos.org

高速缓存DNS_第26张图片
此时辅助DNS也会被修改:
在这里插入图片描述

八.远程更新DNS

通过设置,可以远程更新DNS服务器上的内容。
远程更新DNS有两种方式:
1.基于IP更新
2.基于密钥更新

1.基于IP的更新

DNS服务器上编辑子配置文件:

vim /etc/named.rfc1912.zones
修改:
allow-update 172.25.70.252;  ###允许该IP主机更新DNS

systemctl restart named

高速缓存DNS_第27张图片

 cp -p westos.org.zone /mnt  ###备份

chmod g+w /var/named  ###远程更新使用的身份是named。使其可写。

此时,就可以实现远程更新DNS了。

nsupdate 
> server 172.25.70.251  ###更新的DNS服务器IP
> update add  lala.westos.org 86400 A 172.25.70.99   ###编辑域名IP的对应关系
> send  ###发送

高速缓存DNS_第28张图片
客户端测试:

dig lala.westos.org

在这里插入图片描述
此时,服务端的文件并没有改变,只是多了一个存放指令的文件,但已经可以解析远程更新的域名了:

在这里插入图片描述
高速缓存DNS_第29张图片
在服务端重启服务后,文件才会写入远程更新的数据。

2.基于密钥的更新

在进行基于密钥更新前,需要删除上一步身成的jnl文件。两种更新方式会冲突。

rm -fr westos.org.zone*
cp -p /mnt/westos.org.zone .

1.DNS服务器生成密钥:

cd /mnt
dnssec-keygen  -a HMAC-MD5 -b 128 -n HOST westos  ###生成密钥文件westos
cat Kwestos.+157+41978.key  ###查看生成的密钥

在这里插入图片描述
2.指定密钥

cp -p /etc/rndc.key /etc/westos.key
vim /etc.westos.key
key "westos" {   ###密钥名字
        algorithm hmac-md5;
        secret "ICYRfrNZepiyQ3JBB8USfQ==";  ###密钥信息
};

高速缓存DNS_第30张图片
编辑配置文件,指定密钥:

vim /etc/named.conf
编辑:
include "/etc/westos.key";

在这里插入图片描述
编辑子配置文件:

vim /etc/named.rfc1912.zones 
修改:
allow-update { key westos; };

高速缓存DNS_第31张图片
最后,将密钥发送给其他主机:

 scp /mnt/Kwestos.+157+41978.* [email protected]:/mnt

拥有密钥的主机就可以通过密钥远程更新DNS了。
测试:

nsupdate -k Kwestos.+157+41978.key   ###持有的密钥
> server 172.25.70.251
> update add shuashua.westos.org 86400 A 172.25.70.199
> send

dig shuashua.westos.org

此时,可以看到远程更新完成。
在这里插入图片描述

九.动态域名解析DDNS

  动态域名解析(Dynamic DNS,简称DDNS)是把互联网域名指向可变IP地址的系统。DNS只是提供了域名和IP地址之间的静态对应关系,当IP地址发生变化时,DNS无法动态的更新域名和IP地址之间的对应关系,从而导致访问失败。但是DDNS系统是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络时,客户端程序通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,实现动态域名解析。
  DDNS也叫做花生壳

  要做到动态域名解析,我们可以让分配IP的dhcp告诉DNS服务器,域名目前的IP,从而做到动态域名解析。
实验步骤:
1开启dhcp服务

yum install dhcp -y
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
man 5 dhcpd.conf  ###可查看dhcpd.conf的帮助手册
vim  /etc//dhcp/dhcpd.conf

高速缓存DNS_第32张图片
高速缓存DNS_第33张图片
客户端主机设置主机名,后缀为DNS文件中的域
修改IP获取方式为dhcp。

hostnamectl set-hostname server.westos.org

vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改: 
BOOTPROTO=dhcp
systemctl restart network

此时,在客户端主机上测试:

ifconfig

dig server.westos.org

此时域名的IP就是dhcp得到的IP。
在这里插入图片描述
改变dhcp分配ip的范围,使得客户端IP地址改变,再进行测试:

vim /etc/dhcp/dhcpd.conf
修改:
range 172.25.70.95 172.25.70.100;
systemctl restart dhcpd.service 

客户端:
systemctl restart dhcpd.service 
ifconfig 
dig server.westos.org 

在这里插入图片描述
在这里插入图片描述
此时,就达到了动态域名解析。
重启named服务后,即可看到服务端DNS数据发生了改变
高速缓存DNS_第34张图片

你可能感兴趣的:(高速缓存DNS)