3.DNS---高速缓存服务器

1.细说“DNS”—高速缓存服务器

(1)DNS的定义:
DNS(Domain Name System)---域名系统:是互联网的一项服务
作为将域名和IP地址相互映射的一个分布式数据库,帮助人们方便的访问互联网
DNS使用的是TCP和UDP端口53
(2)DNS的分类:

1>权威名称服务器(权威dns)

1.权威名称服务器(权威dns):直接有客户需要的答案,客户输入域名就可直接访问。存储并提供某区域 ( 整个DNS 域或 DNS 域的一部分 ) 的实际数据
2.权威名称服务器的类型包括:
Master : 包含原始区域数据,有时称作 “主要 ”名称服务器
Slave : 备份服务器 ,通过区域传送从 Master 服务器获得的区域数据的副本,有时称作 “次要 ”名称服务器

2>非权威 / 递归名称服务器(非权威dns)

1.非权威 / 递归名称服务器(非权威dns):里面没有客户需要的答案,但它会通过询问114.114.114.114 等权威DNS找到答案传递给用户,客户端通过其查找来自权威名称服务器的数据。
2.递归名称服务器的类型包括:
仅缓存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性
(3)DNS的功能:

在浏览器里面输入域名 www.baidu.com,浏览器并不知道这是谁,只有通过 dns 找到域名对应的ip我才可以正常的访问百度
DNS作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS使用TCP和UDP端口53,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS的对应端口是53:

  • 53端口—dns服务器获取信息通过53端口获取,dns默认开启的端口
  • “ 127.0.0.1.53 ” 即 53端口开在回环接口(内部接口)上,此时服务器不能获取信息,可通过vim /etc/named.conf 修改
(4)DNS的查找步骤:

步骤1:客户端上的 Stub 解析器将查询发送至 /etc/resolv.conf 中的名称服务器
步骤2:如果 dns 对于请求的信息具有权威性 , 则会将权威答案发送至客户端
如果 dns 在其缓存中有请求的信息 ,则会将非权威答案发送至客户端
如果缓存中没有该信息 , dns 将搜索权威名称服务器以查找信息
步骤3:从根区域开始 , 按照 DNS 层次结构向下搜索,直至对于信息具有权威性的名称服务器 , 以此为客户端获得答案,在此情况中名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找

(5) DNS的优点:

1.速度快;
2.查询速度快,省带宽,减小服务器压力

2.实验前配置环境 & 搭建DNS

改名:hostnemwctl set-hostname dns-server.example.com **
** ip:nm-connectin-editor **
** 配置yum源:http://172.25.254.250/

实验用到的虚拟机:
dns-server:172.25。254.118
试验机1:172.25.254.18
试验机2(desktop):172.25.254.218

/etc/hosts 本地解析文件
/etc/resolv.conf 网络解析文件

dns-server虚拟机:
测试:ping www.baidu.com /*ping不通百度*/
实验步骤如下:

(1)设置网关(172.25.254.250),ip (172.25.254.118)    /*250主机可以上网*/
(2)systemctl restart network     /*刷新网络*/
(3)rounte -n     
(4)vim /etc/resolv.conf 
		nameserver=114.114.114.114
(5)ping www.qq.com     /*可以ping通*/
(6)dig www.qq.com     /*耗时过长*/   

在这里插入图片描述
在这里插入图片描述
为了缩短查询时间,引入 DNS 高速缓存服务器

dns-server虚拟机中:
步骤一:安装dns,并在火墙中加入dns

yum install bind -y   /*bind体现dns服务的软件*/
yum  clean all 
yum repolist
firewall-cmd --permanent --add-service=dnsd    /*添加dns*/
firewall-cmd --reload
firewwall-cmd --list-all

在这里插入图片描述
在这里插入图片描述
步骤二:将dns指向设定为本机,修改dns配置文件

vim /etc/resolv
  	 nameserver 172.25.254.118     /*dns为本机172.25.254.118*/
vim /etc/named.conf     /*进入配置文件更改设置*/
systemctl restart named     /*刷新dns服务*/

刷新dns服务时可能会出现加载过慢的情况,这种情况出现的原因是加密字符不够,可通过敲击键盘或点击鼠标生成随即字符来解决
在这里插入图片描述
步骤三:测试dig www.baidu.com ,该域名第一次查询所花费的时间较长

systemctl restart named
 dig www.baidu.com     /*只有第一次查询花费时间较长,之后的查询非常的迅速*/

在这里插入图片描述
查询速度慢、时间长的原因:虚拟机去查询了顶级dns,
解决方法:

vim /etc/named.conf
  		forwarders	{114.114.114.114;};     /*若在dns中查询不到,就去114.114.114.114查询*/

实验机1中:
步骤四:开启火墙,开启地址伪装功能,开启ipv4

systemctl start firewalld.service 
firewall-cmd --permanent --add-masquerade     /*开启火墙地址伪装功能*/
firewall-cmd --reload
firewwall-cmd --list-all
sysctl -a | grep ip_forward
vim /etc/resolv 
  		nameserver 172.25.254.118     /dns指向主dns172.25.254.118*/

在这里插入图片描述
步骤五:测试dig www.baidu.com,查询花费的时间非常短

 dig www.baidu.com     /*花费时间非常短*/

在这里插入图片描述
DNS高速缓存服务器:速度快,省带宽

3.DNS正向解析

正向解析:通过域名获得对应的ip

实验步骤如下:

dns-server虚拟机:
步骤一:编辑dns配置文件

vim /etc/named.conf
vim /etc/named.rfc1912.zones
	zone "zxyos.com" IN {
		type master;
		file "zxytos.com.zone";     /*读取的文件为zxytos.com.zone*/
		allow-update {none;};
  };
cd /var/named/
cp -p named.localhost zxyos.com.zone      /*(必须加-p)带上权限复制named.localhost到zxyos.com.zone*/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二:在zxytos.com.zone写入dns信息和一一对应的域名及ip

vim zxyos.com.zone

	$TTL 1D---保存一天     /*IN SOA---授权起始(必须以“.”结尾)*/ /*维护*/
	@	IN SOA dns.zxyos.com. 	root.zxytos.com. (
					0	;serial    /*不连续*/
					1D	;refresh   /*刷新间隔为1天*/
					1H	;retry	   /*1小时后重试*/
					1W	;expire   /*1周后过期*/
					3H )	;minimum  /*最短三小时过期*/

   		NS	dns.zxyos.com.     /*对应关系(必须以“.”结尾)*/
	dns	A	172.25.254.118     /*A---IPv4地址,AAAA---IPv6地址*/
	www	A	172.25.254.118

在这里插入图片描述
步骤三:刷新dns,测试通过域名www.zxyos.com,获得其对应的ip

systemctl restart named   
dig www.zxyos.com

刷新dns时可能会出现加载过慢的情况,这种情况出现的原因是加密字符不够,可通过敲击键盘或点击鼠标生成随机字符解决
在这里插入图片描述
实验机1中:
步骤四:设置dns指向为dns-server服务器后,测试

vim /etc/resolv.conf
	nameserver=172.25.254.118
dig www.zxyos.com

在这里插入图片描述
在这里插入图片描述
dns-server服务机和试验机均可通过查询ip获得对应域名,则说明正向解析dns配置成功

4.CNAME

外部域名 CNAME=change name 内部域名

www.baidu.com				www.a.shifen.com

实验步骤如下:
dns-server服务机:
步骤一:在dns配置文件/var/named/zxyos.com.zone中写入(将外部域名 jay.zxyos.com 改为内部域名 sehun.zxyos.com

vim /var/named/zxyos.com.zone
	jay CNAME sehun

在这里插入图片描述
步骤二:刷新dns,测试:通过查询外部域名jay.zxyos.com,获得内部域名 sehun.zxyos.com,从而获得其对应的ip
sehun.zxyos.com的两个ip轮循获得
在这里插入图片描述
在这里插入图片描述

5.MX

MX(邮件交换记录)
smtp=sample mail transformation principle(简单邮件传输协议),对应端口是25

实验步骤如下:
dns-server虚拟机:
步骤一:配置文件内写入邮件交换记录

vim /var/named/zxyos.com.zone
	zxyos.com.	MX	1	172.25.254.118

在这里插入图片描述
步骤二

systemctl restart named     /*刷新dns*/
mail root@zxyos.com
	Subject:mail1     /*邮件名称*/
	awd
	awd
	EOT     /*Ctrl+d退出*/
mailq     /*查看邮件队列*/

在这里插入图片描述

6.反向解析

反向解析:通过ip获取域名
PTR—反向解析记录

步骤如下:
dns-server虚拟机中:
步骤一:写入反向解析配置文件,/etc/named.rfc1912.zones中规定dns反向解析读取的文件名,zxyos.com.ptr文件中写入dns反向解析的信息

vim /etc/named.rfc1912.zones
	zone "254.25.172.in-addr.arpa" IN {     /*查询的ip为 .254.25.172.in-addr.arpa(反向)*/
		type master;
		file "westos.com.ptr";     /*westos.com.ptr为dns反向解析读取的文件*/
		allow-update {none;};
	};
cd /var/named/
cp -p named.loopback zxyos.com.ptr      /*(必须加-p)带上权限复制named.loopback到zxyos.com.ptr*/
vim zxyos.com.ptr
	$TTL 1D---保存一天     /*IN SOA---授权起始(必须以“.”结尾)*/ /*维护*/
	@	IN SOA dns.zxyos.com. 	root.zxytos.com. (
					0	;serial    /*不能大于10位(与更新有关,0---不更新*/
					1D	;refresh   /*刷新间隔为1天*/
					1H	;retry	   /*1小时后重试*/
					1W	;expire   /*1周后过期*/
					3H )	;minimum  /*最短三小时过期*/

   		NS	dns.zxyos.com.     /*对应关系(必须以“.”结尾)*/
	dns	A	172.25.254.118     /*A---ipv4*/
	184	PTR	wsx.zxyos.com
	191	PTR	zjl.zxyos.com
systemctl restart named

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二:测试通过ip查找对应的域名,dig -x 172.25.254.184和dig -x 172.25.254.191

dig -x 172.25.254.184
dig -x 172.25.254.191

在这里插入图片描述
在这里插入图片描述
实验机1中:
步骤三:测试通过ip查找对应的域名,dig -x 172.25.254.184和 dig -x 172.25.254.191

dig -x 172.25.254.184
dig -x 172.25.254.191

在这里插入图片描述
在这里插入图片描述
dns-server服务机和试验机均可通过查询ip获得对应域名,则说明反向解析dns配置成功

7.双向解析

内网用户查到的是内网地址,外网用户查到的是外网地址
实验步骤如下:
dns-server虚拟机:
步骤一:规定外网用户读取的文件为zxyos.com.zone(172.25.254.~),内网用户读取的文件为zxyos.com.local(192.168.0.~)

vim /etc/resolv.conf
	nameserver 172.25.254.118
cd /var/named
ls
cp -p zxyos.com.zone zxyos.com.local     
ll
vim zxyos.com.local     /*zxyos.com.local内部用户:192.168.0.~*/
	:%s/172.25.254/192.168.0/g

在这里插入图片描述
在这里插入图片描述
步骤二:规定内网用户dns的配置文件为 /etc/named.rfc1912.localnet ,读取的文件为zxyos.com.local

cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnet     
vim /etc/named.rfc1912.localnet     /*named.rfc1912.localnet为内部用户访问dns的配置文件*/
	zone "zxyos.com" IN {
		type master;
        file "zxyos.com.local";     /*读取的文件为zxyos.com.local*/
        allow-update { none; };
	};

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

步骤三:在/etc/named.conf文件中注释掉“.”域和其他域文件说明,添加内网用户访问dns服务器使用的 localnet 域,外网用户访问dns服务器使用的 internet 域

vim /etc/named.conf
	/*
	zone "." IN {
		type hint;
		file "named.ca";
	};
	include "/etc/named.rfc1912.zones";
	include "/etc/named.root.key";
	*/
	view localnet {
        match-clients {172.25.254.118;};
        zone "." IN {
                 type hint;
                 file "named.ca";
        };
        include "/etc/named.rfc1912.localnet";
	};


	view internet {
		match-clients {any;};
        zone "." IN {
                 type hint;
                 file "named.ca";
        };
        include "/etc/named.rfc1912.zones";
	};

在这里插入图片描述
步骤四:刷新dns,dns-server服务器端作为内网用户 dig www.zxyos.com,获得的ip为192.168.0.118

systemctl restart named
dig www.zxyos.com

在这里插入图片描述
试验机1中:
步骤五:修改dns指向,试验机1作为外网用户 dig www.zxyos.com,获得的ip为172.25.254.118

vim /etc/resolv.conf
		nameserver 172.25.254.118
dig www.zxyos.com

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

8.辅助dns

目的:减小缓解dns服务器压力
冗余:多台机器备用保证工作的稳定性
主备:主机器损坏时,备用机器顶替其工作
集群:多台机器同时工作,辅助机分担主机工作压力

实验步骤如下:
dns-server虚拟机:
步骤一:注释双向配置文件,恢复之前的配置

vim /etc/named.conf

在这里插入图片描述

systemctl restart named
vim /etc/named/zxyos.com.zone
	www	A	172.25.254.218   /*172.25.254.118改为 172.25.254.218*/
systemctl restart named

试验机2(desktop):将此试验机作为辅助dns(提前配置好试验机ip,网关,yum源)
步骤二:在辅助dns中安装 dns

yum install -y bind
yum clean all
yum repolist

在这里插入图片描述
在这里插入图片描述
步骤三:将dns加入火墙,并使所做修改生效

firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
firewall-cmd --list-all

在这里插入图片描述
步骤四:编辑配置文件,在辅助dns机生成zxyos.com.zone文件

vim /etc/named.conf
		listen-on port 53 { any; };     /*开启53端口*/
		allow-query     { any; };
systemctl restart named
vim /etc/named.rfc1912.zones 
	zone "zxyos.com" IN {
        	type slave;   
        	masters { 172.25.254.118;};     /*为172.25.254.118主机服务*/
        	file "slaves/zxyos.com.zone";     /*读取的配置文件为 slaves目录下的zxyos.com.zone文件*/
       	 allow-update { none; };
	};

ls /var/named/slaves 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤五:修改dns指向

vim /etc/resolv.conf
	nameserver 172.25.254.218     /*dns指向为辅助机自己*/ 

在这里插入图片描述
步骤六:dns辅助机dig www.zxyos.com,显示其对应ip为172.25.254.118

dig www.zxyos.com 

在这里插入图片描述
步骤七:dns-server服务机中修改 www A 172.25.254.218为www A 172.25.254.218
在这里插入图片描述
步骤八:dns辅助机中删除原有配置文件,刷新后,主dns的配置文件同步过来生成新的zxyos.com.zone文件

ls /var/named/slaves
rm -rf /var/named/slaves/zxyos.com.zone
systemctl restart named
ls /var/named/slaves

步骤九:辅助dns重新测试,www.zxyos.com的ip显示为172.25.254.218

dig www.zxyos.com

在这里插入图片描述

9.DNS的更新与恢复

1—dns的更新

dns-server虚拟机
步骤一:带权限备份 dns 配置文件 zxyos.com.zone 到 /mnt 目录下

cp -p /var/named/zxyos.com.zone /mnt/     /*备份*/

步骤二:dns-server服务器允许172.25.254.18 这台机器对它更新,并将更新信息提醒给172.25.254.218

vim /etc/named.rfc1912.zones 
zone "zxyos.com" IN {
        type master;
        file "slaves/zxyos.com.zone";
        allow-update { 172.25.254.18; };
        allow-notify {172.25.254.218; };  
systemctl restart named
getenforce (disabled)

在这里插入图片描述
实验机1:
步骤四:发送更新信息到172.25.254.118(dns-server服务器)

nsupdate
	>server 172.25.254.118
	>update add hellow.zxyos.com 86400 A 172.25.254.198
	>send     /*update failed:SERVFAIL---发送失败(通过更改权限可解决此问题)*/

在这里插入图片描述

步骤五:设定dns配置文件的权限,刷新后 18试验机重新发送更新信息,dns-server服务机重新测试
dns-server虚拟机:

chmod 770 /etc/named/
ll -d /var/named/
systemctl restart named

在这里插入图片描述
实验机1:

nsupdate
	>server 172.25.254.118
	>update add hellow.zxyos.com 86400 A 172.25.254.198
	>send     /*发送更新信息成功*/

在这里插入图片描述
dns-server虚拟机:dig hellow.zxyos.com /*可获得ip,说明更新成功*/
在这里插入图片描述
步骤六:查看更新后 dns 配置文件的变化

ls /var/named/     /*接收到更新信息后生成 zxyos.com.zone.jnl文件*/
systemctl restart named     /*zxyos.com.zone文件中出现hellow.zxyos.com A 172.25.254.198*/

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

2—dns的恢复更新前状态

实验机1:
步骤一:发送方删除更新信息

nsupdate
	>update delete hellow.zxyos.com
	>send

在这里插入图片描述
dns-server虚拟机:
步骤二:删除更新后生成的文件,恢复之前的配置

dig hellow.zxyos.com     /*查询不到hellow.zxyos.com的ip*/
rm -rf /var/named/zxyos.com.zone*    /*删除接收到更新后生成的文件*/
cp -p /mnt/zxyos.com.zone /var/named/    /*恢复dns 配置*/

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

10.dns的key更新

引入key更新的原因:
前一个实验中,实验机2(desktop)可通过 ip 来更新 dns ,其他机器也可能通过 ip 来更新服务机的 dns,因此这种更新方法是非常不安全的。所以我们引入了较之更为安全的key更新。
先在 dns-server 服务器上做一个“钥匙”,并把“钥匙”分发给允许更新的试验机,只有拥有“钥匙”的试验机才可更新 dns-server 服务器
key更新实验

dns-server虚拟机:

步骤一:删除前一个实验中生成的文件,恢复dns的设置

cd /var/named
systemctl restart named
rm -rf zxyos.com.zone*
systemctl restart named

在这里插入图片描述
步骤二:在 /mnt 中生成加密文件zxyos

cd /mnt
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST zxyos

-a 加密方式HMAC-MD5
-b 加密长度128
-n 加密对象HOST
在这里插入图片描述
步骤三:在 /etc 目录下生成加密文件的“钥匙”,并设定钥匙名和加密字符

cp -p /etc/rndc.key /etc/zxyos.key
vim /etc/zxyos.key
	key "zxyos" {
		algorithm hmac-md5;
		secret "/hXw8CZibjCBezt4PnfUzA=="
};

在这里插入图片描述
步骤四:编辑 dns 文件,使其可识别“钥匙”,允许“钥匙”拥有者更新 dns

vim /etc/named.conf
	include “/etc/zxyos.key"; 
vim /etc/named.rfc1912.zones
写入:
zone "zxyos.com" IN {
        type master;
        file "slaves/zxyos.com.zone";
        allow-update { key zxyos; };
        allow-notify { 172.25.254.218; };  
};

systemctl restart named 

在这里插入图片描述
在这里插入图片描述
步骤五:将“钥匙“分发给172.25.254.18用户

scp Kzxyos.* root@172.25.254.18:/mnt/

在这里插入图片描述
实验机1中:
步骤六:“钥匙”拥有者更新 dns-server

cd /mnt/ 
nsupdate -k Kzxyos.+157+22894.key
	> server 172.25.254.118
	> update add 0412.zxyos.com 86400 A 172.25.254.163
	> send

在这里插入图片描述
测试:(dns-server虚拟机中)

dig 0412.zxyos.com

在这里插入图片描述

11.DDNS—动态域名解析

DDNS的定义:
DDNS---动态域名解析(Dynamic Domain Name Server):是 dhcp 和 dns 的结合,负责提供DNS服务并实现动态域名解析,将用户的动态IP地址映射到一个固定的域名解析服务上,服务机上需同时搭建有 dhcp 服务 和 dns 高速缓存服务器。
DDNS(高速缓存服务器)捕获用户每次变化的IP地址,然后将其与用户的域名相对应,通过这样的方式使区域内的用户可以通过域名来进行交流
引入ddns的原因:
若有多台机器需要被分配ip,可在 dns-server 主机的 /var/named/zxyos.com.zone 文件中写入 域名 和 ip (一一对应),但这种方法耗时耗力,浪费资源,因此引入 ddns (动态域名解析)
DDNS与普通DNS的区别:
DDNS动态域名服务的 IP 是动态的,随机的,可变动的;
但普通DNS是基于静态IP的,有可能是一对多或多对多,域名所对应的 IP 都是固定的一个或多个,

随着市场需求的变化,DDNS需求功能也越来越多,越来越要求方便,市场现在已经有了不少第三方DDNS方支持的设备

ddns实验

实验时关闭物理机的dhcp服务(实验环境有多台主机,测试机获得 动态ip 时需拔掉网线)

dns-server虚拟机中:
在这里插入图片描述
步骤一:在dns服务机中搭建dhcp服务器

yum install dhcpd -y
yum clean all
yum repolist
 
cd /etc/dhcpd
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dncpd.conf	
vim dncpd.conf
	 ddns-update-style interim;
systemctl start dhcpd
systemctl enable dhcp

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二:火墙中添加 dhcp 服务

firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
firewall-cmd --list-all

在这里插入图片描述
步骤三:关闭selinux

getenforce     /*disabled*/

实验机2(desktop):

步骤四:设置hostnamectl实验机名为 text.zxyos.com,即作为域名(固定不变)

hostname set-hostname text.zxyos.com

在这里插入图片描述
步骤五:关闭selinux

getenforce     /*disabled*/

步骤六:设置网络为dhcp–动态获取ip

vim /etc/sysconfig/network-scripts/ifconfig-sehun
	BOOTPROTO=dhcp
	ONBOOT=yes
	DEVICE=eth0

在这里插入图片描述
步骤七:重启网络,查看动态ip

systemctl restart network
ifconfig     /**/

测试:(此时的地址池为172.25.254.215~172,25,254,240)

dig text.zxyos.com     /*text.zxyos.com对应的ip为 172.25.254.211*/

在这里插入图片描述
步骤八:dns-server虚拟机改变dhcp的地址池(172.25.254.215~172,25,254,240),使测试机重新获得动态ip,再次 dig text.zxyos.com 查看其对应的ip
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值