DNS服务器

DNS服务器

一、DNS简介:

DNS(Domain Name System)是一种用于将域名解析为IP地址的系统。

    在DNS中,正向解析将域名转换为IP地址,而反向解析将IP地址转换为域名。正向解析是DNS系统最常用的解析方式,它允许用户通过域名找到该域名对应的IP地址。例如,在浏览器中输入www.google.com时,DNS会将该域名解析为IP地址,然后将请求发送给该IP地址上的服务器。反向解析则是与正向解析相反的过程。它将IP地址转换为域名。这通常用于安全和网络管理目的,例如确定某个IP地址是否被黑名单或查找特定主机名的IP地址。需要注意的是,反向解析需要在DNS服务器上进行设置,并且仅适用于那些已经注册了域名的IP地址,因此,并不是所有IP地址都可以被反向解析。

二、DNS服务器部署

约定:本实验中使用过的机器为centos8.0_x86_64系统,IP地址192.168.11.16/24.请关闭防火墙和SELINUX。

1、DNS安装

DNS服务是由bind程序提供的,所以要实现DNS服务就需要安装bind程序包。

[root@zutuanxue ~]# dnf -y install bind 

2、DNS启动

DNS的守护进程叫做named,DNS是以named用户身份来运行,named用户在安装包的时候会在系统中自动创建。CentOS8下安装了bind-chroot之后,若要使用named-chroot.service,则需要关闭named.service。两者只能运行一个
启动DNS服务
开机启动
[root@zutuanxue ~]# systemctl enable named-chroot.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/named-chroot.service to /usr/lib/systemd/system/named-chroot.service.
启动服务
[root@zutuanxue ~]# mv /etc/named.conf /root/
[root@zutuanxue ~]# systemctl start named-chroot

3、DNS配置文件

默认情况下,如果不安装bind-chroot这个包,配置文件的路径如下:

配置文件:/etc/named.conf区域数据库文件:/var/named/

主配文件详解

options
{
#IPv4监听端口为53,只允许本机连接
listen-on port 53    { 127.0.0.1; };
#定义工作目录
directory         "/var/named"; 
}logging 
{
#开启DNS日志记录channel default_debug {file "data/named.run";severity dynamic;};
};#定义一个根域
zone "." IN {#域类型为hint,还有master(主服务器) slave (从服务器)forward等类型type hint;#区域数据库文件路径file "/var/named/named.ca";};
};#包含两个子配置文件include "/etc/named.rfc1912.zones";include "/etc/named.root.key";
b、区域数据库文件详解

三、DNS正向解析

1、安装DNS服务的软件

[root@localhost ~]# dnf install bind -y		#安装dns的bind软件   [root@localhost ~]# systemctl stop firewalld  ##关闭防火墙和Selinux
[root@localhost ~]# setenforce 0

2、更改主配置文件

/etc/name.conf

[root@localhost ~]# vim /etc/named.conf
options {#定义监听端口,如果所有地址都监听,则只写端口listen-on port 53 { 192.168.186.137; };#定义数据文件目录directory       "/var/named";#只允许本地主机进行查询allow-query     { any; };recursion yes;
};#定义区域
zone "openlab.com" IN {type master;file "named.openlab.com";   ##文件路径
};

3、编辑区域配置文件

/var/named/文件名

更改/var/named/named.openlab.com文件:用于定义特定域名(在本例中是 openlab.com)的 DNS 资源记录,如 A 记录(将域名映射到 IPv4 地址)、AAAA 记录(将域名映射到 IPv6 地址)、CNAME 记录(别名)、MX 记录(邮件交换服务器)等。通过配置这个文件,可以实现对特定域名的正向解析(将域名转换为 IP 地址)和反向解析(将 IP 地址转换为域名)。和/etc/resolv.conf文件这个文件用于指定 DNS 客户端(即您的系统)在进行域名解析时所使用的 DNS 服务器的地址。当您的系统需要将某个域名转换为 IP 地址时,会按照这个文件中指定的 DNS 服务器顺序进行查询。
[root@localhost ~]# vim /var/named/named.openlab.com 
$TTL  1D
@       IN      SOA     ns.openlab.com.(@) admin.qq.com.  (20230510021M1M1M3M )IN      NS      ns.openlab.com.
ns         IN      A       192.168.186.137
ftp        IN      A       192.168.186.100
www        IN      A       192.168.186.111
http       IN    CNAME      www[root@localhost ~]# vim /etc/resolv.conf 
Generated by NetworkManager
search localdomain
nameserver 192.168.186.138
区域配置文件中的主要内容及含义如下:
$TTL 86400   #生存时间
@       IN      SOA     ns1.example.com. admin.example.com. (2024070601      ; Serial3600            ; Refresh1800            ; Retry604800          ; Expire86400 )         ; Negative Cache TTL- `$TTL 86400`:指定默认的生存时间(Time To Live),表示资源记录在缓存中的有效时长,单位为秒。86400 秒即 1 天。- `@`:代表当前区域(在本例中是 `example.com`)。
- `IN`:表示 Internet 类。
- `SOA`:起始授权记录(Start of Authority)。- `ns1.example.com.`:主名称服务器的名称。- `admin.example.com.`:管理员的邮箱,将 `@` 替换为 `.` 。- `2024070601`:序列号,用于主从服务器之间数据同步,每次修改配置时应递增。- `3600`:刷新间隔,从服务器检查主服务器更新的时间间隔,单位为秒。- `1800`:重试间隔,如果刷新失败,再次尝试的时间间隔,单位为秒。- `604800`:过期时间,如果从服务器无法联系主服务器,多长时间后认为数据失效,单位为秒。- `86400`:否定缓存的生存时间,对于不存在的记录在缓存中的保存时间。; Name servers
@       IN      NS      ns1.example.com.
@       IN      NS      ns2.example.com.- `NS`:名称服务器记录,指定了该区域的权威名称服务器。; A records
www     IN      A       192.168.1.100
mail    IN      A       192.168.1.200
- `A`:地址记录,将域名(如 `www`、`mail`)映射到 IPv4 地址(如 `192.168.1.100`、`192.168.1.200`)。
还可以根据需要添加其他类型的记录,比如 `CNAME`(别名记录)、`MX`(邮件交换记录)等。

4、重启服务

[root@localhost ~]#systemctl restart named

5、客户端测试

正向测试结果如下(三种方法):
[root@localhost ~]# host www.openlab.com
www.openlab.com has address 192.168.186.111[root@localhost ~]# dig www.openlab.com
;; ANSWER SECTION:
www.openlab.com.	86400	IN	A	192.168.84.120[root@localhost ~]# nslookup www.openlab.com
Server:		::1
Address:	::1#53
Name:	www.openlab.com
Address: 192.168.84.120

四、DNS的反向解析

1、安装DNS服务器软件

[root@localhost ~]# yum install bind -y  #下载bind [root@localhost ~]# systemctl stop firewalld   #并关闭防火墙和Selinux
[root@localhost ~]# setenforce 0

2、更改主配置文件

/etc/name.conf

[root@localhost ~]# vim /etc/named.confoptions {listen-on port 53 { 192.168.186.137; };directory       "/var/named";allow-query     { any; };recursion yes;
};#正向解析
zone "openlab.com" IN {type master;file "named.openlab.com";
};#反向解析
zone "186.168.192.in-addr.arpa" IN {type master;file "named.openlab.com";
};

3、编辑区域配置文件

更改/var/named/named.openlab.com文件和/etc/resolv.conf文件
root@localhost ~]# vim /var/named/named.openlab.com $TTL    1D
@       IN      SOA     ns.openlab.com. admin.qq.com.  (20230510021M1M1M3M )NS      ns.openlab.com.
ns              A       192.168.186.137
ftp             A       192.168.186.100
www             A       192.168.186.111
http            CNAME   www
137             PTR     ns.hash.com.
100             PTR     www.hash.com.
111             PTR     ftp.hash.com.[root@localhost ~]# vim /etc/resolv.conf # Generated by NetworkManager
search localdomain
nameserver 192.168.186.138

4、重启服务

[root@localhost ~]#systemctl restart named

5、客户端测试

dig -x  ip地址
nslookup   ip地址

[root@localhost ~]# dig -x 192.168.84.110
;; ANSWER SECTION:
110.84.168.192.in-addr.arpa. 86400 IN	PTR	www.hash.com.
110.84.168.192.in-addr.arpa. 86400 IN	PTR	ftp.hash.com.[root@localhost ~]# nslookup 192.168.84.100
100.84.168.192.in-addr.arpa	name = ns.hash.com.[root@localhost ~]# nslookup 192.168.84.110
110.84.168.192.in-addr.arpa	name = www.hash.com.
110.84.168.192.in-addr.arpa	name = ftp.hash.com.

五、DNS转发服务器

DNS 转发服务器(DNS Forwarder)是一种特殊的 DNS 服务器配置,它的主要作用是接收客户端的 DNS 查询请求,并将这些请求转发到其他指定的 DNS 服务器进行解析,而不是自己直接进行完整的域名解析过程。

优点:1. 提高解析效率:如果本地 DNS 服务器无法直接解析某些域名,通过转发到更权威或性能更好的 DNS 服务器,可以更快地获取准确的解析结果。 
2. 减少网络流量:避免每个本地 DNS 查询都直接访问外部 DNS 服务器,降低网络流量和潜在的延迟。 
3. 集中管理和控制:可以对 DNS 查询进行统一的管理和策略控制,例如过滤特定的域名或限制查询频率。 

常见配置方式(以 Bind 为例):

在主配置文件 /etc/named.conf 中添加 forwarders 选项:

[root@localhost ~]# vim /etc/named.confoptions {listen-on port 53 { 192.168.186.137; };directory       "/var/named";forward			only;    ##只进行本地转发forwarders		{114.114.114.114; 8.8.8.8};
};

检测配置是否成功

[root@localhost ~]# nmcli device show | grep DNS[root@localhost ~]# dig -t A www.baidu.com

六、主从DNS服务器

1、完全区域传送

主DNS服务器配置:(192.168.84.160)

[root@localhost ~]# vim /etc/named.conf
options {listen-on port 53 { any; };directory       "/var/named";allow-transfer  { 172.168.84.151 } ; ##次dns服务器IP
};#定义区域
zone "openlab.com" IN {type master;file "named.openlab.com";   ##文件路径
};
[root@localhost ~]# vim /var/named/named.openlab.com 
$TTL  1D
@       IN      SOA     ns.openlab.com.(@) admin.qq.com.  ( 2023051002 1M 1M 1M  3M )IN      NS      ns.openlab.com.IN 	   NS		slave.openlab.com.slave		IN		A		172.168.84.151ns         IN      A       192.168.186.137
ftp        IN      A       192.168.186.100
www        IN      A       192.168.186.111
http       IN    CNAME      www
[root@localhost ~]# systemctl restart  named

从DNS服务器配置:(192.168.84.151)

[root@localhost ~]# vim /etc/named.conf
options {listen-on port 53 { any; };directory       "/var/named";
};#定义区域
zone "openlab.com" IN {type slave;file "slaves/named.openlab.com";   ##文件路径masters  { 192.168.84.100; };   ##主dns服务器的某一ip地址
};
[root@localhost ~]# systemctl restart  named

测试:

[root@localhost ~]# host  www.openlab.com 192.168.84.100

2、增量区域传递

仅复制区域内变化的文件

#修改主服务器内区域配置文件,序号需要变大
主服务器配置
[root@localhost ~]# vim /var/named/named.openlab.com 
$TTL  1D
@       IN      SOA     ns.openlab.com.(@) admin.qq.com.  (  2023051222 1M 1M 1M  3M )IN      NS      ns.openlab.com.IN 	   NS		slave.openlab.com.slave		IN		A		172.168.84.100ns         IN      A       192.168.186.137
ftp        IN      A       192.168.186.100
www        IN      A       192.168.186.111
http       IN    CNAME      www[root@localhost ~]# systemctl restart named ##重启服务

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

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

相关文章

本地部署到服务器上的资源路径问题

本地部署到服务器上的资源路径问题 服务器端的源代码的静态资源目录层级 当使用Thymeleaf时,在templates的目录下为返回的html页面,下面以两个例子解释当将代码部署到tomcat时访问资源的路径配置问题 例子一 index.html(在templates的根目录…

VBA初学:零件成本统计之三(获取材料外协的金额)

第三步,从K3的数据库中获取金额 我这里是使用循环,通过任务单号将金额汇总出来,如果使用数组的话,还要按任务单写GROUP,还要去对应,不如循环直接一点 获取材料和外协金额的表格Sub getje()Dim rowcount A…

leetcode-每日一题

3101. 交替子数组计数https://leetcode.cn/problems/count-alternating-subarrays/ 给你一个 二进制数组 nums 。 如果一个 子数组 中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。 返回数组 nums 中交替子数组的数量。 示例 …

算法力扣刷题 三十四【71.简化路径】

前言 栈和队列篇。 记录 三十四【71.简化路径】 一、题目阅读 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中&#xff0c…

3-2 梯度与反向传播

3-2 梯度与反向传播 主目录点这里 梯度的含义 可以看到红色区域的变化率较大,梯度较大;绿色区域的变化率较小,梯度较小。 在二维情况下,梯度向量的方向指向函数增长最快的方向,而其大小表示增长的速率。 梯度的计算 …

使用Python实现深度学习模型:模型解释与可解释人工智能

在深度学习领域,模型解释和可解释性人工智能(XAI)正变得越来越重要。理解深度学习模型的决策过程对于提高模型的透明度和可信度至关重要。本文将详细介绍如何使用Python实现模型解释和可解释性人工智能,包括基本概念、常用方法、代码实现和示例应用。 目录 模型解释与可解…

docker使用镜像jms_all部署jumpserver

创建容器需要挂载出来的服务器对应目录 mkdir -p /data/redis/data mkdir -p /opt/mysql/{data,conf,logs}docker安装redis docker run -d -it --name redis -p 6379:6379 -v /data/redis/data:/data --restart=always

如何第一次从零上传项目到GitLab

嗨,我是兰若,今天想给大家说下,如何上传一个完整的项目到与LDAP集成的GitLab,也就是说这个项目之前是不在git上面的,这是第一次上传,这样上传上去之后,其他小伙伴就可以根据你这个项目的git地址…

3. train_encoder_decoder.py

train_encoder_decoder.py #__future__ 模块提供了一种方式,允许开发者在当前版本的 Python 中使用即将在将来版本中成为标准的功能和语法特性。此处为了确保代码同时兼容Python 2和Python 3版本中的print函数 from __future__ import print_function # 导入标准库…

Lua语言入门

目录 Lua语言1 搭建Lua开发环境1.1 安装Lua解释器WindowsLinux 1.2 IntelliJ安装Lua插件在线安装本地安装 2 Lua语法2.1 数据类型2.2 变量全局变量局部变量命名规范局部变量作用域 2.3 注释单行注释多行注释 2.4 赋值2.5 操作符数学操作符比较操作符逻辑操作符连接操作符取长度…

Leetcode秋招冲刺--(专题7-9)

专题7:字符串匹配 题目459:重复的子字符串(NO) 解题思路:这里用到了substr获取子串,然后直接堆成相同大小的主串,然后进行比较。 这题主要没做出的原因是时间复杂度一直优化不下去 myself class Soluti…

定个小目标之刷LeetCode热题(41)

338. 比特位计数 给你一个整数 n &#xff0c;对于 0 < i < n 中的每个 i &#xff0c;计算其二进制表示中 1 的个数 &#xff0c;返回一个长度为 n 1 的数组 ans 作为答案。 今天看一下这道简单题&#xff0c;主要考查位运算&#xff0c;代码如下 class Solution {pu…

Vue3路由切换动画

一、安装依赖 需要安装animate.css pnpm i animate.css二、使用transition添加过渡动画 注意&#xff1a;要想使用动画&#xff0c;需要加:key <router-view v-slot"{ Component }"><Transitionappearenter-active-class"animate__animated animate__f…

moonlight+sunshine+ParsecVDisplay ipad8-windows 局域网串流

1.sunshine PC 安装 2.设置任意账户密码登录 3.setting 里 network启用UPNP IPV4IPV6 save apply 4.ParsecVDisplay虚拟显示器安装 5.ipad appstore download moonlight 6.以ipad 8 为例 2160*1620屏幕分辨率 7.ParsecVDisplay里面 custom设置2160*1620 240hz&#xff0c;…

银河麒麟V10 SP1 审计工具 auditd更新

前言 银河麒麟V10 SP1 审计工具 auditd 引发的内存占用过高&#xff0c; 内存使用率一直在 60% 以上&#xff0c; 内存一直不释放 排查 可以使用ps或者top查看系统进程使用情况 ps -aux|sort -k4nr|head -n 5 发现银河麒麟审计工具 auditd 一直占用内存不释放 解决 办法一…

vivado CLOCK_REGION、CLOCK_ROOT

时钟区域 CLOCK_REGION属性用于将时钟缓冲区分配给 UltraScale设备&#xff0c;同时让Vivado放置程序将时钟缓冲区分配给最佳站点 在该区域内。 重要提示&#xff1a;对于UltraScale设备&#xff0c;不建议将时钟缓冲区固定到特定站点&#xff0c;因为 你可以在时钟上规划一个7…

(头哥)Hive的安装与配置

第1关&#xff1a;Hive的安装与配置 wget -O - https://gitee.com/tianzhen2647/bash/raw/master/Hive%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/h1.sh | bash第2关&#xff1a;Hive Shell入门基础命令 直接修改/opt/hive/bin下的hive文件&#xff0c;把里面的…

掌握Eloquent ORM:Laravel中的对象关系映射艺术

掌握Eloquent ORM&#xff1a;Laravel中的对象关系映射艺术 在现代Web应用开发中&#xff0c;数据库的操作是核心功能之一。Laravel框架提供了一个强大而优雅的ORM&#xff08;对象关系映射&#xff09;工具——Eloquent。Eloquent让数据库操作变得简单直观&#xff0c;同时保…

进程的初步认识

目录 一、硬件方面介绍 1.冯诺依曼体系结构 2.存储分级 二、软件 方面 1.操作系统是一款进行管理的软件&#xff0c;它可以管理硬件也可以管理软件 2.操作系统如何管理&#xff1f; 三、进程 1.概念 总结 四、linux中对进程的管理 1.task_ struct内容分类 2.查看进…

现代信息检索笔记(四)——文档评分、词项权重计算及向量空间模型

目录 对搜索结果进行排序 目标 方案一&#xff1a;jaccard系数 方案二&#xff1a;tf-idf公式 长文本长度 向量空间模型小结 对搜索结果进行排序 排序式检索&#xff0c;如何高速求相关性R 目标 无关的不在上面相关度高的在前面 在链表中不出现的相关性为0&#xff0c…