服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - DNS服务器 - Linux中搭建DNS域名解析服务器的详细过程

Linux中搭建DNS域名解析服务器的详细过程

2024-03-18 18:27神秘泣男子 DNS服务器

在Linux中搭建DNS服务器涉及配置和运行一个软件来提供DNS服务,DNS是互联网上的一种系统,它将域名转换为对应的IP地址,使得用户可以通过易记的域名访问网站,而不是记忆一长串数字,本文给大家详细介绍了Linux中搭建DNS域名解析服务器

DNS 从哪里获取 IP 地址?

  • 本地缓存: DNS服务器会将先前查询过的域名和对应的IP地址存储在本地缓存中,以便在后续查询中加快响应速度。如果之前已经查询过某个域名,DNS服务器会直接从本地缓存中获取对应的IP地址。
  • 递归查询: 如果本地缓存中没有目标域名的IP地址,DNS服务器会发起递归查询。它首先向根域名服务器发送查询请求,根域名服务器会返回指向负责顶级域(如.com、.net、.org等)的权威域名服务器的IP地址。然后,DNS服务器会向权威域名服务器发送查询请求,直到获取到目标域名的IP地址或者查询失败。
  • 转发查询: DNS服务器还可以配置为转发查询,即将未命中本地缓存的查询请求转发给其他DNS服务器处理。通常情况下,本地DNS服务器会将这些请求发送给ISP(Internet Service Provider,互联网服务提供商)提供的DNS服务器或者其他可靠的DNS服务器进行处理。

DNS的作用

  • 域名解析: DNS最主要的作用是将域名解析为对应的IP地址。当用户在浏览器中输入一个域名时,DNS系统会将这个域名转换为相应的IP地址,然后浏览器才能通过IP地址找到并访问目标网站。
  • 负载均衡: 通过DNS解析可以实现负载均衡,即将多个服务器的域名解析为不同的IP地址并在不同的时间将其返回给用户。这样可以分散流量到多台服务器上,提高网站的访问速度和稳定性。
  • 邮箱服务器定位: DNS也用于指定邮件服务器的IP地址。当发送电子邮件时,邮件服务器通过DNS解析找到收件人域名的邮件服务器IP地址,然后发送邮件。
  • 防止DNS劫持: DNS还能够通过各种方式来防止DNS劫持,即恶意修改DNS解析结果以实施网络攻击或监视用户活动的行为。例如,DNSSEC(DNS Security Extensions)可以通过数字签名来保护DNS解析结果的完整性和真实性。
  • 提供其他网络服务: DNS还可以用于提供其他网络服务,如反向DNS解析(将IP地址解析为域名)、动态域名解析(将动态IP地址映射到域名)、域名注册等。

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

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

首先服务器的配置

1.服务器配置

配置ip,关闭防火墙和selinux

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

yum install bind -y

Linux中搭建DNS域名解析服务器的详细过程

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; };

Linux中搭建DNS域名解析服务器的详细过程

以下是详细配置解释:

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

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

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

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

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

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

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

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

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

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

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

定义正向查询

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

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

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

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

红色框框里边的就是

Linux中搭建DNS域名解析服务器的详细过程

以下是配置详解:

需要强调的是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; };
};

如图红色框框

Linux中搭建DNS域名解析服务器的详细过程

检测是否语法错误

named-checkconf /etc/named.conf

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

systemctl restart named

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

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

cd /var/named/

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

Linux中搭建DNS域名解析服务器的详细过程

如下

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

如下就是我复制的文件

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

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

Linux中搭建DNS域名解析服务器的详细过程

加入解析信息(正向)

vim example.com.zone 

观看如下配置

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

红色框框里边可以修改 

Linux中搭建DNS域名解析服务器的详细过程

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

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

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

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

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

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

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

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

加入解析信息(反向)

vim example.com.arpa

观看如下配置

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

红色框框里边可以修改 

Linux中搭建DNS域名解析服务器的详细过程

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地址

Linux中搭建DNS域名解析服务器的详细过程

正向解析测试

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

Linux中搭建DNS域名解析服务器的详细过程

反向解析测试

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

Linux中搭建DNS域名解析服务器的详细过程

注意事项

如果重启发现

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

Linux中搭建DNS域名解析服务器的详细过程

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

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

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

还有就是.记得加上去

Linux中搭建DNS域名解析服务器的详细过程

以上就是Linux中搭建DNS域名解析服务器的详细过程的详细内容,更多关于Linux中搭建DNS域名的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/jxjdhdnd/article/details/136699043

延伸 · 阅读

精彩推荐