Unbound 是一个验证解析器,它可以直接在本地解析 DNS 查询,减少了对外部 DNS 服务器的依赖,提高了解析速度和安全性。本文将详细介绍如何在 Linux 系统上部署 Unbound DNS 服务,并配置主从服务器。
1. Unbound DNS 服务简介
Unbound 是一个高性能、可扩展的 DNS 解析器,它支持 DNSSEC(DNS 安全扩展),可以抵御 DNS 劫持和缓存污染攻击。Unbound 可以作为递归服务器或权威服务器运行。
2. 安装 Unbound
在大多数 Linux 发行版中,可以通过包管理器安装 Unbound。
对于基于 Debian 的系统(如 Ubuntu):
sudo apt update
sudo apt install unbound
对于基于 Red Hat 的系统(如 CentOS 或 Fedora):
sudo yum install unbound
或者,如果你使用的是较新的 Fedora 版本或其他使用 dnf
的系统:
sudo dnf install unbound
3. 配置 Unbound
Unbound 的配置文件通常位于 /etc/unbound/unbound.conf
。
3.1 编辑 Unbound 配置文件
你可以使用文本编辑器编辑配置文件,例如使用 nano
:
sudo nano /etc/unbound/unbound.conf
3.2 配置监听地址和端口
在配置文件中,确保 Unbound 监听正确的地址和端口(默认是 53 端口)。
server:
interface: 0.0.0.0
port: 53
3.3 配置根提示和信任锚
Unbound 需要根 DNS 服务器的地址,这些地址在 root.hints
文件中定义,通常位于 /etc/unbound/
目录。
root-hints: "/etc/unbound/root.hints"
3.4 配置缓存和验证
配置缓存大小和 DNSSEC 验证设置。
cache-min-ttl: 3600
cache-max-ttl: 86400
cache-max-negative-ttl: 3600
dnssec-must-be-secure: yes
dnssec-validation: yes
4. 启动 Unbound 服务
配置完成后,启动 Unbound 服务:
sudo systemctl start unbound
5. 设置 Unbound 服务开机自启
使 Unbound 服务在系统启动时自动启动:
sudo systemctl enable unbound
6. 配置 Unbound 主从服务器
6.1 主服务器配置
在主服务器上,确保 Unbound 配置文件允许从服务器进行区域传输。
forward-zone:
name: "example.com"
forward-addr: 192.168.1.100 # 从服务器的 IP 地址
6.2 从服务器配置
在从服务器上,配置文件中指定主服务器的地址和端口。
stub-zone:
name: "example.com"
stub-addr: 192.168.1.100 # 主服务器的 IP 地址
7. 测试 DNS 解析
在客户端机器上,你可以更改 /etc/resolv.conf
文件,将 DNS 服务器指向你的 Unbound 服务器,然后使用 dig
或 nslookup
命令测试 DNS 解析。
dig @127.0.0.1 www.example.com
8. 常见问题
- 解析失败:检查 Unbound 配置文件中的设置,确保 DNS 查询正确路由。
- 同步问题:确保主从服务器之间的网络连接正常,并且防火墙设置允许 DNS 流量。
- 配置错误:查看 Unbound 的日志文件
/var/log/unbound.log
以获取错误信息。
9. 总结
部署 Unbound DNS 服务可以提高 DNS 解析的速度和安全性。通过配置主从服务器,你可以实现 DNS 服务的高可用性和负载均衡。正确配置 Unbound 服务器对于确保网络服务的连续性和稳定性至关重要。
10. 进阶配置
对于更高级的配置,如设置 DNSSEC 签名密钥或配置 Unbound 作为权威服务器,建议查阅 Unbound 的官方文档和相关资源,以获取更详细的指导。