教你一招,轻松搭建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       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      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.rhkb.cn/news/209103.html

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

相关文章

高端制造业中的通用性超精密3D光学测量仪器

超精密光学3D测量仪器具有高精度、自动化程度高、实时反馈和范围广等优势。它能够实现微米级别的精确测量,能够精确测量产品的尺寸、形状和表面粗糙度等,具有广泛的应用价值和重要意义。 超精密光学3D测量仪器配备多种传感器、控制器和计算机系统&#…

Java(十)(网络编程,UDP,TCP)

目录 网络编程 两种软件架构 网络通信的三要素 IP IPv4的地址分类 特殊IP 端口号 协议 用UDP协议发送数据 用UDP接收数据 TCP接收和发送数据 TCP通信--支持与多个客户端同时通信 网络编程 可以让设备中的程序与网络上其他设备的程序进行数据交互(实现网络通信) 两…

go自定义端口监听停用-------解决端口被占用的问题

代码 package mainimport ("fmt""log""net""os/exec""strconv""strings" )func getSelect(beign int, end int) int {var num intfor {_, err : fmt.Scan(&num)if err ! nil {fmt.Println("输入错误&am…

redis实现消息延迟队列

业务场景 在很多软件系统功能中都会出现定时任务的业务场景,比如提前点单,比如定时发布动态,文章等而出现这样的的定时的任务为延迟队任务 代码模块 任务的持久化一般都需要建立一个任务表和任务日志表,避免宕机导致任务失效,先新建立一个数据库,创建基本的任务表和任务日志表…

字符串冲刺题

关卡名 字符串冲刺题 我会了✔️ 内容 1.掌握最长公共前缀问题 ✔️ 2.掌握字符串压缩问题 ✔️ 3.如果想挑战一下就研究:表示数值的字符串 ✔️ 1 最长公共前缀 这是一道经典的字符串问题,LeetCode14 先看题目要求:编写一个函数来查找…

28.线段树与树状数组基础

一、线段树 1.区间问题 线段树是一种在算法竞赛中常用来维护区间的数据结构。它思想非常简单,就是借助二叉树的结构进行分治,但它的功能却非常强大,因此在很多类型的题目中都有它的变种,很多题目都需要以线段树为基础进行发展。…

git报错invalid object xxx和unable to read tree xxxxxx

电脑出问题了,导致git仓库像是被损坏了一样,执行git status就会报错unable to read ree,无法正常提交代码至仓库,原因是本地代码仓库.git文件损坏了,无法找到正确的提交历史和路径。 找到了一个解决办法: …

数学字体 Mathematical fonts

Mathematical fonts 数学字体: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ \\ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathbb{ABC…

geemap学习笔记015:下载哨兵2号(Sentinel-2)数据

前言 使用GEE下载数据应该是最常见的功能了,今天就介绍一下如何使用geemap下载哨兵2号(Sentinel-2)数据,分别包括自己画感兴趣,以及利用Assets中的shp文件进行下载。 1 自己画感兴趣下载哨兵2号影像 import geemap import eeMap geemap.M…

MQ - 消息系统

消息系统 1、消息系统的演变 在大型系统中,会需要和很多子系统做交互,也需要消息传递,在诸如此类系统中,你会找到源系统(消息发送方)和 目的系统(消息接收方)。为了在这样的消息系…

了解ThreadLocal的原理吗

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

YOLOv5改进 | 添加ECA注意力机制 + 更换主干网络之ShuffleNetV2

前言:Hello大家好,我是小哥谈。本文给大家介绍一种轻量化部署改进方式,即在主干网络中添加ECA注意力机制和更换主干网络之ShuffleNetV2,希望大家学习之后,能够彻底理解其改进流程及方法~!🌈 目…

解读Java虚拟机垃圾回收器:探究经典算法背后的奥秘

目录 一、GC分类与性能指标 (一)垃圾回收器分类 (二)性能指标 (三)不可能三角 二、不同的垃圾回收器概述 三、Serial回收器:串行回收 四、ParNew回收器:并行回收 五、Parall…

untiy webgl常见问题与操作

文章目录 1 untiy和网页相互通信2 打开新页面(同标签页和新标签页)3 获取网页的URL4 解析Url内的参数5 后处理与色彩空间问题 1 untiy和网页相互通信 看这个文章 2 打开新页面(同标签页和新标签页) 先看本文untiy和网页相互通信…

WEB渗透—反序列化(八)

Web渗透—反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩哔_…

智慧垃圾分拣站:科技改变城市环境,创造更美好的未来

随着城市化进程的不断加快,垃圾处理问题日益凸显。为了更好地解决垃圾分类问题,越来越多的城市开始推广智慧垃圾分拣站,利用创新科技实现高效垃圾分类处理。 山海鲸使用三维建模技术,建立了一个智慧垃圾分拣站数字孪生模型&#x…

《数据结构、算法与应用C++语言描述》-优先级队列-大根堆的C++实现

优先级队列 完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_25Priority queue 定义 优先级队列(priority queue)是0个或多个元素的集合,每个元素都有一个优先权或值,对优先级队列执行…

53.redis分布式缓存

目录 一、单机安装Redis。 二、Redis主从集群。 2.1.集群结构 2.2.准备实例和配置 2.3.启动 2.4.开启主从关系 2.5.测试 三、搭建哨兵集群。 3.1.集群结构 3.2.准备实例和配置 3.3.启动 3.4.测试 四、搭建分片集群。 4.1.集群结构 4.2.准备实例和配置 4.3.启动…

【附代码】Python函数性能测试(perfplot)

文章目录 相关文献测试电脑配置展开元素是list的list在numpy数组上映射函数的最有效方法数组numpy中唯一值的最有效频率计数方法反转numpy数组的最有效方法如何向 numpy 数组添加额外的列将 numpy 矩阵初始化为零或一以外的值 作者:小猪快跑 基础数学&计算数学&…

基于helm的方式在k8s集群中部署gitlab - 备份恢复(二)

接上一篇 基于helm的方式在k8s集群中部署gitlab - 部署(一),本篇重点介绍在k8s集群中备份gitlab的数据,并在虚拟机上部署相同版本的gitlab,然后将备份的数据进行还原恢复 文章目录 1. 备份2. 恢复到虚拟机上的gitlab2.…