linux系统中的高速缓存(DNS)

本文详细介绍DNS服务器的搭建过程,包括权威与递归名称服务器的配置,DNS资源记录解析,以及故障排查方法。深入探讨DNS查找机制,高速缓存功能,正向与反向解析,CNAME记录,MX邮件记录,轮循解析,远程更新,辅助DNS,基于key的安全更新,DDC动态域名解析等高级主题。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

1.DNS总览

权威名称服务器

存储并提供某区域(整个DNS域或DNS域的一部分)的实际数据。

权威名称服务器的类型包括:

Master:包含原始区域数据。有时称作‘主要’名称服务器。

Slave:备份服务器,通过区域传送Master服务器获得的区域数据的副本。

有时称作‘次要’名称服务器。

非权威/递归名称服务器:

客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括

仅缓存名称服务器:仅用于查找,对于非重要数据之外的任何内容都不具有权威性。

2.DNS查找

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

3.DNS资源记录

DNS 区域采用资源记录的形式存储信息。

每条资源记录均具有一个类型 , 表明其保留的数据类型。
A : 名称至 IPv4 地址。
AAAA : 名称至 IPv6 地址。
CNAME : 名称至 ”规范名称 “( 包含 A/AAAA 记录的另一个名称 )。
PTR : IPv4/IPv6 地址至名称。
MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 )。
NS : 域名的名称服务器。
SOA :“授权起始 “ , DNS 区域的信息 ( 管理信息 )。

4.DNS排错

它显示来自DNS查找的详细信息,其中包括为什么查询失败:
NOERROR:查询成功。
NXDOMAIN:服务器提示不能存在这样的名称。
SERVFAIL:DNS服务器停机或DNSSEC响应验证失败。
REFUSED:DNS服务器拒绝回答(也许是出于访问控制)。

顶级域名(根域名) .
二级域名 .com
三级域名 baidu.com

 

地址解析记录

ptr:把ip变成域名

MX:邮件解析记录
邮件:smtp协议,简单邮件传输协议,常用软件postfix
dig -t mx qq.com

这个ip是这个域的邮件记录


一、实验搭建环境:

目的:让虚拟机可以上网查看域名解析,同时实现DNS 高速缓存的功能、

(一)、

1、在安装DNS的服务端:

修改主机的名称(方便后期实验的辨别)

 

2、修改网络配置文件,将网关设置成真机会网关(为了让虚拟机能够获取到外界网站的域名解析)

 

重启网络

 

3、检查虚拟机是否可以上网

 

4、安装named服务器(需要提前配置好yum源    详见yum源的搭建章节)

 

5、开启named服务器、关闭防火墙

(注:第一次开启服务时,加密字符字数不够。需要在虚拟里敲击键盘或者晃动鼠标,否则无法正常启动)

 

6、设置服务器指向的dns配文件

命令:vim /etc/resolv.conf
内容:nameserver 172.25.254.16

 

7、查看 named 服务器的53端口是否允许外界的ip连接

命令:netstat -antlup | grep namede 

 

如果53端口不允许外界的ip连接则要编辑 /etc/posfix/文件使端口可以对外开放

 

重启服务

查看

 

8、编辑named主配置文件
 

命令:vim /etc/named.conf

修改内容如下:

11行  any:  让53接口在任何ip上可以打开  在什么ip上开什么接口

17行 any:允许任何人来查询

18行 :forwarders { 114.114.114.114; };添加解析网络地址

32行:不限制外界的访问

 

9、重启服务、查看域名解析的结果

域名访问的时长为4379 msec

 

(二)检验高速缓存DNS的工作原理

          在从服务器上设置:

1、设置从服务器的网关使其与装有DNS服务器的虚拟机相连

重启网络

 

 

2、解析之前已经解析好的域名(解析好的域名会被缓存在DNS服务器的主机中当再次访问的时候DNS服务器将会把缓存的访问记录直接反馈给进行访问的主机从而大大节省了访问的时间)

命令:;dig www.westos.com

结论:本次访问的时长为 22 msec 比之前的访问时长4379 msec 少得多,所以高速缓存大大缩短计算机的访问时长。

 

 

二、正向解析

实验步骤:

1、修改named主配置文件

命令:dig www.westos.com

删除之前网络解析ip(目的:消除网络解析和本地解析有冲突对实验造成影响)

 

2、修改区域配置文件

(1)编辑区域配置文件

命令:vim /etc/named.rfc1912.zones

 

(2)编辑文件内容、创建域名解析的文件

 

3、编辑正向解析的文件

(1)、复制解析文件

命令:cd /var/named/
     cp -p named.localhost westos.com.zone   ##-p复制权限,如果不复制权限会查询失败
     vim westos.com.zone
     systemctl restart named

(2)编辑文件

文件详解如下:

 

(3)重启服务

 

4、在测试端测试本地解析

(1)

命令:vim /etc/resolv.conf
写入:nameserver 172.25.254.16

 

(2)

命令:dig www.westos.com

 


A地址解析记录
 

 

三、CNAME域名解析记录


       域名转换:

1、编辑文件

命令:vim westos.org.zone

 

2、测试

查询www.westos.com时,会先转到bbs.a.westos.com.再解析bbs.a.westos.com.的地址得到结果。

 

四、解析轮循:

1、编辑解析文件

命令:vim /var/named/westos.com.zone
     systemctl restart named

 

2、测试:

命令:dig www.westos.com

查询www.westos.com时,会先转到bbs.a.westos.com.再解析bbs.a.westos.com.的地址,第一次解析结果为172.25.254.222,

再次查询结果为172.25.254.111,两个地址轮循

 

 

五、MX 邮件解析记录:

1、MX 10 mail.westos.com  ##10为优先级

命令:vim /var/named/westos.com.zone
     systemctl restart named

 

2、测试:

命令:dig -t mx westos.com


3、邮件的发送

给westos.com发送邮件,实际上是给自己发送邮件

 

 

 

六、方向解析

1、编辑区域配置文件创建反向解析文件

命令:vim /etc/named.rfc1912.zones

写入:
zone "254.25.172.in-addr.arpa" IN {
         type master;
         file "172.25.254.ptr";
         allow-update { none; };

重启服务

 

2、编辑反向解析文件

命令:cd /var/named/
     cp -p named.localhost  172.25.254.ptr
     vim 172.25.254.ptr
     systemctl restart named

重启服务

 

3、测试:

 

 

七、双向解析

控制域名能被谁解析,不同客户得到不同的地址

1、复制正向解析的配置文件

命令:cd /etc/named/
     cp  -p westos.com.zone westos.com.inters
    

(注:复制时一定要加 -p 权限也复制否则系统将无法读取改文件)

2、编辑复制好的文件

命令:; vim westos.com.inters

 

3、区域配置文件的编辑

 

(1)复制区域文件

命令:cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters

 

(2)编辑复制好的区域文件

命令:vim /etc/named.rfc1912.inters

 


4、主配置文件的编辑

(1)编辑主配置文件

命令:vim /etc/named.conf         ##编辑主文件
     systemctl restart named     ##重启服务

 

(2)通过 man  5 named.cof 的方法查询相关的修改语法

 

(3)、编辑主配置文件内容如下:

重启服务

 

4、编辑双向解析的的文件

(1)主文件:

 

(2)外部主机的文件:

 

5、测试:

(1)本地登录:

 

(2) 外部主机登录:

 

 

 

 

八、辅助DNS


访问dns人过多,访问压力过大,一台主机不能负载。

//注释后表示所有主机都可以访问

dns服务重启的时候同步唯一一次

不对比内容
serial 查看这个值 如果发生改变 立即同步
最多10位
2019100301

dns集群:变一个其他的都变

实验:
准备:还原双向解析

1>配置server主机--->辅助dns上

 

vim /etc/yum.repos.d/yum.repo  ##配置yum源
yum install bind -y  ##安装服务
systemctl start named  ##开启服务,开启时需要在虚拟机里敲键盘或晃动鼠标
systemctl stop firewalld ##关闭火墙

 

 

(2)设置dns

命令:vim /etc/resolv.conf   ##设置dns
     nameserver 172.25.254.166 

 

(3)编辑主配置文件

命令:vim /etc/named.conf  

 

(4)编辑区域配置文件

命令:vim /etc/named.rfc1912.zones
     systemctl restart named

 

2、在主机上测试:

(1)配置区域配置文件

命令:vim /etc/named.rfc1912.zones

 

(2)查看解析文件

 

3、测试:

在主机上:

 

在测试机上:

 

修改解析文件

 

重启系统

在测试机上检测被更新后的地址解析

总结:每次更改A记录文件后必须更改serial的数值,这个数值最大10位

 

 

九、远程更新:

1、备份

命令:cp -p westos.com.zone /mnt/  ##备份westos.com.zone
     

 

2、编辑区域配置文件

(1)编辑区域配置文件

命令:vim /etc/named.rfc1912.zones

 

(2)、重启服务、添加权限

命令:systemctl restart named     ##重启服务
     chmod g+w /var/named/       ##添加文件写的权限

 

3、查看selinux的状态

命令:getenforce  
  
编辑 /etc/sysconfig/selinux 文件
将 selinux 的状态改成 disable

 

4、测试机上连接主机的ip

 

5、测试

(1)在测试端对dns主机进行更新

 

(2)、在服务端查看更新的内容

重启服务后更新的内容将会被保存到配置文件中

 

(3)、删除更新的内容

测试端:

服务端:

 

 

6、还原实验环境

 

 

 

十、基于key的远程更新

1、加密:

命令:dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey  ##-a 加密方式,-b 加密字符度,-n 加密用途ls

创建存放密钥的目录

 

2、创建加密文件

命令:cp -p /etc/rndc.key  /etc/westos.key
     vim /etc/westos.keycp -p /etc/rndc.key  /etc/westos.key
     vim /etc/westos.key

(1)、复制加密字符串

查看加密文件的格式和

 

(2)复制加密文件

 

(3)、编辑加密文件

 

3、编辑主配置文件

命令:vim /etc/named.conf

(1)编辑主配置文件

(2)、添加加密文件

 

 

4、编辑区域配置文件

命令:vim /etc/named.rfc1912.zones
     allow-update { key westoskey; }; ##指定westos域可以被westoskey更新

重启服务

 

 

5、测试:

测试端:

(1)普通更新

(注:更新失败,因为没有密钥)

 

(2)、将公钥和私钥传给测试端

命令:scp Kwestos.+157+49396.* root@172.25.254.218:/mnt/

查看收到的公钥和私钥

 

(3)、以加密的形式进行更新

命令: nsupdate -k Kwestos.+157+49396.private
    > server 172.25.66.77
    > update add linux.westos.com 86400 A 172.25.66.99     
    > send
    > quit

 

(5)、服务端查看更新的内容

 

服务端没有重启之前更新的内容不被写入文件

 

服务端更新之后

 

 

6、还原实验环境

 

 

 

十一、ddc(花生壳)

花生壳实验环境的搭建

1、安装 dhcp 服务、复制 dhcpd.conf 文件

yum install dhcp -y
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf

 

 

2、编辑 dhcpd.conf 文件

解析的ip是固定的,但主机ip可能会环发生改变(dhcp分配ip)

(1)、修改域名以及定义DNS客户端的ip地址

 

(2)、开启dhcp更新dns的功能

 

(3) 删除原文件的27至28 行以免给实验造成影响

 

(4)编辑网段

 

(5)添加更新dns时用到的加密文件

 

 

 

步骤总结:

 

3、各户端:

(1)修改主机名

hostnamectl set-hostname news.westos.com  ##更改主机名为news.westos.com,这个名称在原有的dns服务中是没有解析的
hostname     ##确定把ip给了哪台主机 

(2)、编辑测试机网卡配置文件

 

4、查看地址解析

缩小ip范围再测试一次
查看主机ip和解析ip是否一致

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值