图示详解OpenEuler下 DNS安装、配置与测试

news2024/10/9 6:42:28

前言

DNS配置内容、步骤、参数较多,初学者很难短时间掌握,另外,理解DNS工作原理也有一定的难度,一次配置成功的概率不大,因此,建议在配置DNS之前,先读一下之前笔者的博文《详解DNS工作原理及实例分析》。配置重点掌握三个文件:主配置文件、区域配置文件和区域文件,这三个文件分别承担怎样的任务?相互之间有什么先后、依存关系?具体参数含义是什么?都是认真思考和对待的,笔者用一个示意图,力图说明三个文件的关系。

需要特别指出的是,主配置文件named.conf、区域配置文件named.rfc1912.zones是bind服务安装后就有了,只需要修改配置即可;而区域文件则需要创建的新文件, 但在区域配置文件中需指定文件名及路径。

 一. DNS安装

在OpenEuler系统中,DNS服务通常由`bind`或`dnsmasq`提供。以下是bind安装步骤:

1、 安装bind服务:

dnf install -y bind 

2.、安装bind成功,如图所示。 

二、 DNS配置

1、客户端配置:

编辑`/etc/resolv.conf`文件,添加DNS服务器地址:
vim /etc/resolv.conf

添加以下内容:
nameserver 192.168.157.129
这里配置DNS服务器的IP地址。

2、 服务端配置:

(1) 修改主配置文件'bind':
cp /etc/named.conf /etc/named.conf.bak

修改配置文件之前,备份该文件是个好习惯,以防配置过程将配置文件能乱,及时将配置文件回复。
vim /etc/named.conf

主配置文件内容如图所示。

 修改以下内容:
listen-on port 53 { any; };
allow-query     { any; };

其中 listen-on port 53 { any; }; 这行配置指示DNS服务器在TCP和UDP的53端口上监听来自任何地址的请求。端口53是DNS协议的标准端口。`any;` 表示服务器将接受来自任何IP地址的请求。

   - `listen-on` 是BIND中用于指定服务器监听的网络接口的指令。
   - `port 53` 指定了端口号,这里是DNS协议默认的端口53。
   - `{ any; }` 是一个括号内的声明,表示服务器将监听所有网络接口的53端口。`any` 是一个特殊的地址,代表所有地址。
   allow-query { any; };  这行配置指定了哪些客户端可以向DNS服务器发送查询请求。`any;` 表示允许任何客户端向服务器查询DNS记录。

   - `allow-query` 是一个访问控制指令,用于限制谁可以对DNS服务器进行查询。
   - `{ any; }` 表示允许所有客户端进行查询,没有任何限制。

在实际部署中,出于安全考虑,可能需要对这些设置进行限制。例如,你可能只想允许特定网络或地址范围的客户端进行查询,或者只允许特定的服务器进行区域传送(transfer)。在这种情况下,你可以将`any`替换为特定的IP地址或网络段,如:
listen-on port 53 { 192.168.1.0/24; };
allow-query { 192.168.1.0/24; };
这样,只有`192.168.1.0/24`网络段内的客户端能够查询DNS服务器。

(2) 修改区域配置文件`/etc/named.rfc1912.zones`:
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
vim /etc/named.rfc1912.zones
添加区域配置:
zone "zhu.com" IN {
    type master;
    file "/etc/named/zhu.com.zone";
};

配置后文件如图所示。 

(3) 创建区域文件`/etc/named/zhu.com.zone`:

touch /etc/named/zhu.com.zone
vim /etc/named/zhu.com.zone

添加区域记录,例如:
$TTL 86400
@   IN  SOA  ns1.zhu.com. admin.zhu.com. (
        2021042801  ; Serial
        3600        ; Refresh
        1800        ; Retry
        604800      ; Expire
        86400       ; Minimum TTL
)
; 定义NS记录
@       IN      NS      ns1.zhu.com.

; 定义A记录
ns1     IN      A       192.168.157.128
www     IN      A       192.168.1.128

下面是对配置的注释和解释:
$TTL 86400
这行设置了默认的记录存活时间(Time To Live,TTL),单位是秒。这里设置为86400秒,即24小时。这意味着除非本地DNS服务器的缓存被刷新,否则DNS记录将在缓存中保存24小时。
@ IN SOA ns1.zhu.com. admin.zhu.com. (
      2021042801 ; Serial
      3600        ; Refresh
      1800        ; Retry
      604800      ; Expire
      86400       ; Minimum TTL
)
这是一个SOA(Start of Authority)记录,标志着区域文件的开始,并包含有关DNS区域的重要信息:
- `@` 表示默认域名,通常与区域的名称相同。
- `IN` 表示记录的类别是Internet。
- `SOA` 是“Start of Authority”的缩写。
- `ns1.zhu.com.` 是主DNS服务器的主机名。
- `admin.zhu.com.` 是管理这个区域文件的管理员的联系邮箱,通常以`.`结束。
- `2021042801` 是序列号,用于版本控制。
- `3600` 是刷新时间,指定从属DNS服务器多久向主DNS服务器查询一次以获取更新。
- `1800` 是重试时间,指定如果从属DNS服务器在刷新时间内未能联系到主DNS服务器,它将尝试联系的频率。
- `604800` 是过期时间,指定从属DNS服务器在放弃这个区域文件之前等待主DNS服务器响应的最大时间。
- `86400` 是最小TTL值,指定DNS记录的最小存活时间。
; 定义NS记录
@         IN      NS      ns1.zhu.com.
这是一个NS(Name Server)记录,定义了哪个DNS服务器是这个区域的权威DNS服务器。这里指定`ns1.zhu.com`是权威DNS服务器。
; 定义A记录
ns1      IN      A       192.168.157.128
www      IN      A       192.168.157.128
这些是A(Address)记录,将主机名映射到IPv4地址:
- `ns1` 是一个主机名,`IN` 表示记录的类别是Internet,`A` 表示这是一个地址记录,`192.168.157.128` 是这个主机名对应的IPv4地址。
- `www` 是一个常见的主机名,通常用于指向网站的主服务器。这里它被映射到IPv4地址`192.168.157.128`。

整个配置定义了一个基础的DNS区域,包括一个SOA记录,一个NS记录,和两个A记录。

(4) 检查配置文件:
named-checkconf
named-checkzone zhu.com /etc/named/zhu.com.zone

(5) 重启`named`服务:
systemctl restart named
systemctl enable named

检查named服务状态:
systemctl status named

查看named服务端口是否已开启:

netstat -tulnp | grep 53

3. DNS测试

使用`dig`或`nslookup`命令测试DNS解析:
dig @127.0.0.1 www.zhu.com
nslookup www.zhu.com
检查返回的IP地址是否正确。如图所示,该DNS正确的解析了域名对应的IP地址。

4、常见问题

1. DNS服务启动失败:检查配置文件语法是否正确,使用`named-checkconf`和`named-checkzone`命令检查。

2. DNS解析失败:确认`resolv.conf`文件中的nameserver设置正确,检查网络连接。

3. DNS服务重启后配置失效:确认配置文件更改后是否被正确保存,重启服务时是否使用了正确的命令。

通过以上步骤,你可以在OpenEuler系统中安装、配置和测试DNS服务。

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

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

相关文章

AutoDL服务器训练YOLOv8全过程

AutoDL服务器训练YOLOv8全过程 关于作者 作者:小白熊 作者简介:精通python、matlab、c#语言,擅长机器学习,深度学习,机器视觉,目标检测,图像分类,姿态识别,语义分割&…

TCP_SOCKET编程实现

文章目录 与UDP_SOCKET的区别第一代Tcp_ServerTcp_Client第二代Tcp_Server第三代Tcp_server多线程版本Tcp_Server线程池版的Tcp_Server使用inet_ntop来解决线程安全问题 业务逻辑编写总结补充说明&&业务代码完成ping的真实作用Translate编写Transform业务代码 整体总结…

基于Web的实时动作捕捉工具

随着Web技术的不断发展,实时动作捕捉已经成为可能。一款名为MiKaPo的基于Web的实时动作捕捉工具应运而生,它能够捕捉视频中的人物动作并将其应用到3D模型上。本文将详细介绍MiKaPo的核心功能、技术栈、工作原理以及其优势和应用场景。 1. 概述 MiKaPo是一款基于Web的实时动…

gaussdb hccdp认证模拟题(单选)

1.在GaussDB逻辑架构中,由以下选项中的哪一个组件来负责提供集群日常运维、配置管理的管理接口、工具?(1 分) A. CN B. DN C. GTM D. OM --D 2.在以下命令中,使用以下哪一个选项中的命令可以以自定义归档形式导出表t1的定义&#xf…

◇【论文_20181020 v6】广义优势估计器 (generalized advantage estimator, GAE)

https://arxiv.org/abs/1506.02438 ICLR 2016 加州伯克利 电子工程与计算机科学系 High-Dimensional Continuous Control Using Generalized Advantage Estimation 文章目录 摘要1 引言2 预备知识3 优势函数估计4 解释为 奖励设计reward shaping5 价值函数估计6 实验6.1 策略优…

计算机毕业设计-自主完成指南

计算机毕业设计通常都涉及到较为复杂的软件系统,许多同学在选定课题之后,往往处于一种懵懂的状态,不知道如何着手开展工作。现在,让我们转换一种视角,把毕设想象成自己逐步开发的一款产品。最终在答辩环节,…

0,Verilog基础专栏说明

给大家推荐一个好用的Verilog基础训练网站HDL Bits,专用于Verilog语言的练习,非常丰富并且包含仿真。 注:本专栏内容涉及到的Verilog相关题目均为HDL Bits网站上内容,解题代码均为原创。 1,章节分类 1,V…

Qt设计登录界面

优化登录框: 将两个按钮连接到槽函数 在构造函数中定义 connect(this->btn1,&QPushButton::clicked,this,&Logon::my_slot);connect(this->btn2,&QPushButton::clicked,this,&Logon::my_cancel); 定义登录按钮连接的槽函数 void Logon::my…

【物流配送中心选址问题】基于退火算法混合粒子群算法

课题名称: 基于退火算法混合粒子群算法的物流配送中心选址问题 改进方向:模拟退火算法优化粒子群算法 代码获取方式(付费): 模型说明: 待补充 Matlab仿真结果: 1. 模型优化后的仿真结果 2…

【笔记】Day1的代码总结

代码中自定义接口AuthFilter的实现用了自定义类名称ManagerTokenGatewayFilterFactory继承抽象类抽象网关过滤器AbstractGatewayFilterFactory 用来实现AuthFilter接口的auth()方法 白名单路径:写在.yml文件中的sl.noAuthPath中

844.比较含退格的字符串

题目:844. 比较含退格的字符串 - 力扣(LeetCode) 思路:首先要知道这个#的意思是可以将前面一个数清空,(当时 我以为是将前面一串清空。。。看了半天),由于 # 号只会消除左边的一个字符,所以对右边的字符无影响&#x…

超越GPT-4的视觉与文本理解能力,开源多模态模型领跑者 - Molmo

Molmo是由艾伦人工智能研究所(Ai2)发布的一系列多模态人工智能模型,旨在提高开放系统在性能上与专有系统(如商业模型)之间的竞争力。以下是对Molmo的详细总结: Molmo是什么: Molmo是基于Qwen2和…

分布式事务讲解 - 2PC、3PC、TCC

分布式事务讲解 - 2PC、3PC、TCC 前置知识 BASE理论: BASE是Basically Availbale(基本可用)、Soft state(软状态)、Eventually consistent(最终一致性)三个词语的缩写。BASE理论是对CAP理论中AP的一个扩展,通过牺牲强一致性来获得可用性,当…

2024最新分别用sklearn和NumPy设计k-近邻法对鸢尾花数据集进行分类(包含详细注解与可视化结果)

本文章代码实现以下功能: 利用sklearn设计实现k-近邻法。 利用NumPy设计实现k-近邻法。 将设计的k-近邻法对鸢尾花数据集进行分类,通过准确率来验证所设计算法的正确性,并将分类结果可视化。 评估k取不同值时算法的精度,并通过…

基于SpringBoot的轻量级CRM管理系统+搭建教程

运行环境:jdk8 IntelliJ IDEA maven 宝塔面板 技术框架:SpringBoot lombok MyBatis 分页助手 freemarker SpringMVC SpringMail 系统功能: 这是一套轻量级的crm管理系统源码,基于SSM的SpringBoot架构。 这套源码用到很多潮流技术…

清华大模型公开课第二季 | Lecture 2 神经网络与大模型基础 Part 1

本文由readlecture.cn转录总结。ReadLecture专注于音、视频转录与总结,2小时视频,5分钟阅读,加速内容学习与传播。 大纲 引言 课程介绍 主讲人介绍 课程内容概述 神经网络基础知识 神经网络的定义和结构 神经元的基本单元 多维输入和权重…

从《被程序员耽搁的外卖员》看IT就业前景

《被程序员耽搁的外卖员》这部作品乍一看,似乎只是一个轻松幽默的故事,讲述一位外卖员因为学习编程而改变生活轨迹的小故事。然而,它在反映社会现实、揭示IT行业就业前景方面具有诸多启示。本文旨在通过此故事来分析当前IT就业的现状和未来发…

Spring Boot读取resources目录下文件(打成jar可用),并放入Guava缓存

1、文件所在位置&#xff1a; 2、需要Guava依赖&#xff1a; <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>3、启动时就读取放入缓存的代码&#xf…

​Leetcode 746. 使用最小花费爬楼梯​ 入门dp C++实现

问题&#xff1a;Leetcode 746. 使用最小花费爬楼梯 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你…

Linux源码阅读笔记-以太网驱动分析

驱动框架 Linux 内核网络设备驱动框架分别为四个模块&#xff0c;分别为网络协议借口模块、网络设备接口模块、设备驱动功能模块和网络设备与媒介模块。具体视图如下&#xff1a; 网络协议接口模块&#xff1a;主要功能 网络接口卡接收和发送数据在 Linux 内核当中处理流程如下…