Linux中搭建DNS 域名解析服务器(详细版)

CSDN 成就一亿技术人!

作者主页:点击!

Linux专栏:点击!

CSDN 成就一亿技术人!

————前言————

在Linux中搭建DNS服务器涉及配置和运行一个软件来提供DNS服务。DNS(Domain Name System)是互联网上的一种系统,它将域名转换为对应的IP地址,使得用户可以通过易记的域名访问网站,而不是记忆一长串数字。


目录

————前言————

DNS 从哪里获取 IP 地址?

DNS的作用

1.服务器配置

2.编辑配置文件

定义正向查询

定义反向查询

修改正反区域文件(重点)

加入解析信息(正向)

加入解析信息(反向)

3.客户机测试

正向解析测试

反向解析测试

​编辑

注意事项


DNS 从哪里获取 IP 地址?

  1. 本地缓存: DNS服务器会将先前查询过的域名和对应的IP地址存储在本地缓存中,以便在后续查询中加快响应速度。如果之前已经查询过某个域名,DNS服务器会直接从本地缓存中获取对应的IP地址。

  2. 递归查询: 如果本地缓存中没有目标域名的IP地址,DNS服务器会发起递归查询。它首先向根域名服务器发送查询请求,根域名服务器会返回指向负责顶级域(如.com、.net、.org等)的权威域名服务器的IP地址。然后,DNS服务器会向权威域名服务器发送查询请求,直到获取到目标域名的IP地址或者查询失败。

  3. 转发查询: DNS服务器还可以配置为转发查询,即将未命中本地缓存的查询请求转发给其他DNS服务器处理。通常情况下,本地DNS服务器会将这些请求发送给ISP(Internet Service Provider,互联网服务提供商)提供的DNS服务器或者其他可靠的DNS服务器进行处理。

DNS的作用

  1. 域名解析: DNS最主要的作用是将域名解析为对应的IP地址。当用户在浏览器中输入一个域名时,DNS系统会将这个域名转换为相应的IP地址,然后浏览器才能通过IP地址找到并访问目标网站。

  2. 负载均衡: 通过DNS解析可以实现负载均衡,即将多个服务器的域名解析为不同的IP地址并在不同的时间将其返回给用户。这样可以分散流量到多台服务器上,提高网站的访问速度和稳定性。

  3. 邮箱服务器定位: DNS也用于指定邮件服务器的IP地址。当发送电子邮件时,邮件服务器通过DNS解析找到收件人域名的邮件服务器IP地址,然后发送邮件。

  4. 防止DNS劫持: DNS还能够通过各种方式来防止DNS劫持,即恶意修改DNS解析结果以实施网络攻击或监视用户活动的行为。例如,DNSSEC(DNS Security Extensions)可以通过数字签名来保护DNS解析结果的完整性和真实性。

  5. 提供其他网络服务: DNS还可以用于提供其他网络服务,如反向DNS解析(将IP地址解析为域名)、动态域名解析(将动态IP地址映射到域名)、域名注册等。

接下来讲讲我们在本地搭建DNS解析

以下实验测试均在VMware中 centos操作系统

首先服务器的配置

1.服务器配置

配置ip,关闭防火墙和selinux

安装BIND包他就是dns的安装包需要下载它

yum install bind -y

2.编辑配置文件

/etc/named.conf 是DNS的配置文件 

vim /etc/named.conf
options {listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };directory       "/var/named";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";allow-query     { any; };

以下是详细配置解释:

大家了解即可 主要还是图中红色框中的字母

  1. options: 这个部分包含了DNS服务器的一般选项设置。

  2. listen-on port 53 { any; }: 指定DNS服务器监听的端口。在这个示例中,DNS服务器监听在53端口,允许任何IP地址连接到该端口。这意味着DNS服务器会接受来自任何IP地址的DNS查询请求。

  3. listen-on-v6 port 53 { ::1; }: 指定IPv6地址的监听端口。在这个示例中,DNS服务器监听IPv6地址的53端口,只允许本地IPv6地址(::1)连接到该端口。

  4. directory "/var/named";: 指定存储DNS服务器相关数据文件的目录路径。在这个示例中,数据文件存储在/var/named目录下。

  5. dump-file "/var/named/data/cache_dump.db";: 指定DNS服务器在关闭时将缓存内容写入的文件路径。这个文件通常用于调试和故障排除。

  6. statistics-file "/var/named/data/named_stats.txt";: 指定DNS服务器的统计信息输出文件路径,用于记录DNS服务器的运行统计数据。

  7. memstatistics-file "/var/named/data/named_mem_stats.txt";: 指定DNS服务器的内存使用统计输出文件路径,用于记录DNS服务器的内存使用情况。

  8. recursing-file "/var/named/data/named.recursing";: 指定DNS服务器递归查询的记录文件路径。

  9. secroots-file "/var/named/data/named.secroots";: 指定DNS服务器的安全根文件路径。

  10. allow-query { any; };: 指定允许查询的IP地址范围。在这个示例中,允许任何IP地址进行DNS查询。

定义正向查询

正向查询是最常见的DNS查询方式之一。

正向查询用于将域名解析为IP地址,这样用户就可以使用易记的域名来访问互联网上的各种网络资源,而不需要记忆IP地址。

在dns配置文件中加入如下信息:

zone "example.com" IN {type master;file "example.com.zone";allow-update { none; };
};   

红色框框里边的就是

以下是配置详解:

需要强调的是file指定的是文件路径

type master;: 表明这是主 DNS 服务器,负责提供 "example.com" 区域的数据。

file "example.com.zone";: 指定了包含 "example.com" 区域数据的文件的路径。

allow-update { none; };: 指定了允许对区域进行动态更新的权限。在这种情况下,none 表示不允许任何动态更新,因此区域数据只能通过手动编辑区域文件来更新。

定义反向查询

反向查询是一种从IP地址到域名的查询方式。

反向查询主要用于安全审计、网络管理和验证IP地址归属等方面。例如,当收到来自某个IP地址的网络流量时,可以通过反向查询确认该IP地址对应的域名,从而了解到流量的来源。

zone "180.168.192.in-addr.arpa" IN {type master;file "example.com.arpa";allow-update { none; };
};

如图红色框框

 检测是否语法错误

named-checkconf /etc/named.conf

编辑完成之后保存退出并且重启

systemctl restart named
修改正反区域文件(重点)

进入到DNS服务器相关文件存储目录 /var/named/

cd /var/named/

观察这两个文件 其实是一个实例文件接下来我们复制两份用(找任意一个都可以)

如下

cp -p named.empty example.com.zone
cp -p named.empty example.com.arpa

如下就是我复制的文件

example.com.zone        当做正向查询解析来用

example.com.arpa         当做反向查询来使用

加入解析信息(正向)
vim example.com.zone 

观看如下配置

格式就是这样的 请大家按照这样写

红色框框里边可以修改 

  1. example.com.: 指定了主域名为 example.com

  2. root.example.com.: 这个字段指定了负责管理该域名的DNS服务器的邮箱地址,形式为 root@example.comroot 是指定了这个域名的管理员(或者叫根管理员),而 example.com 是该管理员的邮箱地址的域名部分。

  3. @ IN NS dns.example.com.:这行指定了域名 example.com 的DNS服务器是 dns.example.com。NS记录(Name Server)指定了管理特定区域的DNS服务器。

  4. dns IN A 192.168.180.188:这行指定了主机名 dns 对应的IP地址是 192.168.180.188。A记录(Address Record)用于将域名解析为IPv4地址。

  5. www IN A 192.168.180.189:这行指定了主机名 www 对应的IP地址是 192.168.180.189

  6. exam IN A 192.168.180.190:这行指定了主机名 exam 对应的IP地址是 192.168.180.190

  7. ftp IN A 192.168.180.191:这行指定了主机名 ftp 对应的IP地址是 192.168.180.191

  8. sun IN A 192.168.180.44:这行指定了主机名 sun 对应的IP地址是 192.168.180.44

加入解析信息(反向)
vim example.com.arpa

观看如下配置

格式就是这样的 请大家按照这样写

红色框框里边可以修改 

PTR 记录将 IP 地址映射到相应的域名。

@ IN NS dns.example.com.:这行指定了该反向区域的DNS服务器是 dns.example.com。NS记录(Name Server)指定了管理特定区域的DNS服务器。

188 IN PTR dns.example.com.:这行指定了IP地址以 188 结尾的主机对应的域名是 dns.example.com。PTR记录(Pointer Record)用于将IP地址解析为域名。

189 IN PTR www.example.com.:这行指定了IP地址以 189 结尾的主机对应的域名是 www.example.com。

190 IN PTR exam.example.com.:这行指定了IP地址以 190 结尾的主机对应的域名是 exam.example.com。

191 IN PTR ftp.example.com.:这行指定了IP地址以 191 结尾的主机对应的域名是 ftp.example.com。

44 IN PTR sun.example.com.:这行指定了IP地址以 44 结尾的主机对应的域名是 sun.example.com。

此刻已经写完了所有的配置信息 重启服务

3.客户机测试

配置ip,关闭防火墙和selinux

[root@localhost ~] vim /etc/resolv.conf

/etc/resolv.conf 是一个用于配置 DNS 解析的重要文件

将它指向dns服务器IP地址

正向解析测试

通过测试发现一切都如配置文件对应关系那样

反向解析测试

通过测试发现一切都如配置文件对应关系那样

注意事项
 

如果重启发现

Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe" for details.

那就是配置文件在你编辑时候出现了错误

vim        /etc/named.conf 编辑这个文件 仔细的去观察你编辑的信息

如果解析发现解析失败 那就是正反解析文件中的问题

还有就是.记得加上去

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

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

相关文章

STM32中断和外部中断

NVIC:嵌套中断向量控制器:用于统一分配中断优先级和管理中断 响应式优先级:也可以称为插队式优先级哪个优先级高优先处理哪个 抢占式优先级:优先级高的可以优先被处理,相当于CPU可以暂时中断当前处理的程序&#xff0c…

电脑闹钟软件,电脑上定时提醒的软件

我们生活在一个忙碌的时代,工作、学习、生活等各种事务时常让我们忙得不知所措。而在这样的情况下,一款电脑闹钟软件,电脑上定时提醒的软件就成为了我们不可或缺的工具之一。 电脑闹钟软件,电脑上定时提醒的软件,是一…

1个二维码能包含多个视频吗?制作视频二维码的方法

二维码在生活中现在随处可见,除了用于支付之外,展示内容也可以通过二维码来展现,比如常见的视频、图片、文件、音频等内容都可以通过二维码来展现。那么当我们需要将多个视频存入一个二维码中展示时,该如何利用二维码生成器的工具…

request库安装和使用

前言 requests 库是 Python 中用于发送 HTTP 请求的一个非常流行的库,它简单易用,广泛应用于各种场景。主要用于爬虫和Web 服务的测试.前者是对外进行数据的收集,后者就是服务的性能. 通识 requests库用于实现HTTP请求.那我们最好了解一下HTTP协议以及请…

免费 Copilot 用户可以访问 OpenAI 的 GPT-4 Turbo;面向 3D 虚拟环境的多面手 AI 代理

🦉 AI新闻 🚀 免费 Copilot 用户可以访问 OpenAI 的 GPT-4 Turbo 摘要:微软宣布免费版Copilot已升级到GPT-4 Turbo模型,所有用户都可以免费使用。此外,Copilot Pro新增了GPT Builder工具,订阅者可创建自定…

vi 显示行号 显示色彩

首先进入当前用户目录下的.vimrc文件/.virc文件(具体要看操作系统) vi ~/.virc 显示行号 set number 显示色彩 highlight LineNr guifgred 效果

如何打开EDI文件?

使用EDI系统传输文件的过程中,用户可能会遇到这样的问题:如何打开EDI文件?电脑不在身边如何查看EDI文件?EDI文件未按照标准格式呈现如何梳理?为了解决上述问题,方便用户查看文件,知行之桥EDI系统…

如何在数据库中存储小数:FLOAT、DECIMAL还是BIGINT?

前言 这里还是用前面的例子: 在线机票订票系统的数据表设计。此时已经完成了大部分字段的设计,可能如下: CREATE TABLE flights ( flight_id INT AUTO_INCREMENT PRIMARY KEY, flight_number VARCHAR(10), departure_airport_code VARCHAR(3), arrival_air…

SAT和SMT介绍及求解器使用

一、SAT 1、介绍 (1)定义 SAT即命题逻辑公式的可满足性问题/布尔可满足性问题。即给定一个与或非和变量组成的命题公式,判断是否存在一些结果使得这个公式成立 它是第一个被确认为NP完全的问题。 输入:析取范式(C…

Three 材质纹理 (总结三)

THREE.MeshLambertMaterial(网格 Lambert 材质) 该材质使用基于非物理的Lambertian模型来计算反射率。可以用来创建暗淡的并不光亮的表面,该材质非常易用,而且会与场景中的光源产生反应。 MeshLambertMaterial属性 # .color : …

深度学习技巧总结

1、监控GPU使用情况 pip install nvitopnvitop -m fullhttps://zhuanlan.zhihu.com/p/577533593 2、本地拉取服务器上tensorboard数据并进行可视化显示 https://blog.csdn.net/Thebest_jack/article/details/125609849 3、服务器打不开pycharm软件 这个是已经有一个软件在运…

用Robotframework+selenium 进行webui页面自动化测试

Robotframework其实就是一个自动化的框架,想要进行什么样的自动化测试,就需要在这框架上添加相应的库文件,而用于webui页面自动化测试的就是selenium库. ​ 关于robotframework框架的搭建我这里就不说了,今天就给大家根据一个登录…