bind搭建内网DNS服务器架构(主从、子域授权、DNS转发器)
实验目的
- 模拟企业DNS服务架构服务器及原理
实验环境准备
实验架构图

实验设备
- DNS服务器4台
- 主服务器master(centos8):IP_192.168.100.30,
- 从服务器slave(rocky8):192.168.100.31
- 子域服务器hn1(rocky8):192.168.100.36
- 其他域服务器local(centos7):192.168.100.12,用途:用于测试服务器转发
 
- 客户端PC机2台
- PC1(win10):IP_192.168.100.1、DNS:[192.168.100.30、192.168.100.31]
- PC2(win10):IP_192.168.100.3、DNS:[192.168.100.12]
 
- 关闭SELinux、关闭防火墙、并时间同步
搭建内网DNS服务器配置步骤
四台dns服务器master、slave、hn1、loca安装及通用配置
- 安装bind软件和工具 - #centos/rocky安装
 yum -y install bind bind-utils
 #Ubuntu安装
 apt -y install bind9 bind9utils
 
- 主配置文件进行通用配置:/etc/named.conf - vim /etc/named.conf #注释掉掉下列两行,禁用listen-on:named服务端口可以让其他主机访问,禁用allow-query:允许任何人解析DNS服务记录
 #listen-on port 53 { 127.0.0.1; };
 #allow-query { localhost; };
 
- 检验配置文件是否正常 - #无信息显示配置文件正常
 named-checkconf
 
- 设置开机启动,并运行bind服务 - systemctl enable --now named
 
- 验证DNS端口服务是否正常 - #DNS服务端口为udp/tcp:53端口、tcp:953端口
 ss -utnlp|grep named
 
主(master)DNS服务器搭建配置及验证
- master:配置DNS地址指向自身,并重启网卡服务 - vim /etc/sysconfig/network-scripts/ifcfg-ens32
 #修改配置文件执行生效
 nmcli connection reload
 #网络接口的启用
 nmcli connection up ens32
 #验证DNS是否生效
 cat /etc/resolv.conf
   
- master:配置主配置文件:/var/named/tyjz.net.zone - #1、同属性复制配置模板文件named.localhos,修改文件名为:tyjz.net.zone
 cp -a /var/named/named.localhost /var/named/tyjz.net.zone
 #2、配置tyjz.net.zone文件
 [03:44:18 root@centos8_30 ~]#vim /var/named/tyjz.net.zone 1 $TTL 1D
 2 @ IN SOA master 1024320609.qq.com ( 20220839 1H 10M 1D 6H )
 3 NS master
 4 master A 192.168.100.30
 5 www A 192.168.100.31 
- master:配置主配置文件: /etc/named.rfc1912.zones - #1、编辑vim /etc/named.rfc1912.zones,增加下列配置参数
 zone "tyjz.net" IN {
 type master;
 file "tyjz.net.zone";
 };
  
- master:检验主配置文件,并重载主配置文件和区域解析库文件 - #2、检验主配置文件
 named-checkconf
 named-checkzone tyjz.net.zone /var/named/tyjz.net.zone
 #2、重载主配置文件和区域解析库文件
 rndc reload
  
- PC1上验证master服务器是否正常解析域名 - PC1网络配置截图
  
- PC1:验证ping www.tyjz.net 是否正常解析IP地址  
- PC1:验证通过浏览器访问 www.tyjz.net(备注:已在100.31服务器安装httpd服务)  
从(slave)DNS服务器搭建配置
- slave:配置DNS地址指向自身和主域名服务器,并重启网卡服务 - vim /etc/sysconfig/network-scripts/ifcfg-ens32
 #修改配置文件执行生效
 nmcli connection reload
 #网络接口的启用
 nmcli connection up ens32
 #验证DNS是否生效
 cat /etc/resolv.conf
   
- master:配置主配置文件:/var/named/tyjz.net.zone - #增加slave的NS记录和A记录,并修改版本序列号
 [04:44:58 root@centos8_30 ~]#vim /var/named/tyjz.net.zone 1 $TTL 1D
 2 @ IN SOA master 1024320609.qq.com ( 20220840 1H 10M 1D 6H )
 3 NS master
 4 NS slave
 5 master A 192.168.100.30
 6 slave A 192.168.100.31
 7 www A 192.168.100.31 
- master:检验主配置文件,并重载主配置文件和区域解析库文件 - #2、检验主配置文件
 named-checkconf
 named-checkzone tyjz.net.zone /var/named/tyjz.net.zone
 #2、重载主配置文件和区域解析库文件
 rndc reload
  
- slave:配置主配置文件: /etc/named.rfc1912.zones - #1、编辑vim /etc/named.rfc1912.zones,增加下列配置参数
 zone "tyjz.net" IN {
 type slave;
 masters {192.168.100.30;};
 file "slaves/tyjz.net.zone";
 };
  
- slave:检验主配置文件,并重载主配置文件和区域解析库文件 - #2、检验主配置文件
 named-checkconf
 #2、重载主配置文件和区域解析库文件
 rndc reload
 #重载主配置文件后slav服务器会自动向master服务器拉取主配置文件:/var/named/slaves/tyjz.net.zone
  
- 验证slave服务器是否可以解析域名 - PC1网络配置截图,DNS指向192.168.100.31  
- 对master服务器进行断网处理  
- PC1:验证ping www.tyjz.net 是否正常解析IP地址  
- PC1:验证通过浏览器访问 www.tyjz.net(备注:已在100.31服务器安装httpd服务)  
 
子域(hn)DNS服务器搭建配置
- hn1:配置DNS地址指向自身和主域名服务器,并重启网卡服务 - vim /etc/sysconfig/network-scripts/ifcfg-ens160
 nmcli connection reload
 #网络接口的启用
 nmcli connection up ens32
 #验证DNS是否生效
 cat /etc/resolv.conf
   
- master:配置主配置文件:/var/named/tyjz.net.zone - #添加hn1子域的NS记录和A记录,并增加版本序列号
 [13:10:34 root@centos8_30 ~]#vim /var/named/tyjz.net.zone 1 $TTL 1D
 2 @ IN SOA master 1024320609.qq.com ( 20220842 1H 10M 1D 6H )
 3 NS master
 4 NS slave
 5 hn NS hndns
 6 master A 192.168.100.30
 7 slave A 192.168.100.31
 8 hndns A 192.168.100.36
 9 www A 192.168.100.31
  
- master:配置主配置文件:/etc/named.conf - #这两项默认启用安全模式设置为no
 dnssec-enable no;
 dnssec-validation no;
  
- hn:配置子域配置文件:/var/named/hn.tyjz.net.zone - #1、同属性复制配置模板文件named.localhost ,修改文件名为:hn.tyjz.net.zone
 cp -a /var/named/named.localhost /var/named/hn.tyjz.net
 #2、配置hn.tyjz.net.zone文件
 [13:38:36 root@rocky8_36 ~]#vim /var/named/hn.tyjz.net 1 $TTL 1D
 2 @ IN SOA master 1024320609.qq.com ( 20220842 1H 10M 1D 6H )
 3 NS master
 4 master A 192.168.100.36
 5 www A 192.168.100.10
  
- hn:配置子域主配置文件: /etc/named.rfc1912.zones - #1、编辑vim /etc/named.rfc1912.zones,增加下列配置参数
 zone "hn.tyjz.net" IN {
 type master;
 file "hn.tyjz.net.zone";
 };
  
- hn:检验子域主配置文件,并重载主配置文件和区域解析库文件 - #2、检验主配置文件
 named-checkconf
 named-checkzone hn.tyjz.net.zone /var/named/hn.tyjz.net.zone
 #2、重载主配置文件和区域解析库文件
 rndc reload
 
- 验证hn服务器是否可以解析域名 - PC1网络配置截图,DNS指向192.168.100.30  
- PC1:验证ping www.tyjz.net 是否正常解析IP地址  
- PC1:验证通过浏览器访问 www.tyjz.net(备注:已在100.10服务器安装httpd服务)  
- 断开master服务器网络,再进行验证是否能解析 www.tyjz.net域名   -  - 结果能够正常解决,已验证结果不符,其原因可能为Windows自带带缓,因此需刷新Windows缓存  
 
DNS 转发
- 实验前说明 - 简要说明 - 利用DNS转发,可以将用户的DNS请求,转发至指定的DNS服务,而非默认的根DNS服务器,并将指定
 服务器查询的返回结果进行缓存,提高效率。
 
- 注意 - 被转发的服务器需要能够为请求者做递归,否则转发请求不予进行 
- 在/etc/named.conf的全局配置块中,关闭dnssec功能 - dnssec-enable no;
 dnssec-validation no;
 
 
- 转发格式 - 全局转发 - Options {
 forward first|only;
 forwarders { ip;};
 };
 
- 特定区域转发 - zone "ZONE_NAME" IN {
 type forward;
 forward first|only;
 forwarders { ip;};
 };
 
- 选项说明 - first:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询
 only: 先转发至指定DNS服务器,如果无法解析查询请求,则本服务器将不再去根服务器查
 
 
- 实验环境说明 - 1、缓存服务器:local服务器
 2、主服务器:master服务器
 3、客户端:PC2,DNS:192.168.100.12
 4、实验说明:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器将不再去根服务器查询
 
 
- master:主服务器主配置文件配置 - /var/named/tyjz.net.zone  
- /etc/named.rfc1912.zones  
- /etc/named.conf  
 
- local服务器:配置:DNS指向自身:127.0.0.1 - vim /etc/sysconfig/network-scripts/ifcfg-ens160
 nmcli connection reload
 #网络接口的启用
 nmcli connection up ens160
 #验证DNS是否生效
 cat /etc/resolv.conf
   
- local服务器:配置主配置文件:/var/named/tyjz.local.zone - #1、同属性复制配置模板文件named.localhos,修改文件名为:tyjz.local.zone
 cp -a /var/named/named.localhost /var/named/tyjz.local.zone
 #2、配置tyjz.net.zone文件
 [17:27:39 root@rocky8_12 ~]#vim /var/named/tyjz.local.zone 1 $TTL 1D
 2 @ IN SOA master 1024320609.qq.com ( 20220842 1H 10M 1D 6H )
 3 NS master
 4 master A 192.168.100.12
 5 www A 192.168.100.10
  
- local服务器:配置主配置文件:/var/named/tyjz.local.zone - #1、编辑vim /etc/named.rfc1912.zones,增加下列配置参数
 zone "tyjz.local" IN {
 type master;
 file "tyjz.local.zone";
 };
  
- local服务器:配置主配置文件:/var/named/tyjz.local.zone - #1、编辑vim /etc/named.rfc1912.zones,增加下列前2行记录以及2行关闭dnsec功能记录
 forward only;
 forwarders { 192.168.100.30;};
 #关闭dnsec功能
 dnssec-enable no;
 dnssec-validation no;
  
- local服务器:检验主配置文件,并重载主配置文件和区域解析库文件 - #2、检验主配置文件
 named-checkconf
 named-checkzone tyjz.local.zone /var/named/tyjz.local.zone
 #2、重载主配置文件和区域解析库文件
 rndc reload
  
- PC2,验证local服务器域名转发结果 - PC2 DNS指向local服务器  
- PC2 nslookup和ping master主服务器域名:www.tyjz.net ,验证local服务器是否转发master服务器解析域名  
- 为了验证转发特性,禁用master服务器网络,验证local服务器在only模式下,转发到master服务器无法解析查询请求,则local服务器将不再去根服务器查。  -  - master服务器网络未断网前 -  - master服务器断网后
- 为了验证转发特性,禁用master服务器网络,验证local服务器在frist模式下,转发到master服务器无法解析查询请求,则local服务器将去根服务器查。  -  - master服务器已禁用网络 
 
DNS服务器其他功能配置
CNAME别名配置,轮询访问IP地址,实现负载均衡(master服务器测试为例)
- 实验前说明 - CNAME记录格式 - name: 别名的FQDN
 value: 真正名字的FQDN
 
- 实验环境 - 1、实验服务器:master服务器
 2、别名(name):www,真正域名(value):websrc
 3、别名对应的3个IP:192.168.100.10、192.168.100.30、192.168.100.31
 
 
- master:配置主配置文件: - #增加master的别名CNAME记录和主机A记录,并增加版本序列号
 [14:31:38 root@centos8_30 ~]#vim /var/named/tyjz.net.zone 1 $TTL 1D
 2 @ IN SOA master 1024320609.qq.com ( 20220842 1H 10M 1D 6H )
 3 NS master
 4 NS slave
 5 hn NS hndns
 6 www CNAME websrc
 7 master A 192.168.100.30
 8 slave A 192.168.100.31
 9 hndns A 192.168.100.36
 10 hndns A 192.168.100.36
 11 websrc A 192.168.100.30
 12 websrc A 192.168.100.31
 13 websrc A 192.168.100.10
  
- 通过PC1验证master解析别名   
- 通过PC1 ping www.tyjz.net,验证是否轮番IP地址  
反向解析区域。
- 实验前说明 - 简要说明 - 反向区域:即将IP反向解析为FQDN(全称域名)
 区域名称:网络地址反写.in-addr.arpa.
 
 - 配置文件格式 - 172.16.100. --> 100.16.172.in-addr.arpa.
 
 - 使用环境说明 - 1、测试服务器:master服务器
 2、域名解析网段:192.168.100.0
 解析的ip地址: 192.168.100.10、192.168.100.30、192.168.100.31
 
- 区域定义格式 - zone "ZONE_NAME" IN {
 type {master|slave|forward};
 file "网络地址.zone"
 };
 
 
- master:配置主配置文件:/var/named/192.168.100.zone, - #1、同属性复制配置模板文件named.localhos,修改文件名为:192.168.100.zone
 cp -a /var/named/named.localhost /var/named/tyjz.net.zone
 #2、增加master的PTR记录和主机A记录,测并增加版本序列号
 vim /var/named/192.168.100.zone 1 $TTL 1D
 2 @ IN SOA master 1024320609.qq.com ( 20220826 3H 10M 1D 6H )
 3 NS master
 4 master A 192.168.100.30
 5 31 PTR www.oa.tyjz.net.
 6 30 PTR www.ems.tyjz.net.
 7 10 PTR www.hn.tyjz.net. 
- master:配置主配置文件:/etc/named.rfc1912.zones - #编辑vim /etc/named.rfc1912.zones,增加下列配置参数
 zone "100.168.192.in-addr.arpa" IN {
 type master;
 file "192.168.100.zone";
 }; 
- master:检验主配置文件,并重载主配置文件和区域解析库文件 - #2、检验主配置文件
 named-checkconf
 named-checkzone 192.168.100.zone /var/named/192.168.100.zone
 #2、重载主配置文件和区域解析库文件
 rndc reload
 
- PC1:验证master服务器反向解析IP地址结果  
bind搭建内网DNS服务器架构(主从、子域授权、DNS转发器)的更多相关文章
- Apache James搭建内网邮件服务器
		Apache James搭建内网邮件服务器 极客521 | 极客521 2014-08-21 148 阅读 java 大概之前两个礼拜的日子,讨论会介绍了关于了.net内网邮件服务器的搭建.所以自己也 ... 
- CentOS搭建内网NTP服务器
		在企业内部网络,不是所有的服务器都可以连接外网,需要搭建一台可以连接外网的服务器用于NTP服务器 安装环境查看 安装ntp yum -y install ntp 修改配置文件 driftfile ... 
- 使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8)
		电子邮件服务器,对于很多公司,都是需要的. 虽然现在很多人,使用 QQ .微信进行一对一的工作沟通,使用QQ 群.微信群进行多人沟通,但这些即时聊天工具,与电子邮件相比,仍有很多不足: a. 电子邮件 ... 
- linux搭建内网邮件服务器
		一.配置发件服务器 1.1 根据现场IP,配置主机名 vi /etc/hosts 192.168.40.133 mail.test.com 将主机名更改为邮件服务器域名mail.test.com 1. ... 
- 使用 Apache James 3.3.0(开源免费) 搭建外网电子邮件服务器(基于 Windows + Amazon Corretto 8)
		对于邮件服务器的安装,请先参阅: 使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8) https://www ... 
- Django + Apache + 树莓派 搭建内网微信公众号服务器
		其实早在微信开放公众号开发平台时就想弄一个自己的公众号服务器,奈何对web服务器搭建和开发一窍不通,只是注册了一下开发者帐号,并没有采取行动,万恶的拖延症. 前一年,开始接触python,打开了神奇世 ... 
- 搭建内网Yum源
		搭建内网yum源 阅读(2,238) 一:因内网服务器 众多,当统一安装一些比较大的rpm的时候全部从外网下载就比较慢,而且还占用了一定的出口流量,因此在内网部署了一台yum服务器,将阿里云的epel ... 
- 内网客户 通过 公网域名/ip 访问内网web服务器 出错
		在一内部局域网中, client 内网地址为 10.0.0.2 web 服务器内网地址为 10.0.0.1 外网地址为 211.6.15.1 域名为 xx.love.com ... 
- 外网zabbix-server使用主动模式监控公司内网windows服务器
		外网zabbix-server使用主动模式监控公司内网windows服务器 1.Zabbix Agent active批量调整客户端为主动模式监控将Template OS Windows模板调整为主动 ... 
随机推荐
- 2020.09.12【NOIP提高组&普及组】模拟赛C组 总结
			总结:这次比赛成绩并不理想,虽然策略得当 \(P.S.\):太多题有多组数据,但是样例只有一个数据 各题题解和改题情况 T1 匹配 题面 描述 给你一个由{a,b-z,A,B-.Z}组成的字符串,我们 ... 
- VSCode配置远程免密登陆
			生成秘钥 在本地pc的cmd窗口输入:ssh-keygen -t rsa 生成秘钥 C:\Users\NZY/.ssh/id_rsa.pub 该目录就是生成的秘钥要保存的地方(以我自己的电脑为例) 将 ... 
- re学习笔记
			re学习笔记 学习链接: https://regexlearn.com/zh-cn/learn \w: 数字字母下划线 \W: 非\w \d \D: !\d \s: space cha \S: !\s ... 
- jieba分词的功能和性能分析
			jieba分词问题导引 用户词典大小最大可以有多大 用户词典大小对速度的影响 有相同前缀和后缀的词汇如何区分 对比百度分词的API 问题一:词典大小 从源码大小分析,整个jieba分词的源码总容量为8 ... 
- 使用 Cheat Engine 修改 Kingdom Rush 中的金钱、生命、星
			最新博客链接 最近想学习一下 CE,刚好看见游戏库里装了 Kingdom Rush 就拿它来研究吧.这里写的东西,需要一些 Cheat Engine 的基础,可以看看教程. 这里主要是看写的注释,来理 ... 
- Codeforces Round #783 (Div. 2)
			A. Direction Change 题意 从(1,1)点出发到(n,m),每次可以向上下左右四个方向移动,但是不能与上次移动方向相同 最少要移动多少不,如果不能到达输出 -1 思路 假设n< ... 
- 腾讯云原生数据库TDSQL-C入选信通院《云原生产品目录》
			近日,中国信通院.云计算开源产业联盟正式对外发布<云原生产品目录>,腾讯云原生数据库TDSQL-C凭借其超强性能.极致效率的弹性伸缩和完善的产品化解决方案体系,成功入围目录. 全球数字经济 ... 
- 静态static关键字修饰成员方法和静态static的内存图
			当 static 修饰成员方法时,该方法称为类方法 .静态方法在声明中有 static ,建议使用类名来调用,而不需要 创建类的对象.调用方式非常简单 ~类方法:使用 static关键字修饰的成员方法 ... 
- 静态static关键字概述和静态static关键字修饰成员变量
			static关键字 概述 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属 于某个对象的.也就是说,既然属于类,就可以不靠创建对象来调用了 ... 
- 关于 Python 的 import
			好久以前就被 Python 的相对与绝对导入所困扰.去年粗浅探究后自以为完全理解,近来又因 sys.path[0] 和 os.getcwd() 的不一致而刷新了认知... Python 官方文档 5. ... 
