电商网站开发环境,网站建设公司专业网站费用报价,wordpress 微信内登录,网站开发工程师大学DNS服务器搭建配置优化
一、准备工作
1. 系统要求
Linux服务器#xff08;推荐CentOS 7/Ubuntu 18.04#xff09;root或sudo权限稳定的网络连接
2. 软件选择
BIND9#xff08;最常用的DNS服务器软件#xff09;dnsmasq#xff08;轻量级DNS/DHCP服务器#xff…DNS服务器搭建配置优化
一、准备工作
1. 系统要求
Linux服务器推荐CentOS 7/Ubuntu 18.04root或sudo权限稳定的网络连接
2. 软件选择
BIND9最常用的DNS服务器软件dnsmasq轻量级DNS/DHCP服务器PowerDNS功能丰富的DNS服务器
本文以BIND9为例
二、BIND9安装
1. 安装BIND9
CentOS/RHEL:
sudo yum install -y bind bind-utils
sudo systemctl enable named
sudo systemctl start namedUbuntu/Debian:
sudo apt-get update
sudo apt-get install -y bind9 bind9utils bind9-doc
sudo systemctl enable bind9
sudo systemctl start bind92. 验证安装
named -v
# 应显示BIND版本信息三、基础配置
1. 主配置文件修改
sudo vi /etc/named.conf修改以下内容
options {listen-on port 53 { any; }; # 允许所有IP监听listen-on-v6 port 53 { any; };directory /var/named;dump-file /var/named/data/cache_dump.db;statistics-file /var/named/data/named_stats.txt;memstatistics-file /var/named/data/named_mem_stats.txt;allow-query { any; }; # 允许所有查询recursion yes; # 启用递归查询dnssec-enable yes; # 启用DNSSECdnssec-validation yes; # 启用DNSSEC验证forwarders { # 设置上游DNS8.8.8.8;8.8.4.4;};// 性能优化参数max-cache-size 256M; # 最大缓存大小max-cache-ttl 3600; # 最大缓存TTLmin-cache-ttl 300; # 最小缓存TTL
};2. 创建区域文件
正向解析区域
sudo vi /etc/named.rfc1912.zones添加
zone example.com IN {type master;file example.com.zone;allow-update { none; };
};反向解析区域可选
zone 1.168.192.in-addr.arpa IN {type master;file 192.168.1.rev;allow-update { none; };
};3. 创建区域数据文件
正向解析文件
sudo vi /var/named/example.com.zone内容
$TTL 86400IN SOA ns1.example.com. admin.example.com. (2023062001 ; Serial3600 ; Refresh1800 ; Retry604800 ; Expire86400 ; Minimum TTL
)IN NS ns1.example.com.IN NS ns2.example.com.IN MX 10 mail.example.com.ns1 IN A 192.168.1.10
ns2 IN A 192.168.1.11
www IN A 192.168.1.100
mail IN A 192.168.1.200反向解析文件可选
sudo vi /var/named/192.168.1.rev内容
$TTL 86400IN SOA ns1.example.com. admin.example.com. (2023062001 ; Serial3600 ; Refresh1800 ; Retry604800 ; Expire86400 ; Minimum TTL
)IN NS ns1.example.com.IN NS ns2.example.com.10 IN PTR ns1.example.com.
11 IN PTR ns2.example.com.
100 IN PTR www.example.com.
200 IN PTR mail.example.com.4. 设置文件权限
sudo chown root:named /var/named/example.com.zone
sudo chmod 640 /var/named/example.com.zone
sudo chown root:named /var/named/192.168.1.rev
sudo chmod 640 /var/named/192.168.1.rev5. 检查配置文件语法
sudo named-checkconf
sudo named-checkzone example.com /var/named/example.com.zone6. 重启BIND服务
sudo systemctl restart named # CentOS/RHEL
sudo systemctl restart bind9 # Ubuntu/Debian四、DNS服务器优化配置
1. 性能优化参数
编辑/etc/named.conf在options部分添加
// 性能优化参数
max-cache-size 512M; # 根据服务器内存调整
max-cache-ttl 7200; # 最大缓存时间
min-cache-ttl 300; # 最小缓存时间
max-ncache-ttl 3600; # 否定缓存最大时间// 查询限制
max-clients-per-query 10; # 每个查询的最大客户端数
max-recursion-queries 75; # 递归查询最大数量
recursive-clients 1000; # 并发递归客户端数// 响应速率限制
rate-limit {responses-per-second 10;window 5;
};2. 启用多线程处理
options {// 启用多线程server-threads 4; # 根据CPU核心数设置listen-on port 53 { any; };...
};3. 日志优化配置
添加日志配置
logging {channel query_log {file /var/log/named/query.log versions 3 size 20m;severity info;print-time yes;print-category yes;};category queries { query_log; };channel security_log {file /var/log/named/security.log versions 3 size 20m;severity info;print-time yes;print-category yes;};category security { security_log; };
};创建日志目录
sudo mkdir /var/log/named
sudo chown named:named /var/log/named4. 启用DNSSEC
确保/etc/named.conf中有
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;5. 配置TSIG密钥用于主从同步
生成密钥
sudo dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST example.com在/etc/named.conf中添加
key example.com {algorithm hmac-sha256;secret 生成的密钥内容;
};五、主从DNS服务器配置可选
1. 主服务器配置
在/etc/named.conf中修改区域定义
zone example.com IN {type master;file example.com.zone;allow-transfer { 192.168.1.11; }; # 从服务器IPalso-notify { 192.168.1.11; }; # 从服务器IP
};2. 从服务器配置
安装BIND9后在/etc/named.conf中添加
zone example.com IN {type slave;file slaves/example.com.zone;masters { 192.168.1.10; }; # 主服务器IP
};六、安全加固
1. 限制区域传输
zone example.com IN {type master;file example.com.zone;allow-transfer { none; }; # 或指定IP
};2. 禁用版本信息
options {version Not disclosed;...
};3. 启用响应策略区域(RPZ)
options {response-policy { zone rpz; };
};zone rpz {type master;file /var/named/rpz.db;allow-query { localhost; };
};4. 配置防火墙
# 允许DNS查询
sudo firewall-cmd --permanent --add-servicedns
sudo firewall-cmd --reload七、监控与维护
1. 监控DNS服务
# 查看DNS统计信息
sudo rndc stats
# 查看DNS缓存
sudo rndc dumpdb -cache2. 日志轮转
创建/etc/logrotate.d/named
/var/log/named/*.log {dailymissingokrotate 7compressdelaycompressnotifemptycreate 0640 named namedsharedscriptspostrotate/usr/bin/systemctl reload named.service /dev/null 21 || trueendscript
}3. 定期检查
# 检查DNS解析
dig localhost example.com
# 检查反向解析
dig -x 192.168.1.10
# 检查DNS服务器性能
dnstop -l eth0八、故障排除
1. 常见问题解决
服务无法启动检查/var/log/messages或journalctl -u named解析失败检查区域文件语法named-checkzone性能问题调整缓存大小和TTL值
2. 调试命令
# 详细日志模式
sudo rndc querylog on
# 重新加载配置
sudo rndc reload
# 刷新缓存
sudo rndc flush九、定期维护
定期更新BIND软件包监控DNS查询日志定期检查DNSSEC密钥过期时间根据使用情况调整缓存大小和性能参数 SOP附录