SMB - DNS Server 域名服务器配置与管理(三)

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介:

        BIND是互联网各大DNS服务机构广泛使用的域名服务应用,当前版本为9.9,除了*nix外还能够支持Windows等多种操作系统平台,在homelab.pub中我将在CentOS7.5上部署BIND并为本地局域网配置域名解析服务。和其他各类服务应用一样,BIND也采用Master/Slave两种角色构建集群提高服务的可靠性,本文将简要介绍两种角色的部署配置和调试验证。为保证服务安全性,BIND将运行在Chroot环境中。

0x0 背景工作

       本文核心在于验证DNS服务,并不关注网络和安全等可能影响服务配置部署的因素,因此在此文假设已将IPv6、SELinux等服务关闭,iptables可根据需要自行配置。

0x1 Master Server部署

       BIND默认配置文件包含一组名为empty zones的空域配置文件,用以避免递归查询服务向外部发送无效DNS请求。其配置文件位于/etc/目录下,在chroot环境中服务主配置文件/etc/named.conf等仍在原始文件中修改,Zone配置文件则存放着/var/named/目录下。BIND服务在CentOS中默认的服务名为为named,在chroot环境中服务名称为named-chroot。

      安装BIND和相关辅助软件     

#yum -y install bind bind-utils bind-chroot
      启用named-chroot服务

#systemctl enable chroot-named
#systemctl start chroot-named
#systemctl mask named //mask掉named,避免误操作
     创建homelab.pub正向解析文件/var/named/homelab.pub.zone

;Author:Haichen
;Date:20180625
$ORIGIN homelab.pub.
$TTL	86400
@	IN	SOA	master.homelab.pub.	xiaomage.homelab.pub. (
		2018061802
		21600
		3600
		604800
		86400
)
;
;
	IN	NS	master.homelab.pub.
	IN	NS	slave.homelab.pub.
master	IN	A	192.168.2.250
slave	IN	A	192.168.2.251
;
;
	IN	MX  10  mail1.homelab.pub.
	IN	MX  20  mail2.homelab.pub.
mail1	IN      A	192.168.2.200
mail2	IN	A	192.168.2.201
www	IN	A	192.168.2.205
;
;
ftp     IN      CNAME   www
;
;Exsi Server In Homelab
esxi01	IN	A	192.168.2.210
esxi02	IN	A	192.168.2.211
esxi03	IN	A	192.168.2.212
esxi04  IN	A	192.168.2.213
         创建homelab.pub反向解析文件/var/named/homelab.pub.rr.zone

;Author:Haichen
;Date:20180625
$ORIGIN 2.168.192.in-addr.arpa.
$TTL	86400
@	IN	SOA	master.homelab.pub.	xiaomage.homelab.pub. (
		2018061802
		21600
		3600
		604800
		86400
)
;
;
@	IN	NS	master.homelab.pub.
	IN	NS	slave.homelab.pub.
;
;
250	IN	PTR	master.homelab.pub.
251	IN	PTR	slave.homelab.pub.
;
;
200	IN	PTR	mail1.homelab.pub.
201	IN	PTR	mail2.homelab.pub.
205	IN	PTR	www.homelab.pub.
;
;
205     IN      PTR     ftp.homelab.pub.
;
;
210	IN	PTR	esxi01.homelab.pub.
211	IN	PTR	esxi02.homelab.pub.
212	IN	PTR	esxi03.homelab.pub.
213	IN	PTR	esxi04.homelab.pub.
        为便于管理为以上两个zone创建独立的引用文件,当然也可以将以下内容直接写入到/etc/named.conf中,但还是建议为其创建相对独立的引用文件/var/named/chroot/etc/named.homelab.pub.zones

zone	"homelab.pub" IN {
	type	master;
	file	"homelab.pub.zone";
	allow-transfer	{ 192.168.2.251; };
	allow-update	{ none; };
};
zone	"2.168.192.in-addr.arpa"  IN {
	type	master;
	file	"homelab.pub.rr.zone";
	allow-transfer	{ 192.168.2.251; };
	allow-update    { none; };
};
       然后在主配置文件/etc/named.conf中引用以上文件

#echo -e 'include "/etc/named.homelab.pub.zones";' >> /etc/named.conf 
      启动named-chroot服务

#systemctl restart named-chroot
      向iptables INPUT链插入一条允许本地网络访问UDP 53端口的规则;

#iptables -I INPUT -s 192.168.2.0/24 -p udp --dport 53 -j ACCEPT
0x2 Slave Server部署

      和其他Master/Slave架构的服务一样,需要首先保证两台服务器时间同步,否则无法同步数据,NTP Server配置参考SMB TimeServer 时间服务器配置与管理
       Slave Server仅需配置服务配置文件,zone配置将从master同步,基础服务配置如下:

#yum -y install bind bind-utils bind-chroot    //安装服务软件包
#systemctl enable chroot-named
#systemctl start chroot-named                      
#systemctl mask named                                //mask掉named,避免误操作
      创建homelab.pub域的服务配置文件/var/named/chroot/etc/named.homelab.pub.zones

zone "homelab.pub" IN {
	type slave;
	masters { 192.168.2.250; };
	file "homelab.pub.zone";
	allow-update { none; };
	};
	zone "2.168.192.in-addr.arpa"  IN {
	type slave;
	masters { 192.168.2.250; };
	file "homelab.pub.rr.zone";
	allow-update    { none; };
};
       Tips:注意在此配置文件和master上配置文件的差异,此处通过type slave声明该服务器角色为slave,通过masters声明了master服务器位置。

       然后在主配置文件/etc/named.conf中引用以上文件

#echo -e 'include "/etc/named.homelab.pub.zones";' >> /etc/named.conf
      启用named-chroot服务

#systemctl restart named-chroot
     向iptables INPUT链插入一条允许本地网络访问UDP 53端口的规则;
#iptables -I INPUT -s 192.168.2.0/24 -p udp --dport 53 -j ACCEPT
0x3 DNS服务验证

     完成以上配置,本地DNS Server已可以提供解析服务了,在Slave Server上通过日志文件/var/log/messages中named服务相关内容可以看到DNS数据同步信息。

     在本地任意客户端通过nslookup或dig命令可以对DNS是否生效进行验证,在此我通过dig查询所有RR资源,参考如下:

c7898019af9329538ed3a35ec4983f7f7a8eaa31
       当然其他如ping/nslookup等命令都能进行域名查询验证,但如果你是管理员建议还是要熟悉dig的使用。


相关文章
|
20天前
|
JSON JavaScript 前端开发
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
54 22
|
5天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
7天前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
14天前
|
NoSQL Linux PHP
|
20天前
|
JavaScript 前端开发 Java
vue2知识点:vue-cli脚手架配置代理服务器
vue2知识点:vue-cli脚手架配置代理服务器
48 7
|
20天前
|
前端开发 JavaScript Java
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
47 4
|
21天前
|
域名解析 网络协议
非阿里云注册域名如何在云解析DNS设置解析?
非阿里云注册域名如何在云解析DNS设置解析?
|
21天前
|
域名解析 弹性计算
内网域?名解析记录是否会覆盖公网域名解析记录?
内网域?名解析记录是否会覆盖公网域名解析记录?
|
21天前
|
弹性计算 应用服务中间件 网络安全
ECS服务器使用:SSL证书安装、配置和问题定位指南
本文简要介绍了SSL证书的生成与部署方法,包括使用OpenSSL生成自签名证书和从CA获取证书的步骤,以及在Apache和Nginx服务器上的配置方法。此外,还提供了测试证书是否生效的方法和常见问题的解决策略,帮助确保证书正确安装并解决调试过程中可能遇到的问题。
110 0
|
21天前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?

相关产品

  • 云解析DNS
  • 推荐镜像

    更多