安装BIND,修改named.conf添加listenonv6,配置正向/反向区域,重启named服务,确保系统开启IP
Linux搭建IPv6 DNS详细教程
环境准备
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | 支持IPv6的Linux发行版(如CentOS 7+/Ubuntu 16.04+) |
| 网络环境 | 具备IPv6连接能力(隧道或原生IPv6) |
| 软件依赖 | bind(BIND 9.10+)、iputils(用于测试) |
检查IPv6连通性
# 测试IPv6网络连通性 ping6 c 3 ipv6.google.com # 预期输出:PING成功,显示IPv6地址
安装BIND服务
安装BIND
| 发行版 | 安装命令 |
|---|---|
| Ubuntu/Debian | sudo apt update && sudo apt install bind9 bind9utils bind9doc |
| CentOS/RHEL | sudo yum install bind bindutils |
检查BIND版本
# 验证安装成功 named v # 预期输出:显示BIND版本号(建议9.10以上)
配置IPv6 DNS服务
修改主配置文件
编辑/etc/bind/named.conf(Debian系)或/etc/named.conf(RedHat系):
# 添加IPv6监听配置
options {
+ listenonv6 { any; }; # 监听所有IPv6接口
+ forwarders { 2001:4860:4860::8888; 2001:4860:4860::8844; }; # 根服务器IPv6地址
...
};
创建IPv6正向区域
创建/etc/bind/db.example.com文件:

$TTL 604800
@ IN SOA ns.example.com. admin.example.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.example.com.
ns IN AAAA 2001:db8:1::1
www IN AAAA 2001:db8:1::2
创建IPv6反向区域
创建/etc/bind/db.ip6.arpa文件:
$TTL 604800
@ IN SOA ns.example.com. admin.example.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
$ORIGIN ip6.arpa.
$GENERATE 1 0ffff $ {
CNAME ip6addressmapping.example.com.
}
防火墙配置
开放DNS端口
# Ubuntu/Debian系统 sudo ufw allow 53/tcp sudo ufw allow 53/udp # CentOS/RHEL系统 sudo firewallcmd permanent addservice=dns sudo firewallcmd reload
启动与测试
启动服务
# 启动BIND服务 sudo systemctl start named # 设置开机自启 sudo systemctl enable named
测试解析功能
# 正向解析测试 dig @localhost www.example.com AAAA # 预期输出:返回2001:db8:1::2的AAAA记录 # 反向解析测试 dig @localhost x 2001:db8:1::2 # 预期输出:返回www.example.com的PTR记录
常见问题排查
| 现象 | 解决方法 |
|---|---|
| 无法获取IPv6地址 | 检查网络接口IPv6配置,确认路由器/ISP支持IPv6 |
| BIND启动失败 | 检查named.conf语法错误,查看/var/log/syslog日志 |
| IPv6解析超时 | 确认防火墙已开放UDP/TCP 53端口,检查listenonv6配置 |
| 反向解析不生效 | 确认$GENERATE语法正确,检查db.ip6.arpa文件命名规范 |
相关问题与解答
Q1:为什么BIND服务启动后无法解析IPv6地址?
A:可能原因包括:

named.conf未配置listenonv6选项- 防火墙未开放UDP/TCP 53端口
- IPv6网络接口未启用(使用
ip 6 addr检查) - 区域文件缺少AAAA记录或PTR记录配置错误
Q2:如何验证IPv6 DNS配置是否生效?
A:可通过以下方式验证:
- 本地测试:使用
dig +nocmd www.example.com AAAA @localhost查询本地DNS服务器 - 远程测试:在其他设备配置该DNS服务器,执行
ping6 a www.example.com验证解析 - 在线检测:访问https://www.whatsmydns.org/#AAAA/www.example.
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/197203.html