基于BIND的私有DNS服务搭建指南
背景
在内网封闭环境中,传统基于IP+端口的资源访问方式(如192.168.80.132:8080
)存在显著缺陷:
- 记忆成本高:需记忆大量IP与端口组合
- 环境标识模糊:难以区分开发/测试/生产环境
- 扩展性差:服务增减需同步更新访问地址
通过搭建私有DNS服务器,可实现以下优势:
- 域名化访问:
xxxweb.dev.yfb.inhowlaisi.com
直连开发环境服务 - 层级化管理:
xxxweb
:服务名称dev/test/prod
:环境标识yfb
:部门标识(研发部)inhowlaisi
:内部二级域名(区别于外部howlaisi.com
)
- 安全可控:完全隔离公网DNS,防止DNS泄露
- 易于维护:集中管理域名与IP映射关系
搭建实操
环境准备
# 安装核心组件
yum -y install bind-chroot bind
# 服务说明
# - 主服务包: bind-chroot
# - 安全增强: bind
# - 系统服务: named
# - 默认端口: TCP/UDP 53
# - 虚拟根目录: /var/named/chroot
# - 主配置文件: /etc/named.conf
# - 区域文件路径: /var/named/chroot/var/named/
主配置优化
# 备份原始配置
cp -rp /etc/named.conf /etc/named.conf.bak
# 清空并重建配置文件
> /etc/named.conf
vim /etc/named.conf
配置文件内容:
// 定义主域名解析区域
zone "inhowlaisi.com" IN {
type master;
file "/var/named/chroot/var/named/inhowlaisi.com.zone";
};
// 子域名解析区域(按需添加)
zone "yfb.inhowlaisi.com" IN {
type master;
file "/var/named/chroot/var/named/yfb.inhowlaisi.com.zone";
};
// 查询日志配置(可选)
logging {
channel query.log {
file "/var/log/named/query.log" versions 3 size 20m;
severity dynamic;
print-time yes;
};
category queries { query.log; };
};
区域文件配置
# 创建区域文件目录
mkdir -p /var/named/chroot/var/named
chown -r root:named /var/named/chroot/
# 复制模板文件
cp /var/named/named.localhost /var/named/chroot/var/named/inhowlaisi.com.zone
# yfb.inhowlaisi.com.zone可选
cp /var/named/named.localhost /var/named/chroot/var/named/yfb.inhowlaisi.com.zone
区域文件示例(inhowlaisi.com.zone):
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
inhowlaisi.com. NS inhowlaisi.com
; 定义A记录
inhowlaisi.com A 192.168.80.132 ;将inhowlaisi.com解析到192.168.80.132
gitlab A 192.168.80.131 ;将gitlab.inhowlaisi.com解析到192.168.80.131
;注意这个文件里面的注释符号为分号,而非#号。
日志配置(可选)
mkdir -p /var/log/named
chown named:named /var/log/named
chmod 750 /var/log/named
touch /var/log/named/query.log
chown named:named /var/log/named/query.log
服务重启与验证
# 重启DNS服务
systemctl restart named
测试解析
-
使用dig命令进行域名解析测试,例如:
dig @192.168.80.132 inhowlaisi.com dig @192.168.80.132 gitlab.inhowlaisi.com
-
使用nslookup命令进行域名解析测试,例如:
nslookup gitlab.inhowlaisi.com 192.168.80.132
-
windows配置使用named服务器
- 打开网络和共享中心
- 更改适配器设置
- 右键点击本地连接,选择属性
- 双击Internet协议版本4(TCP/IPv4)
- 使用下面的DNS服务器地址:填写named服务器的IP
- 确定
评论区