从零开始:CentOS系统下搭建DNS服务器的具体教程

打印 上一主题 下一主题

主题 677|帖子 677|积分 2031



前言

如果你希望在CentOS系统上建立自己的DNS服务器,那么这篇文章绝对是你不容错过的宝藏指南。我们提供了详尽的步骤和实用技巧,让你可以大概轻松完成搭建过程。从安装须要的软件到配置地区文件,我们都将一一为你呈现。无论你的身份是运维人员,还是步伐员,抑或是对网络底子设施感兴趣的读者,我信赖这篇文章都将为你提供有力的资助。开始阅读本文吧,开始打造一个高效、可靠的DNS剖析服务!
DNS

DNS代表域名系统(Domain Name System),它是互联网中的一项基本服务。DNS是一个分布式的命名系统,用于将人类可读的域名转换成计算机可理解的IP地点。
在互联网上,每个设备都有其唯一的IP地点,如192.168.1.1。然而,人们更容易记着有意义的域名,如google.com或baidu.com等。当您在欣赏器中输入域名时,欣赏器会发送请求到DNS服务器,并获取与该域名相对应的IP地点。这样,欣赏器就可以使用该IP地点与目标服务器进行通信和交互。
DNS系统是一个分层的布局,由许多不同的DNS服务器构成。这些服务器按照层次布局进行组织,每个层次都由不同的组织或机构管理。在顶层,有根DNS服务器,它存储了全部顶级域名服务器的信息。下一层是顶级域名服务器,它存储了特定顶级域名(如.com、.org、.cn等)的DNS记录。末了,有权威DNS服务器,它存储了与具体域名相对应的IP地点。
DNS的作用是剖析域名,并将其转换为相应的IP地点,以便设备可以大概准确地定位和访问目标服务器。它是互联网底子设施中不可或缺的一部门,使得我们可以大概轻松地欣赏网站、发送电子邮件、进行网络通信等。
应用场景

到底有没有须要自己来动手搭建DNS服务器呢?大概说,在什么场景下必要自己动手来搭建DNS服务器?信赖每个人的答案大概都不雷同。我认为掌握DNS服务器的搭建还是很须要的,至少在下面几种场景下,是必要自己来动手搭建一个DNS服务器的:


  • 局域网内部剖析:如果你在局域网中拥有多个设备,希望它们可以大概通过域名相互访问,而不是仅仅使用 IP 地点,那么你可以搭建一个 DNS 服务器来实现内部剖析。这样,你可以使用自界说的域名来访问各个设备,进步网络的可用性和易用性。
  • 域名注册和管理:如果你是一个企业或组织,并且拥有自己的域名,你大概必要搭建一个 DNS 服务器来管理你的域名。通过搭建自己的 DNS 服务器,你可以更灵活地配置域名剖析、子域名管理,以及其他 DNS 相干的设置,以满足你的特定需求。
  • 潜伏内部网络拓扑:在某些情况下,你大概希望潜伏你的内部网络拓扑布局,以增加网络的安全性。通过搭建自己的 DNS 服务器,你可以将内部 IP 地点映射为不公开的域名,从而潜伏实际的网络布局。
DNS服务器搭建过程

在一个CentOS 7 系统中安装dns服务器,具体的步骤是什么呢?实在很简单,在CentOS 7上安装DNS服务器通常使用BIND(Berkeley Internet Name Domain)软件,这个软件在上一篇文章《CentOS系统的DNS管理:超实用的几种DNS管理工具的安装和使用方法全剖析》中已经提到过。以下是在CentOS 7上安装BIND DNS服务器的具体步骤:
更新系统的软件包:
  1. sudo yum update
复制代码
安装BIND:
  1. sudo yum install bind bind-utils
复制代码
配置BIND:
打开BIND的主配置文件:
  1. sudo nano /etc/named.conf
复制代码
先来看一下,配置文件中的 options 部门,如下所示:
  1. options {
  2. listen-on port 53 { any; };
  3. directory       "/var/named";
  4. dump-file       "/var/named/data/cache_dump.db";
  5. statistics-file "/var/named/data/named_stats.txt";
  6. memstatistics-file "/var/named/data/named_mem_stats.txt";
  7. allow-query     { any; };
  8. recursion yes;
  9. };
复制代码
上面的配置文件是什么意思?包含了哪些信息呢?这是一个典型的 BIND (Berkeley Internet Name Domain) 配置文件的一部门。BIND 是一个常用的 DNS (Domain Name System) 服务器软件。
这个配置段指定了以下内容:


  • listen-on port 53 { any; };: 指定 DNS 服务器监听的端口为 53,即 DNS 标准端口。any 表现答应任何 IP 地点毗连到该端口。
  • directory "/var/named";: 指定存储 BIND 相干文件的目次路径为 "/var/named"。这包罗配置文件、地区文件和其他数据文件。
  • dump-file "/var/named/data/cache_dump.db";: 指定缓存转储文件的路径。缓存转储文件用于生存 DNS 缓存的内容。
  • statistics-file "/var/named/data/named_stats.txt";: 指定统计信息文件的路径。该文件记录了 BIND 服务器的运行统计信息,如查询数量、相应时间等。
  • memstatistics-file "/var/named/data/named_mem_stats.txt";: 指定内存统计信息文件的路径。该文件记录了 BIND 服务器使用的内存统计信息。
  • allow-query { any; };: 答应任何主机查询该 DNS 服务器。这样就答应任何主机向该服务器发送 DNS 查询请求。
  • recursion yes;: 启用 DNS 递归查询功能。当 DNS 服务器无法直接剖析请求时,它将通过迭代查询其他 DNS 服务器来获取答案。
这只是配置文件的一部门,大部门情况下,这部门不必要动,更完整的配置文件通常还包罗地区界说、转发设置和安全性配置等。
如果想创建一个自界说的域名,通过域名来访问主机,还必要创建一个新的地区配置文件,以便配置有关域名的信息。打开 named.conf 文件,并在 zone 部门添加以下行,留意是单独配置:
  1. zone "fanfu.gx" IN {
  2.         type    master;
  3.         file    "db.fanfu.gx";
  4. };
复制代码
上面的配置是BIND 配置文件的一部门,这里我指定了一个名为 "fanfu.gx" 的 DNS 域,并指定了该域的类型为 master,同时指定了该域对应的地区文件为 "db.fanfu.gx"。具体解读一下上面配置的含义:


  • zone "fanfu.gx" IN {: 指定了该地区对应的 DNS 域名为 "fanfu.gx"。
  • type master;: 指定了该域的类型为 master。这意味着该 DNS 服务器是 "fanfu.gx" 域的主服务器,并负责管理该域的全部资源记录。
  • file "db.fanfu.gx";: 指定了该域对应的地区文件为 "db.fanfu.gx"。该文件包含了该域的全部资源记录,如主机名、IP 地点、邮件服务器等。
必要留意的是,地区文件通常包含多个资源记录,不同类型的资源记录有着不同的格式和语法。例如,A 记任命于将主机名映射到 IPv4 地点,MX 记任命于指定邮件服务器等等,背面在地区文件的配置中会再具体阐明。
创建地区文件:
在上面的bind配置文件中,只是界说了域名,但是并没有建立起域名与主机的关系,这里创建一个地区配置文件,留意要给这个文件读、写、可执行三种权限。
  1. sudo touch /var/named/db.fanfu.gx sudo chmod 777 /var/named/db.fanfu.gx
复制代码
在db.fanfu.gx文件中添加类似以下内容的信息:
  1. $TTL 1h
  2. @       IN      SOA     ns1.fanfu.gx. admin.fanfu.gx. (
  3.                         2024012001      ; 序列号
  4.                         3h              ; 刷新时间
  5.                         1h              ; 重试时间
  6.                         1w              ; 过期时间
  7.                         1h )            ; 默认 TTL
  8.        IN      NS      ns1.fanfu.gx.    ; 指定主域名服务器
  9.        IN      NS      ns2.fanfu.gx.    ; 指定备用域名服务器
  10. @       IN      A       192.168.35.99    ; 指定域名的 IPv4 地址
  11. ns1     IN      A       192.168.35.100    ; 主域名服务器的 IP 地址
  12. ns2     IN      A       192.168.35.100    ; 备用域名服务器的 IP 地址
复制代码
上述配置内容的具体含义:


  • SOA 记录以 @ 表现当前域名,指定了域名的授权来源和一些其他信息,如上指定了主域名服务器为 ns1.fanfu.gx,管理员邮箱为 admin.fanfu.gx,序列号为 2024012001,革新时间为 3 小时,重试时间为 1 小时,过期时间为 1 周,TTL(Time To Live)为 1 小时。
  • NS 记录指定了域名服务器的名称,如上指定了主域名服务器为 ns1.fanfu.gx,备用域名服务器为 ns2.fanfu.gx。
  • A 记录指定了域名的 IPv4 地点,如上:指定了域名 fanfu.gx 的 IPv4 地点为 192.168.35.99。
  • 另有两条记录指定了域名服务器的 IP 地点,这些记录分别指定了主域名服务器和备用域名服务器的 IPv4 地点为 192.168.35.100。实际来讲应该是两台DNS服务器,一主一备,这里我简化设置成了主备为同一个。
请根据您的网络配置和域名信息修改IP地点和域名。
防火墙要开启53端口,下面是开启53端口,重新启动防火墙以便新开53端口可以生效以及查询已开放端口的下令:
  1. sudo firewall-cmd --zone=public --add-port=53/tcp --permanent
  2. sudo firewall-cmd --reload
  3. sudo firewall-cmd --zone=public --list
复制代码
接着,启动并启用BIND服务(第二条下令用于把bind服务设置成为开机启动):
  1. sudo systemctl start named
  2. sudo systemctl enable named
复制代码
启动bind服务后,可以使用以下下令查抄BIND服务的状态:
  1. sudo systemctl status named
复制代码
确保服务已经启动并且没有错误。

在客户端配置DNS:
至此DNS服务端已经搭建好了,DNS服务器的地点是192.168.35.100;在上面的配置中,还指定了主机ip是192.168.35.99的域名是fanfu.gx;现在登岸到主机ip是192.168.35.99的服务器上,更新一下fanfu.gx主机的的DNS地点为192.168.35.100,具体来说就是,在/etc/resolv.conf 文件中添加DNS服务器的IP地点:
  1. nameserver 192.168.35.100
复制代码
配置完resolv.conf文件后,重启网络服务
  1. systemctl restart NetworkManager
复制代码
重启网络服务后,留意要查抄一下resolv.conf文件的nameserver是否被重置了。如果重启后,发现resolv.conf中的配置被重置,那么在/etc/NetworkManager/NetworkManager.conf中增加下面的配置,然后再重启网络服务,就不会再重置了,这个配置的作用是:告诉NetworkManager不要自动配置DNS服务器。这意味着NetworkManager将不会自动从DHCP服务器或其他来源获取DNS服务器的信息,也不会自动更新/etc/resolv.conf文件。这通常用于在特定网络环境下手动配置DNS设置,大概如果用户希望完全由自己管理DNS设置而不希望NetworkManager进行干预。
  1. [main]
  2. dns=none
复制代码
完成上述步骤后,执行下面的下令进行测试验证
  1. ping fanfu.gx
复制代码

可以看到,配置在CentOS 7系统的DNS服务器正在运行,为你提供域名剖析服务。
设置互联网根域和设置DNS转发

CentOS系统搭建DNS服务器后,要不要设置互联网根域和设置DNS转发呢?想要答复这个问题,必要先来看一看什么是设置互联网根域和设置DNS转发以及作用。
设置互联网根域和设置DNS转发是两个不同的概念,它们分别对应着DNS服务器的两种重要功能。


  • 设置互联网根域:在DNS服务器中设置互联网根域(通常表现为“.”)是指在DNS配置中指定根域的权威剖析服务器。互联网根域包含了整个互联网的顶层域名信息,如.com、.org、.net等。通过设置互联网根域,DNS服务器可以进行全局的域名剖析,确保可以大概正常剖析并访问互联网上的各种网站和资源。
  • 设置DNS转发:DNS转发是指当当地DNS服务器无法直接剖析某个域名时,将DNS查询请求转发给其他上游DNS服务器进行剖析的过程。通过设置DNS转发,当地DNS服务器可以向上游DNS服务器请求资助来剖析外部域名,从而进步剖析服从和减轻自身的负担。
设置互联网根域和设置DNS转发的作用:


  • 设置互联网根域:确保DNS服务器具有全局的域名剖析本领,可以大概剖析并访问互联网上的全部域名和资源。
  • 设置DNS转发:进步当地DNS服务器的剖析服从,加快对外部域名的剖析速度,并减轻当地DNS服务器的负担。
综而言之,通过正确设置互联网根域和DNS转发,可以保证DNS服务器可以大概有效地剖析互联网上的各种域名,并提供快速、可靠的域名剖析服务。
由此可见,如果只是纯纯在局域网内玩一玩,那就没有须要设置互联网根域和设置DNS转发。
既然说到这里,还是要深入一点,继承分享一下在 CentOS 上搭建 DNS 服务器后,设置互联网根域和配置 DNS 转发的步骤:


  • 设置互联网根域
编辑 named.conf 文件:打开 BIND 的主配置文件 named.conf,通常位于 /etc/named.conf。
  1. sudo vi /etc/named.conf
复制代码


  • 配置互联网根域
在 named.conf 中找到 options 部门,然后添加或确保以下行存在(在上面的配置中实际上已经配过了):
  1. options {
  2. // ...
  3. recursion yes;
  4. allow-recursion { localhost; };
  5. // ...
  6. };
复制代码
allow-query { any; };: 答应任何主机查询该 DNS 服务器。这样就答应任何主机向该服务器发送 DNS 查询请求。
recursion yes;: 启用 DNS 递归查询功能。当 DNS 服务器无法直接剖析请求时,它将通过迭代查询其他 DNS 服务器来获取答案。 


  • 重启 BIND 服务
生存文件后,重启 BIND 服务以应用更改:
  1. sudo systemctl restart named
复制代码


  • 配置 DNS 转发
编辑 named.conf 文件:打开 BIND 的主配置文件 named.conf,通常位于 /etc/named.conf。
  1. sudo vi /etc/named.conf
复制代码
在 options 部门配置 DNS 转发:在 options 部门添加或确保以下行存在:
  1. options {
  2. // ...
  3. forwarders { 8.8.8.8; 8.8.4.4; };  // 使用 Google Public DNS 作为转发服务器,可以根据需要更改
  4. forward only;
  5. // ...
  6. };
复制代码
forwarders 行指定 DNS 转发服务器的 IP 地点,这里使用了 Google Public DNS 作为示例。你可以根据必要更改为其他 DNS 服务器的 IP 地点。


  • 重启 BIND 服务:
生存文件后,重启 BIND 服务以应用更改:
  1. sudo systemctl restart named
复制代码
network如何配置DNS服务

在CentOS一个相对低的版本里,是用network来管理网络服务的,那么在 network 服务中配置 DNS 服务必要编辑相应的网络配置文件,通常是 ifcfg 文件,例如 ifcfg-ens33(具体文件名大概因网络接口而异)。
我使用的是CentOS 7 ,安装后的网络接口名为 ens33。请留意,这里使用的是静态 IP 地点和手动配置 DNS 的示例。如果你的网络是动态分配 IP 地点(DHCP),那么 DNS 配置通常会由 DHCP 服务器提供。
打开 ifcfg-ens33 文件进行编辑:
  1. sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码
在文件中找到并编辑 DNS1 和 DNS2 行。添加或修改这些行以设置你的首选和备用 DNS 服务器的 IP 地点。示例:
  1. DNS1=8.8.8.8
  2. DNS2=8.8.4.4
复制代码
请将上述 IP 地点更换为你希望使用的 DNS 服务器的实际地点。
生存并关闭文件。
重启 network 服务以应用更改:
  1. sudo systemctl restart network
复制代码
以上步骤应该将指定的 DNS 服务器配置到你的网络接口。请记得根据实际情况修改 IP 地点,这里的示例使用的是 Google 的公共 DNS 服务器地点。如果你使用 DHCP,大概必要通过 DHCP 配置文件或网络管理器工具来配置 DNS。
写在末了

如果你以为这篇文章对你有所资助,不妨点击点赞按钮,让更多的人看到这篇优质的技术分享。同时,别忘了将这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术程度始终保持在最高程度。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表