高速缓存DNS

一、基础知识
1、什么是dns
dns 域名系统,作为将域名和IP地址相互映射的一个分布式数据库,帮助人们方便的访问互联网。
2、dns的分类
权威名称服务器(权威dns:直接有客户需要的答案,客户给一个域名,直接能访问到答案)
存储并提供某区域(整个DNS域或DNS域的一部分)的实际数据
权威名称服务器的类型包括:
Master:包含原始区域数据,有时称作“主要”名称服务器
Slave:备份服务器,通过区域传送,从Master服务器获得的区域副本,有时称作:次要“名称服务器。
非权威/递归名称服务器(非权威dns里边没有客户需要的答案,但他会通过114.114.114.114等权威DNS找到答案给客户)
客户端通过其查找来自权威名称服务器的数据
3、缓存DNS服务器
BIND是最广泛使用的开源名称服务器
在RHEL中,通过bind软件包提供
防火墙开启端口 53/TCP 和 53/UDP
BIND 的主配置文件是 /etc/named.conf
/var/named 目录包含名称服务器所使用的其他数据文件
4、DNS排错
dig时显示的信息,显示来自dns查找的详细信息,其中包括为什么查询失败
NOERROR:查询成功
NXDOMAIN:DNS服务器提示提示不存在这样的内容
SERVFAIL:DNS服务器停机或DNSSEC响应验证失败
REFUSED:DNS服务器拒绝回答(也许是出于访问控制原因)
5、数据访问流程
【1】客户端Stub解析器将查询发送至/etc/resolv.conf 查看DNS中的nameserver指向
【2】进入指向的主机 /etc/named/named.conf中
【3】如果名称服务器对应请求具有权威性,会将权威答案发送至客户端
【4】如果名称服务器在其缓存中有请求信息,则会将非权威答案发送至客户端
【5】如果缓存中没有该信息,名称服务器将搜索权威名称服务器,以查找信息
【6】从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威性的名称服务器,以此获得客户端答案。
6、DNS资源记录
DNS区域采用资源记录的形式存储信息。每条资源记录均具有一个类型,表明其保留的数据类型

A 名称至IPV4地址
AAAA 名称至IPV6地址
CNAME 名称至“规范名称“(包含A/AAAA 记录的另一个名称)
PTR IPV4/IPV6地址至名称
MX 用于名称的邮件交换器(向何处发送其电子邮件)
NS 域名的名称服务器
SOA ”授权起始“,DNS区域的信息(管理信息)

7、必须知道的知识
DNS协议 对应端口53
简单邮件传输协议 smtp 对应端口25
二、高速缓存DNS的部署
【1】在内网里面搭建一台高速缓存dns服务器,属于非权威dns,目的是为了提高内网的访问速率
【2】为什么要搭建高速缓存dns服务器?
当一个企业内网里面的每一台主机都要访问114.114.114.114这个权威dns进行域名解析
但是内网通往114.114.114.114只有一根传输线,此时每台的访问速率都非常慢
内网访问速率慢,但内网之间访问速率快
现在我们想把企业内部的一台服务器搭建成高速缓存dns,其他主机不再需要问114.114.114.114,直接问高速缓存dns服务器即可
只需要高速缓存dns去问114.114.114.114,然后共享给主机。
【3】高速缓存DNS的搭建
高速缓存dns的搭建需要/etc/rndc.key这个文件的存在(如果加密字符太短就不存在)
systemcel start named (起不来)开启以后这个文件才会存在,存储加密字符
此时敲击物理键盘,使他的加密字符变长,此时这个文件才会有,系统才会起来
cat /etc/random 敲击物理键盘则生成 /etc/rndc.key

实验:在虚拟机上部署与测试
主机:
【1】
连网
【2】

cd proc/sys
cd net/ipv4
icmp_echo_ignore_all开启内核数据接口
echo 1 > icmp_echo_ignore_all
sysctl -a | grep ip_forward 查看状态 
vim /etc/sysctl.conf
net.ipv4.ip_forward=1   # 开启路由功能
firewall-cmd --add-masquerade
firewall-cmd --list-all  #开启防火墙伪地址(包装)

在这里插入图片描述
高速缓存DNS_第1张图片
虚拟机1(做主dns服务器)
【1】

 vim /etc/sysconfig/network
GATEWAY=172.25.254.76  #设置为真机IP,真机连网了,将数据包扔给网关主机

【2】

yum install bind -y

【3】

systemctl start firewalld.service
firewall-cmd --permanent --add-service=dns #在防火墙上允许dns服务,防外网
firewall-cmd --list-all

【4】

vim /etc/resolv.conf
nameserver 114.114.114.114

【5】

vim /etc/named.conf

高速缓存DNS_第2张图片

systemctl restart named
netstat -antulpe | grep named  #查看53监听端口
dig www.baidu.com #查询到的IP会变,轮循工作

高速缓存DNS_第3张图片
测试:
虚拟机2(客户端):

vim /etc/sysconfig/network
vim /etc/resolv.conf
nameserver 172.25.254.176
dig www.baidu.com

在这里插入图片描述
高速缓存DNS_第4张图片
2、搭建权威dns服务器
使176非权威dns不再向114权威dns询问,向自己询问。将自己已有的共享出去,没有的向114查询
与上述步骤类似,唯一不同

vim /etc/resolv.conf
nameserver 172.25.254.176

高速缓存DNS_第5张图片
下面实验均在搭建的权威dns176上进行
三、正向解析
在主dns服务器(server中)
【1】

vim /etc/named.conf
显示所有的域包含在 /etc/named.rfc1912.zones

在这里插入图片描述
【2】

vim /etc/named.rfc1912.zones

在这里插入图片描述
【3】
高速缓存DNS_第6张图片
【4】

vim westos.com.zone

$TTL 1D #最多维持一天
@[==域名]
IN SOA[授权起始]
dns.westos.com.[由谁授权]
root.westos.com.[由谁维护]
(0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum  #时间
NS dns.westos.com. #授权
dns A 172.25.254.119 #授权dns的信息
www A 172.25.254.119 #这个域中的主机名www
ip是172.25.254.119
高速缓存DNS_第7张图片
高速缓存DNS_第8张图片
【5】

systemctl restart named

测试:
客户端(在desktop中):

dig www.westos.com
    ANSWER SECTION

高速缓存DNS_第9张图片
四、模拟IP轮循
dig查询到百度的IP域名:
www.baidu.com  对外
www.a.shifen.com  内部域名
高速缓存DNS_第10张图片
高速缓存DNS_第11张图片

实验·:
【1】

vim /etc/named.rfc1912.zones

在这里插入图片描述
【3】

cd /var/named
cp -p named.localhost  westos.com.zone
vim westos.com.zone

高速缓存DNS_第12张图片
bbs  客户访问域名
linux  内部域名
CNAME   #change name改变名称,转换域名
【4】

systemctl restart named

测试:
在客户端(desktop主机):
【1】

dig bbs.westos.com

高速缓存DNS_第13张图片
高速缓存DNS_第14张图片

五、邮件

我们平常发送邮件都是先登陆腾讯的服务器,再将邮件发出去
qq.com这台服务器使用[email protected]发送邮件
需要通过dns解析找到mx记录163.com.对应的IP
二者通过smtp协议的25端口进行邮件传送


简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是在Internet传输email的事实标准
SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输
可以很简单地通过telnet程序来测试一个SMTP服务器,SMTP使用TCP端口25
要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange) DNS

实验:
在主dns(虚拟机server上)
【1】
在dns服务器上查询25端口是否开启

netstat -antluep | grep master

在这里插入图片描述
【2】

vim /var/named/westos.com.zone
even.com. MX 1 172.25.254.124.
#MX邮件交换器1表示级别,表示一个记录而不是地址,所有有.

高速缓存DNS_第15张图片
【3】

systemctl restart named

测试
【1】客户端给服务端发邮件

mail [email protected]

在这里插入图片描述
【2】

dig -t mx even.com #查询IP

高速缓存DNS_第16张图片
【3】

mailq #查看邮件信息
mail #查看不了内容,未开启25端口

高速缓存DNS_第17张图片

六、反向解析(通过IP找域名)
实验:
【1】

dig -x 172.25.254.111 #查域名

高速缓存DNS_第18张图片
【2】

vim /etc/named.rfc1912.zones

在这里插入图片描述
【3】

cd /var/named/
cp -p named.loopback westos.com.ptr #复制文件及属性
ll
     root named #所属用户所属组

高速缓存DNS_第19张图片
【3】

vim westos.com.ptr

高速缓存DNS_第20张图片
【4】

systemctl restart named

测试:
【1】
在客户端(desktop 虚拟机上)

vim /etc/resolv.conf
nameserver 172.25.254.176

在这里插入图片描述
【2】

dig -x 172.25.254.111
dig -x 172.25.254.112
    ANSWER SECTION

高速缓存DNS_第21张图片
高速缓存DNS_第22张图片
六、双向解析
内网用户与外网用户dig查询到的地址不同
实验:
【1】

cd /var/named/
cp -p westos.com.zone westos.com.localnet
vim westos.com.localnet 全文替换172.25.254为192.168.0
   :%s/172.25.254/192.168.0/g

高速缓存DNS_第23张图片

cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnet
vim /etc/named.rfc1912.localnet

在这里插入图片描述

vim /etc/named.conf

高速缓存DNS_第24张图片
测试
【1】
内部客户端(desktop上):

dig www.westos.com

高速缓存DNS_第25张图片
【2】
外部客户端(主机上):

vim /etc/resolv.conf
nameserver 172.25.254.20

高速缓存DNS_第26张图片

  dig www.westos.com

高速缓存DNS_第27张图片
七、辅助dns
设置辅助dns,针对外网访问dns服务器来说,缓解访问dns服务器的压力。
实验:
【1】

为防止影响实验效果,注释掉server主机上双向dns设定
再打开一台虚拟机(desktop)
ip 设置为172.25.254.20

【2】
在辅助dns上:

yum install bind -y

【3】

vim /etc/named.conf

高速缓存DNS_第28张图片
高速缓存DNS_第29张图片
【4】

vim /etc/named.rfc1912.zones

高速缓存DNS_第30张图片

systemctl restart named

【5】

vim /etc/resolv.conf
    nameserver 172.25.254.20

高速缓存DNS_第31张图片
【6】

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

【7】

dig www.westos.com

高速缓存DNS_第32张图片
测试:
【1】
在客户端(主机上)测试:

vim /etc/resolv.conf
    nameserver 172.25.254.20
dig www.westos.com --->得到和172.25.254.20相同的结果

高速缓存DNS_第33张图片
高速缓存DNS_第34张图片
八、主dns更新后通知辅助dns同步

若主dns对应IP发生更改后,辅助dns无法同时更新,必须删除文件/var/named/slaves/westos.com.zones,然
后重启named,生成新的文件,实现同步更新。在企业中这种方法显然不可行。

主辅同步设置:
若文件中IP修改同时修改serial值
dns服务器比对serial值,发生变化后通知辅助dns进行数据同步
serial 最好修改成时间 2019080401 [不超过十位]
实验:
【1】

vim /etc/named.rfc1912.zones

在这里插入图片描述
【2】

vim /var/named/westos.com.zone

高速缓存DNS_第35张图片

systemctl restart named

测试:
在辅助dns(desktop虚拟机)中:

dig www.westos.com

高速缓存DNS_第36张图片
在客户端(真机中):

dig www.westos.com

高速缓存DNS_第37张图片
九、允许别人更新
##allow-transfer {172.25.254.200; }; 企业rhel7及之前在更新时必须加,之后不用
实验:
在主dns上:
【1】

vim /etc/named.rfc1912.zones
   allow-update { 172.25.254.76; }; #允许76主机更新

高速缓存DNS_第38张图片

【2】

chown root.named /var/named
chmod 770 /var/named

在这里插入图片描述
【3】

systemctl restart named
getenforce 0 #selinux必须设置为警告模式,否则会影响实验

测试:
在172.25.254.76上

nsupdate
> server 172.25.254.176
> update add hello.westos.com 86400 A 172.25.254.123
> send

注意:
86400 #单位:秒,指A记录最多缓存一天
此时在主dns上生成
/var/named/named.zones.jnl
在这里插入图片描述
若此时在主dns上使用systemctl restart named则:
/var/named/westos.com/zone.jnl会和/var/named/westos.com.zone合并,若后续会用到此文件,可将/var/named/westos.com.zone备份后,在使用重启命令。
测试:
【1】
主dns

dig hello.westos.com

高速缓存DNS_第39张图片
【2】
在辅助dns(desktop虚拟机):

dig hello.westos.com

高速缓存DNS_第40张图片
删除:
【1】在172.25.254.76上

nsupdate
> server 172.25.254.176
> update delete hello.westos.com
> send

【2】在主dns上

rm -fr /etc/named/westos.com.zone*
cp -p /mnt/westos.com.zone /var/named/

十、通过密钥更新
allow-update中为IP时主机名发生变化,则更新主机发生变化,别人可以通过更改IP进行操作,不安全。
使用key(钥匙)更新,提高安全性。
实验:
在主dns(虚拟机server上)
【1】恢复之前设置

systemctl restart named
rm -fr westos.com.zone*
cp -p /mnt/westos.zone /var/named #之前备份过的
systemctl restart named

高速缓存DNS_第41张图片
【2】创建密钥

cat /etc/rndc.key #显示为MD5类型加密
#使用与其目录下相同类型的加密,防止出错
cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n host westos

在这里插入图片描述
在这里插入图片描述
-a 加密方式
-b 密钥大小
-n 以什么方式识别
【2】
MD5对称加密,两个文件中的钥匙都一样

ls /mnt/
      Kwestos.+157+50462.key Kwestos.+157+50462.private
cat Kwestos.+157+50462.key
      westos. IN KEY 512 3 157 KsAGuuY2DnMO58Oq93nPUQ==

高速缓存DNS_第42张图片
【3】修改加密文件

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

在这里插入图片描述

【4】添加密钥文件

vim /etc/named.conf
     #在option语句块外添加
     include "/etc/westos.key";
vim /etc/named.rfc1912.zones
     zone "westos.com" IN {
               type master;
               file "westos.com.zones";
               allow-update { key westos; };
			   also-notify { 172.25.254.200; };
	 };
systemctl restart named

在这里插入图片描述
在这里插入图片描述
vim /etc/named.rfc1912.zones
高速缓存DNS_第43张图片
【5】
发放密钥给76主机

scp /mnt/Kwestos.+157+50462.key [email protected]:/mnt/
scp /mnt/Kwestos.+157+50462.private [email protected]:/mnt/

高速缓存DNS_第44张图片
在这里插入图片描述
测试:
【1】
在172.25.254.76主机上:

 nsupdate -k Kwestos.+157+50462.private
> server 172.25.254.119
> update add hello.westos.com 86400 A 172.25.254.8
> send

在这里插入图片描述
【2】
在主dns上

vim /etc/resolv.conf
    nameserver 172.25.254.176
dig hello.westos.com

高速缓存DNS_第45张图片
【3】
在辅助dns(虚拟机desktop)上

vim /etc/sysconfig/network
     GATEWAY=172.25.254.176
vim /etc/resolv.conf
    nameserver 172.25.254.20
dig hello.westos.com

在这里插入图片描述
高速缓存DNS_第46张图片
vim /etc/resolv.conf
在这里插入图片描述
高速缓存DNS_第47张图片
十一、动态域名解析ddns

  • 一般网络设置为(dhcp)动态分配IP,那么dns域名解析的IP就变了,客户访问到的ip与主机不对应。
    但主机名不变,为保证IP变的情况下通过dig主机名查询到更改后的IP,则可以使用dhcp服务将分配的IP与主机对应关系实时更新到dns。
  • DDNS是将用户的动态IP地址映射到固定的域名解析服务器上
  • 用户每次连接网络时,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务程序
  • 服务程序负责提供DNS服务并实现动态域名解析
    也就是说DDNS捕获用户每次变化的地址,然后将其与域名相对应,这样其他上网用户就可以域名来进行交流

实验:
【1】配置yum源

在真机172.25.254.76上开启httpd服务
挂载镜像7.0  #虚拟机版本为7.0
在主dns上配置yum源
在firefox上检测真机httpd共享是否设置好
cd /etc/yum.repos.d
ls
vim /rhel_dvd.repo

1、在真机172.25.254.76上开启httpd服务高速缓存DNS_第48张图片
2、开启httpd服务
高速缓存DNS_第49张图片
3、在浏览器中搜索目录共享镜像挂载目录rhel7.0
高速缓存DNS_第50张图片
4、配置虚拟机yum源
高速缓存DNS_第51张图片
主dns(虚拟机server)上搭建dhcp进行如下操作:
【2】

yum install -y dhcp

在这里插入图片描述
【3】

firewall-cmd --permanent --add-service=dhcp  #防火墙上开启dhcp
firewall-cmd --reload   #刷新
firewall-cmd --list-all   #显示

高速缓存DNS_第52张图片
【4】

vim /etc/dhcp/dhcpd.conf #此时文件内容为空,显示参考usr/share/doc/dhcp*/dhcpd.conf.example
cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

在这里插入图片描述
在这里插入图片描述
【5】

vim /etc/dhcp/dhcpd.conf
	删除35行以后的 #esc--->dG
	7 option domain-name "westos.com"; #主dns的域
 	8 option domain-name-servers 172.25.254.176;
	14 ddns-update-style interim;
	32 subnet 172.25.254.0 netmask 225.225.225.0 {
			 range 172.25.254.50  172.25.254.90;
			 option routers 172.25.254.176;
       }    
     key westos {
			 algorithm hmac-md5;
			 secret KsAGuuY2DnMO58Oq93nPUQ==;
	  };
	  zone westos.com. {
			 primary 172.25.254.176;
			 key westos;
	  }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
高速缓存DNS_第53张图片
【6】

systemctl restart dhcpd
systemctl status dhcpd

高速缓存DNS_第54张图片
测试:
在客户端(虚拟机desktop)上
【1】

hostnamectl set-hostname test.westos.com

在这里插入图片描述
【2】

vim /etc/sysconfig/network-scripts/ifcfg-eth0 #修改网络为dhcp
vim /etc/resolv.conf
    nameserver 172.25.254.176
systemctl restart network

在这里插入图片描述
在这里插入图片描述
【3】

dig test.westos.com

高速缓存DNS_第55张图片
在服务端(虚拟机server):

dig test.westos.com

高速缓存DNS_第56张图片【4】

再次修改主dns地址池,让客户端的IP改变
主dns(虚拟机server)上:

vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd

在这里插入图片描述
客户端(虚拟机test上):

systemctl restart network
ip addr show
dig test.westos.com

高速缓存DNS_第57张图片
高速缓存DNS_第58张图片

同一网段的另一台客户端主机(真机)

vim /etc/resolv.conf
dig test.westos.com

高速缓存DNS_第59张图片
高速缓存DNS_第60张图片

你可能感兴趣的:(RHCE)