基于BIND实现内外网分离的DNS解析方案
需求概述
在Linux服务器AppSrv上部署BIND DNS服务,为域名chinaskills.cn提供智能解析功能。要求支持以下特性:
- 为
www.chinaskills.cn、download.chinaskills.cn和mail.chinaskills.cn提供A记录解析; - 实现视图(view)机制:内网客户端解析到私有IP地址,外网客户端返回公网IP;
- 配置IspSrv作为上游递归DNS服务器处理非本地域查询。
环境准备与软件安装
首先确保系统已安装BIND及相关工具包:
yum install -y bind bind-utils
BIND主配置文件设置
编辑/etc/named.conf,使用视图功能区分内外网请求来源:
view "internal" {
match-clients { 127.0.0.1; 192.168.100.0/24; 192.168.0.0/24; };
zone "chinaskills.cn" {
type master;
file "named.internal";
};
include "/etc/named.rfc1912.zones";
};
view "external" {
match-clients { any; };
zone "chinaskills.cn" {
type master;
file "named.external";
};
};
include "/etc/named.root.key";
区域文件创建与配置
进入区域文件目录并复制模板:
cd /var/named/
cp -a named.localhost named.internal
内部网络解析文件(named.internal)
用于内网主机解析至局域网地址:
$TTL 86400
@ IN SOA chinaskills.cn. admin.chinaskills.cn. (
2025040501 ; serial
86400 ; refresh
3600 ; retry
604800 ; expire
10800 ) ; minimum
IN NS www.chinaskills.cn.
IN MX 10 mail.chinaskills.cn.
www IN A 192.168.100.100
mail IN A 192.168.100.100
download IN A 192.168.100.100
ftp IN A 192.168.100.200
web IN A 192.168.100.254
ispweb IN A 81.6.63.100
外部网络解析文件(named.external)
将相同域名映射到公网IP地址:
$TTL 86400
@ IN SOA chinaskills.cn. admin.chinaskills.cn. (
2025040501 ; serial
86400 ; refresh
3600 ; retry
604800 ; expire
10800 ) ; minimum
IN NS www.chinaskills.cn.
IN MX 10 mail.chinaskills.cn.
www IN A 81.6.63.254
mail IN A 81.6.63.254
download IN A 81.6.63.254
ftp IN A 81.6.63.254
web IN A 81.6.63.254
ispweb IN A 81.6.63.100
指定上游DNS服务器
在external视图中添加转发器指向IspSrv(假设其IP为81.6.63.1):
options {
forwarders { 81.6.63.1; };
recursion yes;
};
该配置确保所有非本地区域的查询将被转发至上层DNS处理。
服务启动与验证
重启BIND服务以应用更改:
systemctl restart named
检查配置语法正确性
执行完整性检测,确认两个区域均加载成功:
named-checkconf -z | grep chinaskills.cn
内网解析测试
从内网客户端执行nslookup,应返回私有IP:
nslookup www.chinaskills.cn 192.168.100.100
预期输出:192.168.100.100
外网解析测试
从外部网络发起查询,结果应为公网地址:
nslookup www.chinaskills.cn <dns_public_ip>
预期响应:81.6.63.254
邮件交换记录验证
确认MX记录正确指向邮件主机:
host -t MX chinaskills.cn 192.168.100.100
输出需包含:mail.chinaskills.cn