DNS和DHCP是企业内网的两大基础网络服务,DNS负责域名解析,DHCP负责IP地址自动分配。合理配置这两项服务可以大幅提升内网管理的效率和可靠性。本文以Ubuntu 22.04为例,详细介绍BIND DNS服务器和ISC DHCP服务器的安装配置、安全加固和日常运维方法。
▶一、BIND DNS服务器安装
# 安装BIND 9
apt update && apt install -y bind9 bind9utils bind9-doc
# 或 yum install -y bind bind-utils
# 查看BIND版本
named -v
# 启动并设置开机自启
systemctl start named
systemctl enable named
# 检查服务状态
systemctl status named
ss -tuln | grep :53
▶二、主DNS区域配置
# /etc/bind/named.conf.local
zone "bacaiyun.com" {
type master;
file "/etc/bind/db.bacaiyun.com";
allow-transfer { 192.168.1.2; }; # 允许从DNS同步
also-notify { 192.168.1.2; };
};
# /etc/bind/db.bacaiyun.com
$TTL 604800
@ IN SOA ns1.bacaiyun.com. admin.bacaiyun.com. (
2026050101 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS ns1.bacaiyun.com.
@ IN NS ns2.bacaiyun.com.
@ IN A 192.168.1.100
ns1 IN A 192.168.1.100
ns2 IN A 192.168.1.101
www IN A 192.168.1.100
mail IN A 192.168.1.100
@ IN MX 10 mail.bacaiyun.com.
▶三、反向解析区域
# /etc/bind/named.conf.local - 添加反向区域
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};
# /etc/bind/db.192.168.1
$TTL 604800
@ IN SOA ns1.bacaiyun.com. admin.bacaiyun.com. (
2026050101 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS ns1.bacaiyun.com.
100 IN PTR ns1.bacaiyun.com.
100 IN PTR www.bacaiyun.com.
101 IN PTR ns2.bacaiyun.com.
▶四、DNS安全配置(DNSSEC)
# 启用DNSSEC签名
dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE bacaiyun.com
dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE bacaiyun.com
# named.conf配置DNSSEC
options {
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
};
# 转发器配置(性能优化)
options {
forwarders {
8.8.8.8;
114.114.114.114;
};
forward only; # 仅使用转发器
};
▶五、ISC DHCP服务器安装与配置
# 安装DHCP服务器
apt install -y isc-dhcp-server
# 或 yum install -y dhcp-server
# /etc/dhcp/dhcpd.conf
option domain-name "bacaiyun.com";
option domain-name-servers 192.168.1.100, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.200 192.168.1.250;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
}
# 静态IP分配(基于MAC地址)
host webserver {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.100;
}
▶六、DHCP/DNS动态更新
# DHCP配置DNS动态更新
# named.conf允许更新
zone "bacaiyun.com" {
type master;
file "/etc/bind/db.bacaiyun.com";
allow-update { key dhcp-update; };
};
# dhcpd.conf中启用DDNS
ddns-update-style interim;
update-static-leases on;
include "/etc/dhcp/dns-update.key";
zone bacaiyun.com. {
primary 127.0.0.1;
key dhcp-update;
}
▶七、DNS缓存加速配置
# 配置BIND作为缓存DNS服务器
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { 192.168.0.0/16; 10.0.0.0/8; };
allow-query { any; };
allow-query-cache { 192.168.0.0/16; };
# 缓存大小限制
max-cache-size 500M;
max-cache-ttl 86400;
# 防止DNS放大攻击
allow-transfer { none; };
rate-limit {
responses-per-second 10;
log-only no;
};
};
▶八、多子网与DHCP中继
当网络有多个子网时,每个子网都需要DHCP服务器或DHCP中继代理。DHCP中继(dhcrelay)将子网的DHCP广播转发到中心DHCP服务器。配置DHCP中继后,所有子网的客户端IP分配都由统一服务器管理,简化了IP地址规划和审计工作。
▶九、日志与监控
# BIND DNS统计信息
rndc stats
cat /var/cache/bind/named.stats
# 启用查询日志
rndc querylog
# 查看/var/log/syslog中的DNS查询记录
# DHCP租约查看
cat /var/lib/dhcp/dhcpd.leases
dhcp-lease-list
# 使用dnstop实时监控DNS查询
dnstop -s eth0
▶十、故障排除指南
DNS故障排查:使用dig +trace domain.com检查解析链路、nslookup结合不同DNS服务器测试、检查named-checkconf和named-checkzone配置语法。DHCP故障排查:检查dhcpd服务状态和系统日志、确认防火墙放行67/68端口、验证子网配置和IP地址范围是否重叠、使用tcpdump -i eth0 port 67抓包查看DHCP交互过程。
▶十一、DNS安全扩展(DNSSEC)部署
DNSSEC通过数字签名确保DNS查询结果不被篡改攻击。部署DNSSEC需要生成区域签名密钥(ZSK)和密钥签名密钥(KSK),使用dnssec-signzone对区域文件签名。配置验证解析器(如Unbound)验证下游DNS响应签名。DNSSEC密钥需要定期轮换,建立自动化密钥管理流程避免签名过期导致解析中断。部署DNSSEC可有效防御DNS劫持和缓存投毒攻击。
▶十二、DHCP Snooping与IP源防护
在交换机上配置DHCP Snooping可以防御DHCP欺骗攻击,只信任管理员指定的DHCP服务器。交换机记录DHCP租约信息到绑定数据库,与动态ARP检测(DAI)和IP源防护配合使用。信任端口通常连接上行DHCP服务器,非信任端口只能发送DHCP请求不能发送DHCP响应。配置DHCP Snooping速率限制防止DHCP耗尽攻击。
▶十三、DNS over HTTPS(DoH)配置
DNS over HTTPS将DNS查询封装在HTTPS流量中,加密传输防止中间人窃听和修改DNS查询。在BIND中配置DoH转发器,使用stubby或dnsdist作为DoH代理。对于企业内网,配置内部DNS服务器支持DoH可以保护内部用户DNS查询隐私。同时需要确保DoH配置不绕过企业的DNS内容过滤策略。
▶十三、DNS性能优化与故障快速恢复
DNS解析速度直接影响用户访问体验,优化点包括:使用缓存DNS服务器减少上游查询、优化递归查询路径选择最近的根DNS服务器、使用GeoDNS为用户返回最近的服务器IP。部署多个地理分布的DNS节点实现高可用,使用anycast技术让用户自动连接到最近的DNS服务器。当主DNS节点故障时其他节点自动接管保证解析服务不中断。
配置DNS故障演练机制定期测试DNS切换过程,记录总切换时间和解析正确率。准备核心DNS配置的离线备份方案,即使所有DNS节点同时故障也可以通过手动修改服务器hosts文件临时恢复关键服务访问。建立DNS监控看板展示查询量、响应延迟和错误率等关键指标。
▶十四、DNS监控与性能预警
建立DNS服务器的全方面监控体系:DNS查询量和响应时间反映服务负载,NXDOMAIN比例过高可能指示配置错误或攻击,递归查询失败率超过阈值需要排查上游DNS不可达。DNS查询结果对比机制定期对比内部DNS与外部DNS的解析结果发现DNS劫持。配置DNS性能预警在查询延迟超过基线值的2倍时告警通知运维人员及时介入处理。DNS系统作为网络核心基础设施其稳定性和性能直接影响所有业务的访问体验。
注册
登录控制台
