【RHCE服务搭建实验】之DNS

目录

    • 一、DNS简介
    • 二、安装DNS

一、DNS简介

域名系统(DNS)是一个分层的分布式数据库。它存储用于将Internet主机名映射到IP地址(反之亦然)的信息、邮件路由信息以及Internet应用程序使用的其他数据。
客户端通过调用解析器库在DNS中查找信息,解析器库向一个或多个名称服务器发送查询并解释响应。BIND 9软件发行版包含一个名称服务器,named和一个名为liblwres的解析器库。
1、域名的系统结构
域名分为根域、顶级域、二级域、三级域和主机名这5类。
一般格式为“主机名.三级域.二级域.顶级域.”,后面这个点表示根域,在浏览器下不用输入。
在这里插入图片描述
2、域名服务器的分类

域名服务器可分为主域名服务器,辅助域名服务器,缓存域名服务器和转发服务器。

3、dns域名解析的过程
第一步:本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。
第二步:如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果,windows中可以通过配置C:\Windows\System32\drivers\etc\hosts文件来设置,Linux中可以通过/etc/hosts文件来设置。
第三步:前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个本地DNS服务器。每个完整的内网通常都会配置本地DNS服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地DNS服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约80%的域名解析到这里就结束了,后续的DNS迭代和递归也是由本地DNS服务器负责。
第四步:如果本地DNS服务器仍然没有命中,就直接到根DNS服务器请求解析。
第五步: 根DNS服务器返回给本地DNS域名服务器一个顶级DNS服务器地址,它是国际顶级域名服务器,如.com、.cn、.org等
第六步:顶级域名服务器会返回一个二级域名服务器的地址,例如baidu。
第六步:二级域名找到了主机名的地址,就会返回给本地域名服务器,并且缓存下来。

递归和迭代查询的示意图:
在这里插入图片描述
在这里插入图片描述

4、资源记录
资源记录即添加到区域文件的记录,资源记录有许多类型,每一种类型的功能各不相同。
A 表示 Address,A记录就是地址记录,是域名到ipv4地址的映射信息。

AAAA也是地址记录,是域名到ipv6地址的映射信息。

PTR记录与A记录相反,是ip地址到域名的映射信息。

SOA记录意为起始7授权记录,用于声明DNS服务器是DNS域中数据表的信息来源,是主机的管理者。

NS记录是名称服务。用于记录表明区域权威DNS服务器,即在NS记录中指定的服务器会被其他服务器当作权威的来源,并能应答。

CNAME记录用于为特定FQDN创建别名,为多台主机提供相同的别名。

MX记录指向一个邮件服务器,用于指定邮件交换服务器。

二、安装DNS

[root@control ~]# dnf install bind bind-utils -y
配置文件解析

[root@kittod ~]# cat /etc/named.conf
options {
 /*
监听方式,服务监听指定ip的53号端口
服务器可能有多张网卡,any表示所有网卡监听53端口的DNS解析请求
 todo 可以个实验:1、ip指定为本机ip。2、ip指定为同网段随便的ip
 */
 listen-on port 53 { 127.0.0.1; any;}; /**/
 /*数据文件目录*/
 directory "/var/named";
 /*DNS缓存位置*/
 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";
 recursing-file "/var/named/data/named.recursing";
 secroots-file "/var/named/data/named.secroots";
 /*
 允许哪些client来查询dns服务,默认是localhost。
 any表示所有人都能进行dns查询
 */
 allow-query { localhost;any; };
 /*是否递归*/
 recursion yes;
  /*DNS安全扩展机制,默认开启,直接关闭即可*/
 dnssec-enable no;
 dnssec-validation no;
 /* Path to ISC DLV key */
 bindkeys-file "/etc/named.root.key";
 managed-keys-directory "/var/named/dynamic";
 pid-file "/run/named/named.pid";
 session-keyfile "/run/named/session.key";
};
logging {
 channel default_debug {
 file "data/named.run";
 severity dynamic;
 };
};
/*之所以全部DNS服务器都知道根域名服务器的位置,就是下面的配置在生效*/
zone "." IN {
 type hint;
 file "named.ca";
};
/*子配置文件*/
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

区域配置文件模板
cat /etc/named.rfc1912.zones

域类型的几种取值:

hint:若本地找不到相关解析,可查询根域名服务器
master:定义权威域名服务器
slave:定义辅助域名服务器
forward:定义转发域名服务器

dns正向解析实验
[root@control ~]# vim /etc/resolv.conf 可以设置dns

[root@control ~]# vim /etc/named.conf
listen-on port 53 { localhost; };     修改为本机ip地址
allow-query     { any; };           允许哪个主机可以过来查询,同时还可以帮你查询他不知道的域名
zone "xiaogang.com" IN{
        type master;
        file "named.xiaogang.com";     写一个区域文件
};
[root@control ~]# vim /var/named/named.xiaogang.com
可以cp -p 复制named.localhost这个文件的模板



$TTL 1D       域名解析记录在DNS服务器中的存留时间
@       IN SOA  ns1 admin.xiaogang.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1
ns1       A       192.168.85.133
www     CNAME   webser
webser  A       192.168.85.134
webser  A       192.168.85.135    两个IP地址对应着这个主机,在一些大公司里可以分担流量
*       A       192.168.85.134     *号表示,你的主机名错误但还是给你解析成www的
@       A       192.168.85.134    @表示本机,比如xiaogang.com

例如:
[root@control ~]# host www.xiaogang.com
www.xiaogang.com is an alias for webser.xiaogang.com.
webser.xiaogang.com has address 192.168.85.135
webser.xiaogang.com has address 192.168.85.134

[root@control ~]# host wwwss.xiaogang.com
wwwss.xiaogang.com has address 192.168.85.134

[root@control ~]# host xiaogang.com
xiaogang.com has address 192.168.85.134

准备两台主机,第一台主机安装好dns服务器的软件。另一台不安装软件,把dns改为第一台的ip地址。

在第二台主机上测试
[root@manged ~]# host www.xiaogang.com
www.xiaogang.com is an alias for webser.xiaogang.com.
webser.xiaogang.com has address 192.168.85.134
webser.xiaogang.com has address 192.168.85.135
[root@manged ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 183.2.172.185
www.a.shifen.com has address 183.2.172.42
www.a.shifen.com has IPv6 address 240e:ff:e020:9ae:0:ff:b014:8e8b
www.a.shifen.com has IPv6 address 240e:ff:e020:966:0:ff:b042:f296
在本地域名服务器找不到解析时,本地域名服务器会充当转发服务器向根域进行递归和迭代查询

只做转发服务器实验

[root@kittod ~]# cat /etc/named.conf
options {
 listen-on port 53 { 192.168.226.130; };
 forward only;
 forwarders { 114.114.114.114; };
};
[root@kittod ~]# systemctl restart named

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言【cli】——builtin_theme():内置的CLI主题

Package cli version 3.6.0 Description 此主题始终处于活动状态,并且位于主题堆栈的底部。 Usage builtin_theme(dark getOption("cli.theme_dark", "auto")) Argument 参数【dark】:是否使用黑暗主题。cli.theme_dark选项可用…

实时语音克隆,准确复制音色:OpenVoice | 开源日报 No.150

myshell-ai/OpenVoice Stars: 9.6k License: NOASSERTION OpenVoice 是一个通过 MyShell 进行即时语音克隆的开源项目。 OpenVoice 可以准确地克隆参考音色,并生成多种语言和口音的语音。OpenVoice 允许对声音风格进行细粒度控制,如情感、口音以及节奏…

Pandas.Series.count() 非空单元格计数 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.1.2 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。 Pandas API参…

R语言的ggplot2绘制分组折线图?

R绘制分组折线图.R 首先看数据情况:group有3组。Time有3组,数据意思是在3组3个时间点测量了某指标,现在要绘制组1、组2、组3某指标y按时间的变化趋势 数据情况: 看看最终的效果图如下: 下面是本次使用的代码 .libPat…

万界星空科技免费MES/开源MES/功能齐全,支持低代码大屏

目前国内智能制造如火如荼,工厂信息化、数字化是大趋势。如果找到一个工厂,搞定一个老板,搞软件的朋友就能吃几年。 开源软件不失为一条路子,大量的服务商选择开源MES做出了低成本的项目,收入也还可以。 今天介绍Git…

最新AI绘画创作系统ChatGPT网站程序源码V5.0版本搭建部署文档教程+Midjourney绘画动态全功能+MJ绘画局部编辑重绘

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPT…

[小程序]样式与配置

一、外部样式导入 使用import加外部样式表的相对路径并以 ; 表示语句结束。 import "common.wxss"; 二、全局样式和局部样式 全局样式位于app.wxss中,会作用于整个项目中所有页面中。 局部样式位于对应的wxss文件中,仅作用于当前页面&#x…

0121-2-JavaScript高级程序设计1-10章

前言 通过阅读这本书写下的一些笔记 《JavaScript高级程序设计》 第1章——什么是JavaScript DOM将整个页面抽象为一组分层节点。 BOM用于支持访问和操作浏览器的窗口。 第2章——HTML中的JavaScript 2.1 < script >元素 元素描述async立即开始下载脚本&#xff0…

sshpass的安装与使用

一.简介 1.定义&#xff1a; ssh 登陆不能在命令行中指定密码&#xff0c;sshpass 的出现则解决了这一问题。它允许你用 -p 参数指定明文密码&#xff0c;然后直接登录远程服务器&#xff0c;它支持密码从命令行、文件、环境变量中读取。 2.使用 sshpass 原因 使用 sshpass…

【C++干货铺】C++11新特性——lambda表达式 | 包装器

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 C98中的排序 lambda表达式 lambda表达式语法 表达式中的各部分说明 lambda表达式的使用 基本的使用 [var]值传递捕捉变量var ​编辑 [&var]引用传递捕…

pyspark笔记:over

1 方法介绍 在 PySpark 中&#xff0c;over 函数是一个非常重要的概念&#xff0c;尤其是在使用窗口函数&#xff08;例如 row_number, rank, dense_rank, lead, lag 等&#xff09;时。over 函数允许你对一个数据集进行分组&#xff0c;然后在每个分组内应用窗口函数。 1.1 …

洋州影院购票系统:如何用Java、Spring Boot、Vue和MySQL实现现代化管理

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

Ubuntu20.4 Mono C# gtk 编程习练笔记(三)

Mono对gtk做了很努力的封装&#xff0c;即便如此仍然与System.Windows.Form中的控件操作方法有许多差异&#xff0c;这是gtk本身特性或称为特色决定的。下面是gtk常用控件在Mono C#中的一些用法。 Button控件 在工具箱中该控件的clicked信号双击后自动生成回调函数prototype&…

AI嵌入式K210项目(17)-快速傅里叶变换加速器 (FFT)

文章目录 前言一、什么是傅里叶变换&#xff1f;二、K210的快速傅里叶变换加速器实验过程总结 前言 K210内置了丰富的加速器&#xff0c;包括神经网络处理器 (KPU)&#xff0c;AES(高级加密加速器)&#xff0c;APU 麦克风阵列语音数据加速计算处理器&#xff0c;现场可编程 IO…

Netty-Netty源码分析流程图

netty服务端流程图 补充 完善客户端

AttributeError: module ‘numpy‘ has no attribute ‘float‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

《WebKit 技术内幕》之六(2): CSS解释器和样式布局

2 CSS解释器和规则匹配 在了解了CSS的基本概念之后&#xff0c;下面来理解WebKit如何来解释CSS代码并选择相应的规则。通过介绍WebKit的主要设施帮助理解WebKit的内部工作原理和机制。 2.1 样式的WebKit表示类 在DOM树中&#xff0c;CSS样式可以包含在“style”元素中或者使…

java数据类型

基本数据类型&#xff1a;(8种) 整型&#xff1a;byte、short、int、long 浮点型&#xff1a;float、double 字符型&#xff1a;char 布尔类型&#xff1a;boolean 1、整数类型&#xff08;整型&#xff09; 2、浮点类型 细节&#xff1a;如果是直接查询得到的小数或者直接赋值…

C++入门学习(十)如何显示浮点数的完整形态

在C中&#xff0c;如果你想要显示浮点数的完整数字&#xff08;包括小数部分和指数部分&#xff09;&#xff0c;可以使用 std::setprecision 和 std::fixed 来设置精度和固定小数点表示&#xff1a; #include <iostream> #include <iomanip> // 必须包含这个头…

Python实现离散选择Logit模型(Logit算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 Logit模型&#xff08;Logit model&#xff0c;也译作“评定模型”&#xff0c;“分类评定模型”&…
最新文章