高速缓存dns

1. DNS: Domain Name System,域名系统。 万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网。他主要负责把域名和IP的相互转换,DNS运行与TCP|UDP的53端口上。
2. 高速缓存DNS:DNS服务器可以高速缓存从其他DNS服务器收到的DNS记录,也可以在DNS客户服务中使用高速缓存,将其作为DNS客户端保存在最近的查询过程中得到的信息高速缓存的方法
3. 高速缓冲DNS的作用:当一个主机第一次访问一个网页的时候,该主机的DNS服务器以从远处的服务器拿到数据,并进行高速缓存;这样在主机或者其他主机进行下一次访问的时候,可以直接从该主机的高速缓存中直接获取,这样的方式叫做高速缓存
4. dns资源记录:DNS区域采用资源记录的形式存储信息,每条资源记录均具有一个类型,表明其保留的数据类型
A:名称到IPv的地址
AAAA:名称到IPv6的地址
CNAME:名称到“规范名称”(包含A/AAAA 记录的另一个名称)
PTR:IPv4/IPv6地址到名称
MX:用于名称的邮件交换器(向何处发送其电子邮件)
NS:域名的名称服务器
SOA:“授权起始”,DNS区域的信息(管理信息)
5. dns排错:
它显示来自DNS查看的详细信息,其中包括为什么查询失败:
NOOERROR:查询成功
NXDOMAIN:DNS服务器提示不存在这样的名称
SERVFAIL:DNS服务器停机或DNSSEC响应验证失败
REFUSED:DNS服务器拒绝回答(也许是出于访问控制原因)

<高速缓存DNS的搭建>

在服务端:配置网络,添加网关,使得作为服务器的主机连接外网。关闭防火墙

在这里插入图片描述

   yum install bind.x86_64 -y   安装服务systemctl start named       启动服务systemctl enable named     设置服务开机自动启动ls -ld /etc/rndc.key	      开启named服务后可以看到此文件生成

这个开启时,需要自动生成加密文件/etc/rndc.key,注意启动过程太慢后者卡住不不动也许是因为系统加密字符不够导致的。可以通过在server端上敲击键盘或移动鼠标来增加无序字符来解决该问题。

在这里插入图片描述

修改配置文件 /etc/named.conf

在这里插入图片描述

在这里插入图片描述
改好之后重启一下服务
systemctl restart named

在客户端设置:
修改DNS解析服务器IP /etc/resolv.conf
在这里插入图片描述
完了之后呢测试一下:
在客户端试一下dig www.qq.com
在这里插入图片描述
在这里插入图片描述
第二次 dig www.qq.com
当再次访问时,DNS将查询信息已经缓存,此时迅速进行域名解析(即达到高速缓存)

<正向解析>

正向解析:当DNS客户端请求解析某个域名时,DNS服务器通过正向查找,并返回给DNS客户端对应的IP地址。就是将域名转换成ip地址
1.DNS中的配置文件:
#主配置文件:/etc/named.conf
#子配置文件:/etc/name.rfc1912.zones
#数据目录:/var/named
接下来看操作:
服务端:

              vim /etc/named.conf            进入主配置文件中把forwarders这行的内容删除或注释掉,并使服务重启

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

进入数据目录并进行查看,然后将正向解析配置模板在此目录下复制以便于创建解析库文件

         cd /var/namedcp -p named.localhost westos.com.zone

.复制时一定要注意加-p,因为要将其权限和属性一起复制
在这里插入图片描述

进入到子配置文件中修改配置文件

     vim /etc/named.rfc1912.zones

在配置文件中增加以下内容:

         zone "westos.com" IN {type master;file "westos.com.zone";allow-update { none; };};

在这里插入图片描述
在这里插入图片描述
进入解析库文件,修改其中的内容,其解析库文件中的语法相当严格,不能有半点错误。

       vim /var/named/westos.com.zone       进入解析库文件$TTL 1D@       IN SOA  dns.westos.com.  haha.westos.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      dns.westos.com.
dns     A       192.168.50.128
www     CNAME   bbs.a.westos.com.
bbs.a   A       192.168.50.11

客户端:
进入/etc/resolv.conf中,并为其添加解析域以及ip
将其的dns服务器地址改成高速缓存dns主机ip

测试:
使用dig命令可以查看到www.westos.com解析的ip以及dns服务器名称和dns服务器ip
在这里插入图片描述

<DNS域名转换>
相当于一个域名对应两个ip
客户端:vim /var/named/westos.com.zone
往里面加入
bbs.a A 192.168.50.11
bbs.a A 192.168.50.22
在这里插入图片描述

在这里插入图片描述

在客户端测试:
第一次dig www.westos.com
在这里插入图片描述

在dig一次看哈
在这里插入图片描述
同一个域名再进行访问的时候,解析出来的地址轮换出现,减缓服务器的访问压力。

<反向解析>
用于IP地址到域名的映射,当DNS客户端请求解析某个IP地址时,DNS服务器通过反向查找,并返回给DNS客户端对应的域名。也就是将IP转换成域名。

在服务端:
vim /etc/named.rfc1912.zones
在配置文件中加入以下内容
在这里插入图片描述

进入/var/named目录,将反向解析的模板复制到172.25.254.ptr文件

     cd /var/namedcp -p named.loopback 192.168.50.ptr

在这里插入图片描述编辑文件192.168.50.ptr 并添加内容如下
在这里插入图片描述
都改好之后重启服务一下

在客户端测试:在这里插入图片描述

在这里插入图片描述
-x 表示反向解析

<DNS双向解析>
解释:双向解析即在不同的主机中,当访问同一个域名时,会出现不同的ip。

将正向解析库进行复制,并编辑文件中的内容

    cp -p westos.com.zone westos.com.intervim westos.com.inter

在这里插入图片描述

将子配置文件进行复制,并编辑文件中的内容

      cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.intersvim /etc/named.rfc1912.inters

在这里插入图片描述
在服务端中进入主配置文件修改以下内容并生效

      vim /etc/named.confsystemctl restart named

在这里插入图片描述
查看服务端和客户端的域名是否都是服务端的ip

    vim /etc/resolv.conf

服务端解析

在这里插入图片描述
客户端解析

在这里插入图片描述
实验做完后,一定要将主配置文件中的域的解析进行还原,否则会影响接下来的实验

<辅助dns>
是指:两台主机组成的功能的集合(变一个都变),之所以创建集群,是因为如果访问dns的人过多,可能会崩溃,所以需要添加另外一个服务器辅助dns,缓解访问压力,完全同步主dns。
首先在客户端安装named服务并进行重启

     yum install bind.x86_64 -y             安装systemctl start named.service          开启systemctl enable named.service         开机自启systemctl stop firewalld.service       关火墙

在这里插入图片描述
进入/etc/resolv.conf文件中,将域名写成本机的ip

  vim /etc/resolv.conf

在这里插入图片描述

进入子配置文件修改以下内容

        vim /etc/named.rfc1912.zones

在这里插入图片描述
进入主配置文件并使其生效

       vim /etc/named.confsystemctl restart named

在这里插入图片描述
进入服务端的子配置文件

    vim /etc/named.rfc1912.zonessystemctl restart named

在这里插入图片描述
进入正相解析库中并修改其域名所对应的ip并重启服务

   vim /var/named/westos.com.zonesystemctl restart named

在这里插入图片描述
在服务端解析 www.westos.com
在这里插入图片描述

在客户端解析 www.westos.com

在这里插入图片描述
如果之前辅DNS已经同步过主DNS,则需要使用命令rm -rf slaves/*进行删除并进行重启,因为辅DNS只是服务在重启的时候才会同步,只同步唯一的一次,所以当主DNS中的数据发生变化时,辅DNS中的内容不会变

改变服务端DNS的数据,重启服务

       vim westos.com.zonesystemctl restart named

在这里插入图片描述
在服务端解析

在这里插入图片描述
在客户端解析。发现其DNS数据没有发生改变,和之前一样,再次重启服务后,依旧没有发生改变,说明辅DNS只同步一次
在这里插入图片描述
在服务端进入/var/named/westos.com.zone文件中,修改DNS的数据并修改其seria的值,之后重启服务

      vim westos.com.zonesystemctl restart named

在这里插入图片描述
在服务端解析

在这里插入图片描述
在客服端解析

在这里插入图片描述
DNS数据也发生了改变,说明同步成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python log日志级别_python – 日志记录:如何为处理程序设置最大日志级别

您可以向文件处理程序添加过滤器.这样,您可以将特定级别重定向到不同的文件.import loggingclass LevelFilter(logging.Filter):def __init__(self, low, high):self._low lowself._high highlogging.Filter.__init__(self)def filter(self, record):if self._low < recor…

Python Pandas –合并,联接和串联

There are three main ways to combine dataFrames i.e., merging, joining and concatenating. The following examples will illustrate merging, joining and concatenation. 组合dataFrames的主要方法有三种&#xff0c;即合并&#xff0c;联接和串联 。 以下示例将说明合并…

Apache服务配置

1. apache 企业中常用的web服务。用来提供http&#xff1a;//&#xff08;超文本传输协议&#xff09; 基础信息&#xff1a; 主配置目录&#xff1a; /etc/httpd/conf 主配置文件&#xff1a; /etc/httpd/conf/httpd.conf 子配置目录&#xff1a; /etc/httpd/conf.d/ 子配置文…

git 怎么查看合并过来哪些代码_git整理纷乱的历史合并记录

https://github.com/Epix37/Hearthstone-Deck-Tracker以上面版本库的master分支为例父节点1SHA-1: a21142968282ae49720cf30a0f18290b2ce74b3a* remove hotkey from config if action could not be found, fix hotkey menu item name父节点2SHA-1: 86a824e8f46005db91f334dfc57…

如何安装Genymotion虚拟机以及Genmotion的eclipse插件

---内容开始--- - 首先去genymotion的官网去下载其安装文件 资源下载 Genymotion官网必须注册一个账号这个账号安装之后还有用的&#xff0c;用户名最好用网易126邮箱注册----我下载的是2.8.0的版本(注&#xff1a;注册前先开个代理服务器不然页面打不开下载时最好用迅雷下载这…

java system类_Java System类mapLibraryName()方法及示例

java system类系统类mapLibraryName()方法 (System class mapLibraryName() method) mapLibraryName() method is available in java.lang package. mapLibraryName()方法在java.lang包中可用。 mapLibraryName() method is used to map a given library name into a platform-…

squid服务配置(正向、反向代理)

代理&#xff1a; 就是代理网络用户去取得网络信息。 Squid是一种用来缓冲Internet数据的软件。安装Squid服务实现代理缓存服务器功能。 正向代理&#xff1a;意思是一个位于客户端和原始服务器之间的服务器&#xff0c;为了从原始服务器取得内容&#xff0c;客户端向代理发送一…

家谱整站源码php_mysql家谱表查询某人所有后代

CREATE TABLE people (id INT(11) NOT NULL,name VARCHAR(50) NULL DEFAULT NULL,pid INT(11) NOT NULL DEFAULT 0,PRIMARY KEY (id));CREATE DEFINERroot% PROCEDURE getChildren(IN parentId INT)LANGUAGE SQLNOT DETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT 获取…

React 入门学习笔记2

摘自阮一峰&#xff1a;React入门实例教程&#xff0c;转载请注明出处。 一、获取真实的DOM节点 组件并不是真实的 DOM 节点&#xff0c;而是存在于内存之中的一种数据结构&#xff0c;叫做虚拟 DOM &#xff08;virtual DOM&#xff09;。只有当它插入文档以后&#xff0c;才会…

c语言getchar函数_C语言中带有示例的getchar()函数

c语言getchar函数C语言中的getchar()函数 (getchar() function in C) The getchar() function is defined in the <stdio.h> header file. getchar()函数在<stdio.h>头文件中定义。 Prototype: 原型&#xff1a; int getchar(void);Parameters: FILE *filename(f…

python及pycharm

1.python简介&#xff1a; Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言&#xff0c;最初被设计用于编写自动化脚本(shell)&#xff0c;随着版本的不断更新和语言新功能的添加&#xff0c;越来越多被用于独立的、大型项目的开发。 python最重要的功能&am…

anaconda如何更改环境配置_手把手教新手安装Anaconda配置开发环境

Anaconda是针对Python的集成环境&#xff0c;它已经成为全球数千万数据科学从业人员必备的开发工具&#xff0c;帮助人们有效地解决数据科学和机器学习相关地问题。如果你想从事数据科学和机器学习的工作&#xff0c;可以从本文开始&#xff0c;了解一下如何安装Anaconda。1. 初…

详解摘要认证

1. 什么是摘要认证摘要认证与基础认证的工作原理很相似&#xff0c;用户先发出一个没有认证证书的请求&#xff0c;Web服务器回复一个带有WWW-Authenticate头的响应&#xff0c;指明访问所请求的资源需要证书。但是和基础认证发送以Base 64编码的用户名和密码不同&#xff0c;在…

Python的基础知识

1.注释&#xff1a; #单行注释ctrl / 批量注释&#xff0c;选中需要注释的所有行ctrl / 批量取消注释&#xff0c;选中已经被注释的所有行 块注释&#xff1a;上下各三个双引号的部分全部被注释 “”“ hello haha ”“”2.变量&#xff1a; 变量命名的规则&#xff1a; …

树莓派该文件名_树莓派:文本编辑器与文件

GNU nano是Unix系统下一款常用的文本编辑器&#xff0c;以简单易用著称。与之相比&#xff0c;功能更强大的Vi和Emacs编辑器&#xff0c;学习曲线比nano陡峭很多。由于nano对于一般的文本编辑来说已经足够&#xff0c;所以我想简单介绍一下&#xff0c;以便于更好入门。基本使用…

Java SimpleTimeZone setStartYear()方法与示例

SimpleTimeZone类setStartYear()方法 (SimpleTimeZone Class setStartYear() method) setStartYear() method is available in java.util package. setStartYear()方法在java.util包中可用。 setStartYear() method is used to set the DST (Daylight Savings Time) starting y…

报表在IBM AIX系统下resin部署

&#xfeff;&#xfeff;报表是用java开发的&#xff0c;具有良好的跨平台性。不仅可以应用在windows、linux、操作系统&#xff0c;还可以应用在AIX等等的unix操作系统。在各种操作系统上部署过程有一些差别。下面说一下在AIX操作系统的部署的步骤。 1. 首先&#xff0c;下载…

python——if语句、逻辑运算符号

1.if条件判断语句&#xff1a; if 要判断的条件(True):条件成立的时候&#xff0c;要做的事情 elif 要判断的条件(True):.... elif 要判断的条件(True):.... else:条件不成立的时候要做的事情示例&#xff1a; 判断学生分数等级&#xff1a; 100——90&#xff08;包括90&…

sox处理mp3_使用SoX将mp3文件拆分为TIME秒

I need to split mp3 file into slices TIME sec each. Ive tried mp3splt, but it doesnt work for me if output is less than 1 minute.Is it possible do do with:sox file_in.mp3 file_out.mp3 trim START LENGTHWhen I dont know mp3 file LENGTH解决方案You can run SoX…

Java ObjectOutputStream writeInt()方法及示例

ObjectOutputStream类writeInt()方法 (ObjectOutputStream Class writeInt() method) writeInt() method is available in java.io package. writeInt()方法在java.io包中可用。 writeInt() method is used to write the given 4 bytes of an integer value. writeInt()方法用于…