当前位置: 首页 > article >正文

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

前言

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.kler.cn/news/339810.html

相关文章:

  • CleverPDF是一款专业的pdf转换器-强大的PDF表格识别能够将PDF中的表格提取到Excel或者其他格式-供大家学习研究参考
  • STM32移植RT-thread实现IIC与AT24C02的通信功能(含软件包和软件模拟IIC两种方法)
  • linux常用命令记录
  • Spring Cloud微服务详解
  • 三角形面积 python
  • 【优选算法】(第二十七篇)
  • Springboot Web
  • 路由:ReactRouter
  • 数据驱动投资:AI在股票市场的应用
  • 未来已来:探索日常小发明背后的专利革命
  • C++语言学习(3): type 的概念
  • 八、Drf解析器
  • 怎么设计自己的算力中心
  • 论文写作技巧
  • LeetCode 130.被围绕的区域 Python题解
  • 【业务场景】最全的购物车设计与实现
  • MySql - 数据库操作
  • 188页企业数字化转型建设方案(数据中台、业务中台、AI中台)
  • 深入探索与实践:抖音商品详情接口的高效调用与数据处理技术
  • C++中的变量与函数的命名规则