安装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.