DNS高速缓存

article/2025/10/7 8:04:17

DNS相关资料:

1.什么是DNS
 DNS(Domain Name System域名系统)
       是互联网上存储域名和ip映射关系的一个分布式数据库,它负责把域名转换成ip地址,或ip地址转换为域名。DNS运行于TCP/UDP的53端口上。
2.什么是高速缓存DNS
       DNS服务器可以高速缓存从其他DNS服务器收到的DNS记录,也可以在DNS客户服 务中使用高速缓存,将其作为DNS客户端保存在最近的查询过程中得到的信息高速缓存的方法
3.DNS高速缓存的作用
       当某个访问请求解析过一个域名以后,该解析记录就放置在缓存中,以后再有同样的解析请求,就直接从缓存中提供结果,加快了访问者的应答速度。

DNS服务器部署

简介:

        DNS(Domain Name Server)是基于tcp和udp协议的服务;实现IP与域名之间的映射;就像我们生活中的身份证号与名字之间的 映射一样。

       在互联网这个大环境中,我们平时上网使用的都是类似于www.baidu.com的域名,这是我们人类易读的互联网,但是在实际的数据传输中,我们用到的都是ip地址,计算机无法直接识别我们常用的域名,因此我们就需要一个在我们和计算机之间做翻译的服务,而这个服务就是DNS。DNS是基于tcp和udp协议的服务,用于我们日常的域名解析帮助我们在域名和ip地址中相互转换,DNS所用端口为53端口,在linux中dns服务的服务名为named,安装包为bind,一般情况下我们可以在linux系统中直接通过“yum -y install bind”即可安装我们需要的DNS服务。

        我们的域名作为数据存储在世界上13台根DNS服务器上,当我们需要查找域名时就会去这13台服务器去访问然后就会告诉你你询问的域名所对应的ip

   DNS解析过程:

客户端先查看浏览器缓存和本地host文件,本地DNS解析缓存,没有的话就交给本地域名解析服务器(由运营商提供),本地域名缓存解析服务器收到解析请求后,先看本地缓存有没有,如果没有直接找域名根服务器,根收到www.google.com这个请求时,会说不明白在哪里,但是根节点服务器会返回.com给本地域名解析服务器,然后本地域名解析服务器再找.com,找到后,再找google.com,最终找到www.google.com这个主机

DNS分布

DNS查询过程

解析:

(1)将域名,主机名解析对应的ip地址          正向解析
(2)将IP地址解析成对应的主机名,域名     反向解析    

详细的请求的顺序为:

  1. 客户端Host文件标识
  2. 客户缓存
  3. 服务器区域设定
  4. 服务器缓存
  5. 其它服务器

环境:

[root@foundation1 ~]#            //主机:172.25.1.250

[root@server1 ~]#                   //(服务器端)server1:17225.1.1

[root@server2 ~]#                   //(客户端)    server2:17225.1.2

DNS高速缓存

服务器端:

[root@server1 named]# systemctl start named  
[root@server1 named]# systemctl enable named
[root@server1 named]# systemctl stop firewalld
[root@server1 named]# systemctl disable firewalld

[root@server1 named]# yum install -y bind              //下载所需软件

[root@server1 named]# vim /etc/named.conf

options {
        listen-on port 53 { any; };               //设置默认ip为所有                             
        listen-on-v6 port 53 { ::1; };                                               
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query { any; };                                     //设置所有访问均允许                   
        forwarders {172.25.1.250;};                         //dns高速缓存,指向其它DNS服务器                                            

        dnssec-validation no;                     //不做互联网认证

[root@server1 named]# systemctl restart named

[root@server1 ~]# netstat -antlp | grep named

[root@server1 named]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=172.25.1.250               //设置网关为主机

[root@server1 named]# systemctl restart network


[root@server1 named]# vim /etc/resolv.conf           //配置主配置文件

nameserver 192.168.43.1                  //设置所需的dns


 

在客户端查询域名对应ip:

[root@server2 ~]# vim /etc/resolv.conf                   //将所需测试的主机设置为dns

[root@server2 ~]# dig www.baidu.com

耗时为1

[root@server2 ~]# dig www.baidu.com

耗时为0

//这说明DNS的高速缓存已经配置成功,显示出了dns缓存的目的,访问速度加快了

 

DNS正向解析

服务器端:

[root@server1 ~]# vim /etc/named.conf

#       forwarders {172.25.1.250;};                 //注释掉其中的forwarders那行,取消向其他主机询问,自己充当DNS

[root@server1 ~]# vim  /etc/named.rfc1912.zones                   //也是named的配置文件,单独列出

zone"westos.com"IN{                      ##域名
    type master;
    file"westos.com.zone";     ##正向解析域名文件
    allow-update{none;};
   };

[root@server1 ~]# cd /var/named
[root@server1 named]# cp -p named.localhost westos.com.zone              //利用该模板生成正向解析域名文件
[root@server1 named]# vim westos.com.zone                        ##编辑域名解析文件

$TTL 1D                       //生存期, 默认单位为秒,另可设定为[W|D|H|M] 
@       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.1.100                //地址解析服务端
hello   A     172.25.1.200               //自定义域名解析         

 

  •         NS      @                     ; 直接输入域名,访问@  
  •         A       127.0.0.1          ; 直接输入域名,解析到的IPV4的IP  
  •         AAAA    ::1                 ; 直接输入域名,解析到的IPV6的IP  

     

注释:
@ 相当于子配置文件中“ ”中所写的值,SOA相当于授权
1D 表示数据内容自动保存一天

[root@server1 named]# systemctl restart named


在客户端测试:

[root@server2 ~]# vim /etc/resolv.conf

nameserver 172.25.1.1                          //确认添加nameserver 172.25.1.1

[root@server2 ~]# dig  hello.westos.com

[root@server2 ~]# dig  dns.westos.com

正向轮询域名解析

服务器端:

[root@server1 named]# 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.1.100
hello   A     172.25.1.200
www    CNAME  node1.westos.com.
node1   A     172.25.1.110
node1   A     172.25.1.220

//CNAME 表示把规范名称转化为不规范名称

[root@server1 named]# systemctl restart named

在客户端测试

[root@server2 ~]# dig www.westos.com

[root@server2 ~]# dig www.westos.com


此时可以看到自动交替访问两个ip


DNS反向解析

服务器端:
vim /etc/named.rfc1912.zones            //将正向解析注释掉

zone "1.25.172.in-addr.arpa" IN {                    //域名对应的ip反向写,表示的是172.25.1这个ip段
        type master;
        file "westos.com.ptr";                //域名反向解析文件
        allow-update { none; };
};

[root@server1 named]# pwd

[root@server1 named]# cp -p named.localhost westos.com.ptr               //用该模板拷贝出反向解析域名文件

[root@server1 named]# vim westos.com.ptr             //编辑域名反向解析文件      

$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.1.150                         //地址解析服务端
222     PTR       hello.westos.com.                //反向解析的自定义内容
111     PTR       linux.westos.com.     

[root@server1 named]# systemctl restart named

在客户端测试:
dig -x 172.25.254.111


dig -x 172.25.254.222          //其中 -x 表示反向

DNS集群-----主从DNS

环境:

服务器端:     主DNS(server1):    172.25.1.1                     从DNS(server3):    172.25.1.3

客户端:          server2:    172.25.1.2

三台主机均配置好yum源

服务器端:
主DNS:

[root@server1 ~]# vim /etc/named.rfc1912.zones

 zone "westos.com" IN {
      type master;
      file "westos.com.zone";
        allow-update { none; };
        allow-transfer{172.25.1.2;};
        also-notify{172.25.1.2;};                               //从DNS的ip
 };

systemctl restart named

从DNS:

[root@server3 ~]# yum install -y bind

[root@server3 ~]# systemctl start named

[root@server3 ~]# vim /etc/named.conf

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

[root@server3 ~]# vim /etc/named.rfc1912.zones

zone "westos.com" IN {
        type slave;               //将其设置为slave(备)
        masters{172.25.1.1;};                //主dns的ip
        file "westos.com.zone";
        allow-update{ none; };
};

[root@server3 ~]# systemctl restart named


在服务端测试:

[root@server2 ~]# vim /etc/resolv.conf              //修改nameserver为从DNS的ip

[root@server2 ~]# dig hello.westos.com

主DNS修改后测试,则从DNS自动更新

[root@server1 named]# 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.1.100
hello  CNAME  www
www     A     172.25.1.115
www     A     172.25.1.116

//修改后的域名解析文件

客户端进行测试

[root@server2 ~]# dig hello.westos.com

DNS的双向解析

实现内外网的分离

 

vim /etc/named.conf
注释掉
/*
zone"."IN{          
    type  hint;
    file"westos.ca";     
    };
include "/etc/named.rfc1912.zones;"
include "/etc/named.root.key";
*/

view localhost {
    match-clients {172.25.254.106;};
    zone "." IN {
      type  hint;
      };   
include "/etc/named.rfc1912.zones;"
    };
view Anynet {
    match-clients {any;};
    zone "." IN {
      type  hint;
      file "named.ca";
      };   
include "/etc/named.rfc1912.inter";
    };                       ##实现内外网分离

zone到key";
实现内外网的分离
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter  ##外网配置文件
vim /etc/named.rfc1912.inter
zone"westos.com"IN{            
    type master;
    file"westos.com.inter";
    allow-update{none;};
cd /var/named
cp -p westos.com.zone    westos.com.inter
vim westos.com.inter             ##外网域名解析文件
客户端测试
vim /etc/resolv.conf          ##为两个网络段的客户端配置nameserver
dig www.westos.com

DNS的远程更新(稍后补充)

  • 基于正常认证方式的远程更新
  • 基于key认证的远程更新
  •  

DNS动态域名解析(稍后补充)


http://chatgpt.dhexx.cn/article/grDgVv7b.shtml

相关文章

DNS 缓存、CDN 缓存、浏览器缓存,JVM DNS 缓存详解

最近测试遇到修改host文件后,清除浏览器缓存后,重启浏览器后,发现浏览器还是访问老DNS服务,于是网上查查原因,豁然开朗。 这里对互联网上一些文章进行整理,原文可查看参。 1、DNS 缓存 1.1 什么是DNS 全…

2020年IT技术趋势概览

RW网站发布了2020最新技术发展趋势及2019数据统计,几乎涵盖了IT,通信,AI等领域的所有技术。 语言方面,python发展最快,使用最多的是JS 5G,BI,区块链都在2019年有了爆炸式的发展

中国未来IT展望

我感觉中国IT市场是非常有潜力的,还有很多未知领域可以探索。首先,信息安全应该得到充分保障:使用复杂的量子纠缠技术加密等。同时,通信的速度与质量也可能大大提升:网速达到6G甚至7G,网络延迟基本为0.....…

计算机前沿技术介绍

一、区块链 1. 什么是区块链? 区块链起源于比特币区,块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特…

如何学习一项新的IT技术

本文总结新技术学习经验和方法,探讨如何能更高效的更成体系的完成一项IT技术的学习和提升。如何评价掌握了一项IT新技术?可以分为以下三个阶段: 掌握了原理和理念; 有动手实践和配置管理能力; 有排错能力&#xf…

新技术之互联网+

“互联网”是把互联网的创新成果与经济社会各领域深度融合,推动技术进步、效率提升和组织变革,提升实体经济创新力和生产力,形成更广泛的以互联网为基础设施和创新要素的经济社会发展新形态。2015年,国务院发布了《关于积极推进“互联网"行动的指导意见》。 “互联网”有六…

IT圈最近比较火热的技术都是哪些?

前言 如果现在要问什么行业最火,毋庸置疑,会有很多人第一反应回答是IT行业。众所周知,近些年互联网行业的高速发展,IT技术不断推陈出新,各种技术更新迭代周期越来越快,涌入IT技术开发的人员也是成倍增长&am…

盘点2021年九大新技术趋势,也是2022需要关注和学习的

目录 1. 人工智能 (AI)和机器学习 2. 机器人流程自动化 3. 边缘计算 4. 量子计算 5. 虚拟现实和增强现实 6. 区块链 7. 物联网 8. 5G 9. 网络安全 今天的技术正在快速发展,带来更快的变化和进步。然而,不仅技术趋势和新兴…

Android系统签名jks文件

Android Studio普通应用-》系统应用 在android framework开发过程中,通常使用系统应用在验证某些功能,(系统功能权限大,可以通过反射获取hide接口,便于功能调试)。 一般做法,是将AndroidStudio…

[APK签名] .pk8、.x509.pem转化为.keystore签名

.pk8、.x509.pem转化为.keystore签名 利用Android系统签名 platform.pk8 和 platform.x509.pem 生成Android Studio需要的Apk签名文件xxx.keystore 一、下载工具 需要使用到 keytool-importkeypair 这个工具 keytool-importkeypair 下载路径如下: https://github…

安卓源码下apk进行platform签名的方法

目录 一 任意目录下创建一个文件夹 二 该目录下需要准备的5个文件 三 执行命令 四 生成结果 一 任意目录下创建一个文件夹 二 该目录下需要准备的5个文件 上述五个文件, 前四个可以从编译好的安卓源码工程目录下复制, 第五个是自己需要签名的apk文件 …

通过.pk8及.pem文件生成Android studio使用的keystore文件。

一、工具准备:OpenSSL、Android studio。 目录 一、准备工具: 二、使用OpenSSL生成key.pem及platform.p12 1. 找到OpenSSL安装路径C:\OpenSSL-Win64\bin,点击文件路径,输入cmd并回车。 2. 在cmd中输入指令将platform.pk8生成…

BeyondCompare4

将以下操作保存为bat文件(新建txt,然后将后缀改为bat),然后双击运行即可。 reg delete "HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4" /v CacheID /f 这个操作是删除BeyondCompare4注册表里CacheID的值; 另外…

Android签名机制-签名过程详解

目录 一、前言 二、准备知识 1、数据摘要 2、签名文件和证书 3、jarsign和signapk工具 4、keystore文件和pk8,x509.pem文件的区别 5、手动的签名Apk包 三、分析Android中签名流程机制 1、MANIFEST.MF 2、下面再来看一下CERT.SF文件内容 3、最后我们在来看…

Android系统证书 platform.x509.pem platform.pk8转换为.keystore文件

我们在进行Android开发的时候,如果开发的是系统应用,都需要系统的签名才能正常运行。而系统应用一般是把代码统一放到系统代码库中跟随系统一起编译。而如果我们想用Android Studio单独开发某个应用而使用系统签名的时候,有两种开发的方式,一…

android 通过platform.pk8,platform.x509.pem生成jks签名文件

用途:通过系统签名文件生成android studio调试用的jks签名文件 1.将keytool-importkeypair-master文件(见附件)放系统源码下,拷贝源码下的platform.pk8,platform.x509.pem,signapk.jar到此文件根目录下 build/make/target/product/security/…

pem与.pk8转platform.keystore方法

拿到系统签名通常是这样的 或者是(当然是删减版核心版了) 那我们想要 怎么办???? 首先得有linux环境吧,这个要求一点都不过分呢! 如果你电脑本身就是linux,我想下面的步骤都得心应…

pk8/x509.pem转换为keystore

背景 我们都知道AndroidManifest.xml配置如下属性 android:sharedUserId"android.uid.system"复制代码 直接运行是跑不起来的,我们只有拿到了平台的pk8/x509.pem文件通过如下签名命令: java -jar signapk.jar platform.x509.pem platform.…

Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件

Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件 文章目录 Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件前言一、环境配置二、使用步骤 前言 平常工作中用android studio开发系统app需要用到系统签名,但是直接用 java -jar signa…

【Android】Android签名:pem和pk8转化为keystore,jks

Android签名,pem和pk8转化为jks Android签名证书Android签名JKSJKS签名生成How to use扩展 jks 转pem/pk8 Android签名证书 前因 最近更换了硬件设备,硬件厂商给了签名的pem,pk8,最新的版本没有给keystore,虽然现在使用jks了,实在没办法,就自己生成吧在AndroidMenifest.xml配…