DNS服务器配置与管理(3)——综合案例

DNS服务器配置与管理

前言

在之前,曾详细介绍了DNS服务器原理和使用BIND部署DNS服务器,本文主要以一个案例为驱动,在网络中部署主DNS服务器、辅助DNS服务器以及子域委派的配置。

案例需求

某公司申请了域名example.com,公司服务器配置如下图所示,总公司和分公司为父子域架构,父域服务器所在的网段是192.168.200.0/24,有FTP服务器、WEB服务器、电子邮件服务器,分公司使用子域规划,子域名为develop,所在网段为192.168.100.0/24,部署了文件服务器、流媒体服务器。

在这里插入图片描述
现需在总公司附属父域的主DNS服务器和辅助DNS服务器,子域通过委派方式由子域DNS服务器管理,并规划资源记录主要属性如下表所示:

1、总公司服务器

序号记录名称记录类型属性值作用
01masterA192.168.200.100总公司主DNS服务器
02slaverA192.168.200.200总公司辅助DNS服务器
03ftpA192.168.200.21总公司FTP服务器
04wwwA192.168.200.22总公司WEB服务器
05smtpA192.168.200.23总公司电子邮件服务器
06pop3A192.168.200.23总公司电子邮件服务器
07example.comSOA默认
08example.comNSmaster.example.com
09example.comNSslaver.example.com
10www1CNAMEwww.example.com
11mailCNAMEsmtp.example.com
12example.comMXsmtp.example.com
13所有主机记录创建对应的PTR记录

2、分公司服务器

序号记录名称记录类型属性值作用
01dnsA192.168.100.100分公司DNS服务器
02fileA192.168.100.11分公司文件服务器
03vodA192.168.100.12分公司流媒体服务器
04develop.example.comSOA默认
05develop.example.comNSdns.develop.example.com

一、实验环境部署

本实验基于VMware Workstation 16平台,VMnet1网段为192.168.100.0/24,VMnet8网段为192.168.200.0/24,实验之前配置好网卡IP地址、做好实验环境初始化。

服务器IP地址操作系统配置
总公司主DNS服务器192.168.200.100CentOS 7.5配置YUM源、关闭防火墙、SELinux
总公司辅助DNS服务器192.168.200.200CentOS 7.5配置YUM源、关闭防火墙、SELinux
分公司DNS服务器192.168.100.100CentOS 7.5配置YUM源、关闭防火墙、SELinux
测试主机192.168.200.222Windows 10-

二、部署总公司主DNS服务器

2.1 安装DNS服务器

配置好YUM源后,在主DNS服务器上安装BIND。

[root@master ~]# yum install bind -y

BIND安装好后,会生成一个named.service的系统服务,启动named服务并设置开机重启。

[root@master ~]# systemctl start named
[root@master ~]# systemctl enable named
2.2 修改主配置文件

编辑**/etc/named.conf**主配置文件

[root@master ~]# vim /etc/named.conf

找到对应的内容并做以下修改:

options {listen-on port 53 { any; };			# 127.0.0.1改成any......allow-query     { any; };			# localhost改成any......
}
......
include "/etc/named.zones";			# /etc/named.rfc1912.zones改成/etc/named.zones# /etc/named.zones是自定义的区域配置文件
include "/etc/named.root.key";
......
2.3 编辑区域配置文件

区域配置文件**/etc/named.zones**,可以从模板文件复制,加**-p**选项保留原有属性。

[root@master ~]# cp -p  /etc/named.rfc1912.zones /etc/named.zones

在该区域配置文件中,添加两个区域,一个example.com的正向解析区域,和一个200.168.192.in-addr.arpa的反向解析区域。

编辑区域配置文件**/etc/named.zones**

[root@master ~]# vim /etc/named.zones

删除原来的内容,修改内容如下:

zone "example.com" IN {type master;file "example.com.zone";		#正向解析区域数据库文件 保存在/var/named/目录中allow-update { none; };
};zone "200.168.192.in-addr.arpa" IN {type master;file "100.200.168.192.zone";		#反向解析区域数据库文件 保存在/var/named/目录中allow-update { none; };
};
2.4 编辑正向解析区域数据库文件

配置example.com区域的正向解析区域数据库文件,该文件从模板文件**/var/named/named.localhost**复制而来。

[root@master ~]# cp -p  /var/named/named.localhost /var/named/example.com.zone

编辑正向解析区域数据库文件

[root@master ~]# vim /var/named/example.com.zone

按照上面总公司服务器规划,修改内容如下

$TTL 1D
@       IN SOA  @ mail.example.com. (2024041501      ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@       IN NS           master.example.com.
@       IN MX           10      smtp.example.com.master  IN A            192.168.200.100
ftp     IN A            192.168.200.21
www     IN A            192.168.200.22
smtp    IN A            192.168.200.23
pop3    IN A            192.168.200.23www1    IN CNAME        www.example.com
mail    IN CNAME        smtp.example.com
2.5 编辑反向解析区域数据库文件

配置example.com区域的反向解析区域数据库文件,该文件从模板文件**/var/named/named.loopback**复制而来。

[root@master ~]# cp -p /var/named/named.loopback /var/named/100.200.168.192.zone

编辑反向解析区域数据库文件

[root@master ~]# vim /var/named/100.200.168.192.zone

按照上面总公司服务器规划,修改内容如下

$TTL 1D
@       IN SOA  @ mail.example.com. (2024041501      ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum@       IN      NS      master.example.com.100     IN      PTR     master.example.com.
21      IN      PTR     ftp.example.com.
22      IN      PTR     www.example.com.
23      IN      PTR     smtp.example.com.
23      IN      PTR     pop3.example.com. 
2.6 检查测试

1、检查主配置文件

[root@master ~]# named-checkconf /etc/named.conf

2、检查两个区域数据库文件

检查正向解析区域数据库文件

[root@master ~]# named-checkzone example.com /var/named/example.com.zone
zone example.com/IN: loaded serial 2024041501
OK

检查反向解析区域数据库文件

[root@master ~]# named-checkzone 200.168.192.in-addr.arpa /var/named/100.200.168.192.zone
zone 200.168.192.in-addr.arpa/IN: loaded serial 2024041501
OK

3、重新加载DNS区域配置

如果DNS服务器已经启动了,就使用rndc reload重新加载所有区域配置。

[root@master ~]# rndc  reload
server reload successful

4、测试

在测试主机(Windows 10)上配置网络适配器的首选DNS服务器为上面配置的总公司主DNS服务器地址。

使用nslookup测试主DNS服务器的解析功能。如下图所示:

在这里插入图片描述

三、部署总公司辅助DNS服务器

3.1 Slaver:安装DNS服务并启动
[root@slaver ~]# yum install bind -y
[root@slaver ~]# systemctl start named
[root@slaver ~]# systemctl enable named
3.2 Master:修改配置

1、修改主DNS服务器的主配置文件

[root@master ~]# vim /etc/named.conf

在option部分增加一行,允许192.168.200.200的主机从本机复制

options {......allow-transfer { 192.168.200.200; };......
}

2、修改主DNS服务器的正向解析区域数据库文件/var/named/example.com.zone

[root@master ~]# vim /var/named/example.com.zone

在该文件中增加一条NS记录和一条主机记录

# 增加的NS记录
@       IN NS           slaver.example.com.
# 增加的主机记录
slaver  IN A            192.168.200.200

3、修改主DNS服务器的反向解析区域数据库文件/var/named/100.200.168.192.zone

[root@master ~]# vim /var/named/100.200.168.192.zone

在该文件中增加一条NS记录和一条指针记录

# 增加的NS记录
@       IN NS           slaver.example.com.
# 增加的主机记录
200     IN      PTR     slaver.example.com.

4、检查配置文件并重启DNS服务

[root@master ~]# named-checkconf /etc/named.conf
[root@master ~]# named-checkzone example /var/named/example.com.zone
zone example/IN: loaded serial 2024041501
OK
[root@master ~]# named-checkzone 200.168.192.in-addr.arpa /var/named/100.200.168.192.zone
zone 200.168.192.in-addr.arpa/IN: loaded serial 2024041501
OK
[root@master ~]# systemctl restart named
3.3 Slaver:修改主配置文件

1、修改辅助DNS服务器的主配置文件

[root@slaver ~]# vim /etc/named.conf

修改内容如下:

options {listen-on port 53 { any; };			# 修改127.0.0.1改成any......allow-query     { any; };			# 修改localhost改成anyallow-transfer { none; };			# 增加此行,拒绝任何主机从本服务器拉取数据......
}
include "/etc/named.rfc1912.zones";			# 删除此行								
include "/etc/named.root.key";				# 删除此行	
......
# 添加以下配置
zone "example.com"{type slave;							# 区域类型为slavefile "slaves/example.com.zone";		# 正向解析区域的数据库文件masters { 192.168.200.100; };
};zone "200.168.192.in-addr.arpa"{type slave;file "slaves/100.200.168.192.zone";	# 反向解析区域的数据库文件masters { 192.168.200.100; };
};

2、检查配置文件语法

[root@slaver ~]# named-checkconf /etc/named.conf

说明:辅助DNS服务器不需要创建DNS区域数据库文件,这些文件待辅助DNS重启或者等到一定时间到,从主DNS服务器复制过来,并保存在目录**/var/named/slaves**中。

3.3 检查主从DNS服务器数据同步

同步之前查看区域数据库文件信息,没有区域数据库文件

[root@slaver ~]# ll /var/named/slaves/
总用量 0

重新启动辅助DNS服务器的DNS服务

[root@slaver ~]# systemctl restart named

重新查看区域数据库文件信息,此时有区域数据库文件,说明复制成功

[root@slaver ~]# ll /var/named/slaves/
总用量 8
-rw-r--r--. 1 named named 595 4月  15 17:58 100.200.168.192.zone
-rw-r--r--. 1 named named 647 4月  15 17:58 example.com.zone

继续查看主DNS服务器的日志文件**/var/log/messages**,可以看到传输日志

[root@master ~]# tail /var/log/messages
Apr 15 17:38:34 server named[48206]: running
Apr 15 17:38:34 server named[48206]: zone 200.168.192.in-addr.arpa/IN: sending notifies (serial 2024041501)
Apr 15 17:38:34 server named[48206]: zone example.com/IN: sending notifies (serial 2024041501)
Apr 15 17:38:34 server systemd: Started Berkeley Internet Name Domain (DNS).
Apr 15 17:58:47 server named[48206]: client 192.168.200.200#33164 (example.com): transfer of 'example.com/IN': AXFR started
Apr 15 17:58:47 server named[48206]: client 192.168.200.200#33164 (example.com): transfer of 'example.com/IN': AXFR ended
Apr 15 17:58:47 server named[48206]: client 192.168.200.200#3778: received notify for zone 'example.com'
Apr 15 17:58:47 server named[48206]: client 192.168.200.200#34322 (200.168.192.in-addr.arpa): transfer of '200.168.192.in-addr.arpa/IN': AXFR started
Apr 15 17:58:47 server named[48206]: client 192.168.200.200#34322 (200.168.192.in-addr.arpa): transfer of '200.168.192.in-addr.arpa/IN': AXFR ended
Apr 15 17:58:47 server named[48206]: client 192.168.200.200#29415: received notify for zone '200.168.192.in-addr.arpa'
3.4 客户端检查测试

在测试主机(Windows 10)上配置网络适配器的首选DNS服务器为上面配置的总公司辅助DNS服务器地址192.168.200.200。

使用nslookup测试主DNS服务器的解析功能。如下图所示:

在这里插入图片描述

四、部署分公司DNS服务器(子域委派)

实验之前保障公司主DNS服务器和分公司的DNS服务器能够正常通信,本例中解决的办法是在分公司的DNS服务器上增加了一块vnet8网卡。

4.1 子域服务器:安装DNS服务
[root@dns ~]# yum install bind -y
[root@dns ~]# systemctl start named
[root@dns ~]# systemctl enable named
4.2 修改总公司主DNS服务器配置

1、修改总公司主DNS服务器的正向解析区域数据库文件

[root@master ~]# vim /var/named/example.com.zone

在**/var/named/example.com.zone**中添加一条子域的NS记录和一条子域DNS服务器的A记录。

develop.example.com.            IN      NS      dns.develop.example.com.
dns.develop.example.com.        IN      A       192.168.100.100

2、检查配置

[root@master ~]# named-checkzone example.com /var/named/example.com.zone
zone example.com/IN: develop.example.com/NS 'dns.develop.example.com' (out of zone) has no addresses records (A or AAAA)
zone example.com/IN: loaded serial 2024041501
OK
[root@master ~]# rndc reload
server reload successful
4.3 配置分公司DNS服务器主配置文件
[root@dns ~]# vim /etc/named.conf

修改内容如下

options {listen-on port 53 { any; };			# 修改127.0.0.1改成any......allow-query     { any; };			# 修改localhost改成anyallow-transfer { none; };			# 增加此行,拒绝任何主机从本服务器拉取数据......
}
include "/etc/named.rfc1912.zones";			# 删除此行......
zone "develop.example.com" IN {				# 增加此5行type master;file "develop.example.com.zone";allow-update { none; };
};
4.4 配置分公司DNS服务器区域数据库文件

1、修改区域数据库文件

[root@dns ~]# cp -p /var/named/named.localhost /var/named/develop.example.com.zone
[root@dns ~]# vim /var/named/develop.example.com.zone

修改内容如下

$TTL 1D
@       IN SOA  @ mail.example.com. (2024041501      ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum@       IN      NS              dns.develop.example.com.dns     IN      A               192.168.100.100
file    IN      A               192.168.100.11
vod     IN      A               192.168.100.12

2、检查配置

[root@dns ~]# named-checkconf /etc/named.conf
[root@dns ~]# named-checkzone develop.example.com /var/named/develop.example.com.zone
zone develop.example.com/IN: loaded serial 2024041501
OK
[root@dns ~]# systemctl restart named
4.5 客户端检查测试

在测试主机(Windows 10)上配置网络适配器的首选DNS服务器为上面配置的总公司主DNS服务器地址192.168.200.100或者总公司的辅助DNS服务器地址192.168.200.200。

使用nslookup测试主DNS服务器的解析功能。如下图所示:可以发现主DNS服务器上并没有file.develop.example.com的记录,但是可以解析到,因为设置了子域委派。

在这里插入图片描述

五、DNS转发器和惟缓存服务器

关于DNS服务器的配置,还有搭建DNS转发器,DNS转发包括完全转发和条件转发;另外还有惟缓存服务器,配置起来也不复杂,这里不再赘述,有兴趣的自行翻阅材料。

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

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

相关文章

第七周学习笔记DAY.1-封装

学完本次课程后,你能够: 理解封装的作用 会使用封装 会使用Java中的包组织类 掌握访问修饰符,理解访问权限 没有封装的话属性访问随意,赋值也可能不合理,为了解决这些代码设计缺陷,可以使用封装。 面向…

vue快速入门(二十八)页面渲染完成后让输入框自动获取焦点

注释很详细&#xff0c;直接上代码 上一篇 新增内容 使用挂载完成的钩子函数用focus使输入框获取焦点 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"width…

leetcode:739.每日温度/496.下一个更大元素

单调栈的应用&#xff1a; 求解当前元素右边比该元素大的第一个元素&#xff08;左右、大小都可以&#xff09;。 单调栈的构成&#xff1a; 单调栈里存储数组的下标&#xff1b; 单调栈里的元素递增&#xff0c;求解当前元素右边比该元素大的第一个元素&#xff1b;元素递…

(十一)C++自制植物大战僵尸游戏客户端更新实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/cFP3z 更新检查 游戏启动后会下载服务器中的版本号然后与本地版本号进行对比&#xff0c;如果本地版本号小于服务器版本号就会弹出更新提示。让用户选择是否更新客户端。 在弹出的更新对话框中有显示最新版本更新的内容…

2024五一杯数学建模A题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

光学雨量计雨量传感器的工作原理与实时数据采集

光学雨量计雨量传感器的工作原理与实时数据采集 河北稳控科技光学雨量计是一种常用的雨量传感器&#xff0c;其工作原理基于光学原理和实时数据采集技术。它的主要作用是测量雨水的大小和强度&#xff0c;为气象、农业、水文等领域提供重要的数据支持。 光学雨量计的工作原理是…

单片机之ESP8266模块

目录 ESP8266简介 前言 ESP8266的工作模式 ESP8266引脚说明 ESP8266测试 步骤 单片机与esp8266交互 前言 收到数据的格式 AP模式 服务器模式 外部执行命令 代码内执行命令 代码部分 客户端模式 外部执行命令 内部执行命令 代码部分 STA模式 服务器模式 外…

10个常用的损失函数及Python代码实现

本文深入理解并详细介绍了10个常用的损失函数及Python代码实现。 什么是损失函数&#xff1f; 损失函数是一种衡量模型与数据吻合程度的算法。损失函数测量实际测量值和预测值之间差距的一种方式。损失函数的值越高预测就越错误&#xff0c;损失函数值越低则预测越接近真实值…

LUCF-Net:轻量级U形级联 用于医学图像分割的融合网络

LUCF-Net&#xff1a;轻量级U形级联 用于医学图像分割的融合网络 摘要IntroductionRelated WorkProposed MethodLocal-Global Feature ExtractionEncoder and DecoderFeature FusionLoss Function LUCF-Net: Lightweight U-shaped Cascade Fusion Network for Medical Image Se…

Android zxing库实现扫码识别

第一步 加库zxing库 //导入二维码识别库ZXingimplementation("com.journeyapps:zxing-android-embedded:4.2.0") 第二部获取摄像机权限 <uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="andro…

【日常记录】【CSS】利用动画延迟实现复杂动画

文章目录 1、介绍2、原理3、代码4、参考链接 1、介绍 对于这个效果而言&#xff0c;最先想到的就是 监听滑块的input事件来做一些操作 ,但是会发现&#xff0c;对于某一个节点的时候&#xff0c;这个样式操作起来比较麻烦 只看这个代码的话&#xff0c;发现他用的是动画&#x…

超详细!Python中 pip 常用命令

相信对于大多数熟悉Python的人来说&#xff0c;一定都听说并且使用过pip这个工具&#xff0c;但是对它的了解可能还不一定是非常的透彻&#xff0c;今天小编就来为大家介绍10个使用pip的小技巧&#xff0c;相信对大家以后管理和使用Python当中的标准库会有帮助。 安装 当然在…

【算法一则】编辑距离 【动态规划】

题目 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符 删除一个字符 替换一个字符 示例 1&#xff1a;输入&#xff1a;word1 "horse", word2 "…

16 - Debian如何配置vsftpd(1)实现匿名上传下载

作者&#xff1a;网络傅老师 特别提示&#xff1a;未经作者允许&#xff0c;不得转载任何内容。违者必究&#xff01; Debian如何配置vsftpd&#xff08;1&#xff09;实现匿名上传下载 《傅老师Debian小知识库系列之16》——原创 前言 傅老师Debian小知识库特点&#xff1a…

微信小程序获取蓝牙信标

/*** 搜索设备界面*/ import Dialog from vant/weapp/dialog/dialog; Page({data: {list: []},onPullDownRefresh: function () {wx.request({url: https://wwz.jingyi.icu/app/Explain/index,data: {scenic_id: 3},method: POST,success: (res) > {console.log(res);let th…

重磅!国内首个基于单张图片的3D人脸重建课程

3D人脸重建在计算机视觉和图形学中一直是一个经典且热门的研究方向&#xff0c;在游戏、影视、娱乐等众多行业也有着广泛的应用。早期人脸重建主要基于多视角相机或深度相机&#xff0c;随着深度学习的兴起&#xff0c;基于单张图片的人脸重建成为可能&#xff0c;且重建的精度…

数学建模---Matlab学习笔记

1.经典例题 &#xff08;1&#xff09;判断质数 给定一个大于100的数字&#xff0c;判断是否为质数 先设定布尔值是true,也就是假设这个数字是质数&#xff0c;利用for循环进行遍历直到n-1&#xff0c;如果被任意的数字整除&#xff0c;就说明不是质数&#xff0c;我们就把布…

2024 年排名前 5 的 CSS 框架

文章目录 1、Bootstrap2、Tailwind CSS3、Foundation4、Bulma5、UIKit 1、Bootstrap Bootstrap框架是由Twitter的设计师Mark Otto和Jacob Thornton合作开发的&#xff0c;于2011年8月在GitHub上发布。它是目前最受欢迎的前端框架之一&#xff0c;被广泛应用于各种Web项目中。Bo…

最新Latex2024安装教程 超简单

Latex是一款常用的论文写作工具&#xff0c;今天小菜介绍Latex的安装配置过程。 1. 来到官网下载镜像文件 https://www.tug.org/texlive/ 按步骤点击&#xff1a; 就会进入一个最近的镜像网站&#xff0c;选择textlive2024.iso即可 下载完成之后解压&#xff0c;安装路径…

Linux02(项目部署,手动和自动部署,JDK版本问题,安装软件,安装软件,安装JDK,Tomcat,MySQL,Irzsz)

目录 一、安装软件 1. 安装准备工作 1 Linux里的软件安装方式 2 上传软件到Linux 3 拍照虚拟机快照 2. 安装JDK 1 卸载自带jdk 2 解压JDK 3 配置环境变量 4 测试JDK 3. 安装Tomcat 1 解压Tomcat 2 修改防火墙设置 3 测试Tomcat 启动Tomcat 访问Tomcat 查看Tom…