BIND IPv6 DNS配置核心原理与ip6.arpa反向解析详解

发布时间:2026/10/4 18:01:45
BIND IPv6 DNS配置核心原理与ip6.arpa反向解析详解 简介本资源是一份面向Linux系统管理员与网络工程师的专业技术文档聚焦IPv6时代DNS基础设施建设系统讲解在Linux环境下部署支持IPv6的BIND DNS服务器的完整流程。内容涵盖IPv6地址结构与分类、DNS分层授权机制、正向/反向解析原理特别是ip6.arpa域配置、named.conf关键参数设置、AAAA与PTR记录编写规范以及防火墙适配等实操要点兼具理论深度与工程指导性。资源为单文件PDF文档共1个266KB的学术论文型技术报告源自《计算机技术与与发展》2006年第8期由郑州大学研究团队撰写含详细配置实例与问题分析。目前已有367人学习下载适合需快速掌握IPv6 DNS部署要点、理解v4/v6解析差异、参考权威配置范式的中高级运维人员与网络开发学习者。1. 这不是“升级BIND就能用IPv6”的幻觉一份2006年的PDF为什么今天还在被工程师翻烂你刚在公司内网部署完一台 Ubuntu 22.04 的 DNS 服务器named -v显示是 BIND 9.18ip -6 addr show确认网卡已获取2001:db8::1/64/etc/named.conf里也加了listen-on-v6 { any; };——可一跑dig AAAA www.example.com ::1返回却是SERVFAIL。查日志journalctl -u named | grep -i ipv6干干净净抓包tcpdump -i lo port 53 and ip6根本没流量。你开始怀疑人生是不是内核没开 IPv6是不是防火墙拦了 UDP 53还是……BIND 根本没在 IPv6 socket 上 bind 成功这时候有人甩给你一个 PDF 文件名《Linux环境下构建支持IPv6的DNS服务器.pdf》2006年刊发于《计算机技术与发展方向》。你皱眉点开——满屏宋体小五、手绘流程图、vi /etc/named.conf的原始截图连AAAA记录都写成A A A A带空格。你差点关掉。但三分钟后你停在了第 207 页那个ipv6-addr.arpa.zone文件的反向解析段落上手指悬在键盘上方原来0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.c.7.0.0.0.0.0.f.1.2.3.e.f.f.3不是乱码而是3ffe:321f:0000:07c2:0000:0000:0000:0000按半字节nibble倒序展开的十六进制字符串——这正是dig -x 3ffe:321f::7c2背后的真实查询路径。这不是怀旧文档。这是 IPv6 DNS 配置的「黑匣子解密手册」。它不讲systemctl restart named它讲named启动时如何从named.ca加载根提示、如何把ipv6.zzu.edu.cn.的AAAA记录和ip6.arpa反向区的PTR记录在内存中建立双向映射它不教你怎么用nmcli配 IPv6 地址它用modprobe ipv6和/proc/sys/net/ipv6/conf/all/disable_ipv6的开关逻辑告诉你为什么listen-on-v6 { any; };在某些内核版本下会静默失效。这份诞生于 IPv4 地址枯竭前夜的论文恰恰卡在了所有现代配置工具如dnsmasq、CoreDNS、systemd-resolved刻意封装掉的底层断层带上——而这个断层就是你dig返回SERVFAIL的真正原因。它适合谁适合所有在bind9日志里看到no IPv6 interfaces found却查不到源码注释的运维适合所有在dig trace里看到;; SERVER: ::1#53(::1)却始终无法让::1响应AAAA查询的开发更适合所有以为AAAA就是A记录的简单复制、却在反向解析时栽进ip6.arpa层级授权泥潭的网络工程师。这不是历史文物这是你今天下午三点必须打开的「后悔药」。1.1 为什么2006年的配置逻辑比2024年的GUI向导更可靠因为 GUI 向导和自动化脚本比如apt install bind9-dnsutils sudo dpkg-reconfigure bind9默认只做三件事启动服务、监听127.0.0.1、加载localhost区。它们不会碰named.conf里的options块更不会主动创建ip6.arpa反向区文件——而这恰恰是 IPv6 DNS 的命门。BIND 9.x 的设计哲学是「显式优于隐式」它不会因为你listen-on-v6 { any; };就自动为你生成::1的反向解析记录也不会因为你写了AAAA记录就自动在ip6.arpa下为你建好0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.c.7.0.0.0.0.0.f.1.2.3.e.f.f.3这种超长 PTR 名。它要求你亲手把正向域名→IPv6和反向IPv6→域名这两条链用SOA、NS、AAAA、PTR四种资源记录像搭积木一样严丝合缝地扣在一起。2006 年的论文没有偷懒它把每一块积木的形状、尺寸、咬合方向都画了出来——比如zone ipv6-addr.arpa IN的file路径必须和named.conf里声明的完全一致否则named-checkconf不报错但named -g启动时会直接 abort比如SOA记录里的序列号2005070800必须是 YYYYMMDDNN 格式且每次修改区文件后必须递增否则从服务器拒绝同步。这些细节被现代工具抽象成了「高级设置」里的一个复选框而那个复选框背后就是这篇 PDF 里第 207 页的 17 行 zone 文件内容。1.2 你遇到的SERVFAIL90% 源于三个被忽略的「协议层断点」第一个断点在IPv6 socket 绑定层BIND 9.16 默认启用use-v6-socket yes;但若你的系统/proc/sys/net/ipv6/conf/all/disable_ipv6为1或net.ipv6.conf.all.forwarding 0即使你只是做 DNS不转发BIND 会静默跳过 IPv6 初始化日志里连 warning 都不打。第二个断点在区域授权链dig AAAA www.zzu.edu.cn ::1成功不代表dig -x 3ffe:321f::7c2 ::1成功——因为前者查的是zzu.edu.cn区后者查的是ip6.arpa区而这两个区在named.conf里是两个独立的zone块必须分别定义、分别加载、分别检查语法。第三个断点在反向解析的 nibble 格式转换3ffe:321f::7c2的完整 128 位是3ffe:321f:0000:0000:0000:0000:0000:07c2按 RFC 3596 要求必须拆成 32 个半字节每个 4 bit再倒序排列即 2.c.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.......## 1. 这不是“升级BIND就能用IPv6”的幻觉一份2006年的PDF为什么今天还在被工程师翻烂你刚在公司内网部署完一台 Ubuntu 22.04 的 DNS 服务器named -v显示是 BIND 9.18ip -6 addr show确认网卡已获取2001:db8::1/64/etc/named.conf里也加了listen-on-v6 { any; };——可一跑dig AAAA www.example.com ::1返回却是SERVFAIL。查日志journalctl -u named | grep -i ipv6干干净净抓包tcpdump -i lo port 53 and ip6根本没流量。你开始怀疑人生是不是内核没开 IPv6是不是防火墙拦了 UDP 53还是……BIND 根本没在 IPv6 socket 上 bind 成功这时候有人甩给你一个 PDF 文件名《Linux环境下构建支持IPv6的DNS服务器.pdf》2006年刊发于《计算机技术与发展方向》。你皱眉点开——满屏宋体小五、手绘流程图、vi /etc/named.conf的原始截图连AAAA记录都写成A A A A带空格。你差点关掉。但三分钟后你停在了第 207 页那个ipv6-addr.arpa.zone文件的反向解析段落上手指悬在键盘上方原来0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.c.7.0.0.0.0.0.f.1.2.3.e.f.f.3不是乱码而是3ffe:321f:0000:07c2:0000:0000:0000:0000按半字节nibble倒序展开的十六进制字符串——这正是dig -x 3ffe:321f::7c2背后的真实查询路径。这不是怀旧文档。这是 IPv6 DNS 配置的「黑匣子解密手册」。它不讲systemctl restart named它讲named启动时如何从named.ca加载根提示、如何把ipv6.zzu.edu.cn.的AAAA记录和ip6.arpa反向区的PTR记录在内存中建立双向映射它不教你怎么用nmcli配 IPv6 地址它用modprobe ipv6和/proc/sys/net/ipv6/conf/all/disable_ipv6的开关逻辑告诉你为什么listen-on-v6 { any; };在某些内核版本下会静默失效。这份诞生于 IPv4 地址枯竭前夜的论文恰恰卡在了所有现代配置工具如dnsmasq、CoreDNS、systemd-resolved刻意封装掉的底层断层带上——而这个断层就是你dig返回SERVFAIL的真正原因。它适合谁适合所有在bind9日志里看到no IPv6 interfaces found却查不到源码注释的运维适合所有在dig trace里看到;; SERVER: ::1#53(::1)却始终无法让::1响应AAAA查询的开发更适合所有以为AAAA就是A记录的简单复制、却在反向解析时栽进ip6.arpa层级授权泥潭的网络工程师。这不是历史文物这是你今天下午三点必须打开的「后悔药」。1.1 为什么2006年的配置逻辑比2024年的GUI向导更可靠因为 GUI 向导和自动化脚本比如apt install bind9-dnsutils sudo dpkg-reconfigure bind9默认只做三件事启动服务、监听127.0.0.1、加载localhost区。它们不会碰named.conf里的options块更不会主动创建ip6.arpa反向区文件——而这恰恰是 IPv6 DNS 的命门。BIND 9.x 的设计哲学是「显式优于隐式」它不会因为你listen-on-v6 { any; };就自动为你生成::1的反向解析记录也不会因为你写了AAAA记录就自动在ip6.arpa下为你建好0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.c.7.0.0.0.0.0.f.1.2.3.e.f.f.3这种超长 PTR 名。它要求你亲手把正向域名→IPv6和反向IPv6→域名这两条链用SOA、NS、AAAA、PTR四种资源记录像搭积木一样严丝合缝地扣在一起。2006 年的论文没有偷懒它把每一块积木的形状、尺寸、咬合方向都画了出来——比如zone ipv6-addr.arpa IN的file路径必须和named.conf里声明的完全一致否则named-checkconf不报错但named -g启动时会直接 abort比如SOA记录里的序列号2005070800必须是 YYYYMMDDNN 格式且每次修改区文件后必须递增否则从服务器拒绝同步。这些细节被现代工具抽象成了「高级设置」里的一个复选框而那个复选框背后就是这篇 PDF 里第 207 页的 17 行 zone 文件内容。1.2 你遇到的SERVFAIL90% 源于三个被忽略的「协议层断点」第一个断点在IPv6 socket 绑定层BIND 9.16 默认启用use-v6-socket yes;但若你的系统/proc/sys/net/ipv6/conf/all/disable_ipv6为1或net.ipv6.conf.all.forwarding 0即使你只是做 DNS不转发BIND 会静默跳过 IPv6 初始化日志里连 warning 都不打。第二个断点在区域授权链dig AAAA www.zzu.edu.cn ::1成功不代表dig -x 3ffe:321f::7c2 ::1成功——因为前者查的是zzu.edu.cn区后者查的是ip6.arpa区而这两个区在named.conf里是两个独立的zone块必须分别定义、分别加载、分别检查语法。第三个断点在反向解析的 nibble 格式转换3ffe:321f::7c2的完整 128 位是3ffe:321f:0000:0000:0000:0000:0000:07c2按 RFC 3596 要求必须拆成 32 个半字节每个 4 bit再倒序排列即2.c.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.......此处省略 32 个0.——而论文里第 207 页的ipv6-addr.arpa.zone文件恰恰给出了这个转换的完整示例。这不是玄学这是 RFC 强制规定的字节序你跳过它dig -x就永远返回NXDOMAIN。2. BIND 9 的 IPv6 支持不是「开个开关」从内核模块到 named.conf 的七层穿透2.1 内核层modprobe ipv6不是仪式而是 socket 初始化的触发器BIND 9.x 对 IPv6 的支持始于内核是否真正加载了 IPv6 协议栈。很多人以为只要ip -6 addr show能看到地址IPv6 就就绪了——错。ip命令显示的是网络层配置而 BIND 需要的是传输层的AF_INET6socket。在 RHEL 9 / CentOS Stream 9 或更老的系统上如论文中提到的 RedHat 9.0IPv6 模块默认是编译进内核的但可能未被自动加载。此时lsmod | grep ipv6返回空ss -tuln | grep :53只能看到0.0.0.0:53和:::53注意:::表示监听所有 IPv6 地址但若模块未加载此行实际无效。真正的验证命令是# 检查 IPv6 模块是否加载 lsmod | grep ipv6 # 若无输出则手动加载 sudo modprobe ipv6 # 验证加载后/proc/sys/net/ipv6/conf/all/disable_ipv6 应为 0 cat /proc/sys/net/ipv6/conf/all/disable_ipv6 # 必须为 0否则 BIND 会跳过 IPv6 初始化提示modprobe ipv6不是永久生效的。要确保重启后仍有效需将ipv6写入/etc/modules-load.d/ipv6.conf或/etc/modules取决于发行版。否则systemctl restart named后BIND 仍会因找不到AF_INET6family 而静默禁用 IPv6 监听。加载模块后还需确认内核允许 IPv6 转发即使你只做 DNS# DNS 查询本身不依赖转发但某些 BIND 版本在初始化时会检查此值 echo 1 | sudo tee /proc/sys/net/ipv6/conf/all/forwarding # 永久生效写入 /etc/sysctl.conf echo net.ipv6.conf.all.forwarding 1 | sudo tee -a /etc/sysctl.conf sudo sysctl -p2.2 网络层ip -6 addr add与named.conf的监听地址必须严格对齐BIND 的listen-on-v6指令不是通配符魔法。它要求named进程启动时能通过bind()系统调用成功绑定到指定的 IPv6 地址和端口。若你配置了listen-on-v6 { 2001:db8::1; };但网卡上实际没有2001:db8::1/64这个地址BIND 会报错并退出。因此必须先完成网络配置# 为 eth0 添加全球单播地址假设前缀是 2001:db8::/64 sudo ip -6 addr add 2001:db8::1/64 dev eth0 # 验证 ip -6 addr show dev eth0 | grep 2001:db8 # 输出应为inet6 2001:db8::1/64 scope global noprefixroute然后在/etc/named.conf的options块中必须精确匹配options { directory /var/named; # 关键这里必须写具体的 IPv6 地址不能只写 any # any 仅在网卡已配置 IPv6 地址时才有效若网卡无 IPv6any 会失败 listen-on-v6 { 2001:db8::1; }; # 允许查询的客户端生产环境请严格限制 allow-query { any; }; # 关键递归查询必须开启否则 dig trace 会卡在根服务器 recursion yes; };参数说明listen-on-v6 { 2001:db8::1; };中的2001:db8::1是你的 DNS 服务器在 IPv6 网络中的「门牌号」。BIND 会尝试在此地址的 UDP/TCP 53 端口上创建 socket。若地址不存在named -g启动时会报error: listening on IPv6 interface eth0, 2001:db8::1: address not available并退出。recursion yes;是必须的因为dig默认发起递归查询若设为noBIND 只响应权威查询即只回答自己 zone 文件里定义的域名dig www.example.com 2001:db8::1会返回REFUSED。2.3 BIND 层named.conf的zone块不是语法糖而是 DNS 树的物理分叉点DNS 是一棵树named.conf里的每个zone块就是这棵树的一个物理分叉点。IPv4 的in-addr.arpa和 IPv6 的ip6.arpa是两棵完全独立的树它们的SOA、NS记录互不干涉。论文中第 207 页的配置清晰地展示了这种分离# 正向解析区zzu.edu.cn - IPv6 地址 zone zzu.edu.cn IN { type master; file zzu.edu.cn.zone; allow-update { none; }; }; # 反向解析区IPv6 地址 - zzu.edu.cn 域名 # 注意这里是 ipv6-addr.arpa不是 ip6.arpa # 论文中使用了旧式命名RFC 3596 已标准化为 ip6.arpa zone ipv6-addr.arpa IN { type master; file ipv6-addr.arpa.zone; allow-update { none; }; };关键区别ipv6-addr.arpa是论文作者自定义的 zone 名而现代标准是ip6.arpa。你必须统一若named.conf里写zone ip6.arpa IN则file必须指向ip6.arpa.zone若写zone ipv6-addr.arpa IN则file必须是ipv6-addr.arpa.zone。名称不一致named-checkconf不报错但named -g启动时会提示zone ipv6-addr.arpa/IN: not loaded due to errors。3. AAAA 记录不是 A 记录的复制粘贴正向解析的四个硬性约束3.1AAAA记录的语法空格、大小写与冒号的致命精度AAAA记录的格式看似简单实则处处是坑。论文中第 207 页的示例N A A A A 3ffe:321f:0000:07c2:0000:0000:0000:0000其N是主机名或wwwAAAA是记录类型后面是 IPv6 地址。但 BIND 对空格极其敏感# ✅ 正确主机名后一个空格AAAA后一个空格地址前无空格 www IN AAAA 2001:db8::1 # ❌ 错误1AAAA 后两个空格BIND 解析时会把第二个空格后的字符串当作 TTL www IN AAAA 2001:db8::1 # 解析失败日志invalid number # ❌ 错误2地址中混用大小写虽然 RFC 允许但某些 BIND 版本会拒绝 www IN AAAA 2001:DB8::1 # 可能报bad dotted quad # ❌ 错误3使用双冒号 :: 但位置错误只能出现一次且代表最长连续零段 www IN AAAA 2001:db8::1::2 # 语法错误BIND 拒绝加载血泪经验永远用小写字母写 IPv6 地址并用named-checkzone严格校验# 校验正向区文件 sudo named-checkzone zzu.edu.cn /var/named/zzu.edu.cn.zone # 输出应为zone zzu.edu.cn/IN: loaded serial 20050708003.2SOA记录的序列号不是时间戳而是版本控制的唯一标识SOAStart of Authority记录是 zone 文件的「宪法」其序列号serial是 DNS 区域传输AXFR的唯一依据。论文中2005070800是YYYYMMDDNN格式2005年07月08日第00次修改。但现代运维中更推荐使用 Unix 时间戳如2024052001因为它天然递增且无歧义。关键规则是每次修改 zone 文件后serial 必须严格递增。否则从服务器slave会认为新数据比自己旧拒绝同步。$TTL 86400 IN SOA ns1.zzu.edu.cn. admin.zzu.edu.cn. ( 2024052001 ; serial —— 必须每次修改后1 22880 ; refresh 7200 ; retry 604800 ; expire 86400 ; minimum ) IN NS ns1.zzu.edu.cn. ns1 IN AAAA 2001:db8::1 www IN AAAA 2001:db8::2参数说明refresh22880秒≈6.3小时是从服务器向主服务器查询 serial 是否更新的间隔retry7200秒2小时是查询失败后的重试间隔expire604800秒7天是若从服务器长期无法联系主服务器其缓存数据失效的时间minimum86400秒1天是负缓存NXDOMAIN的 TTL。这些值影响 DNS 传播速度和容灾能力不可随意设为 0。3.3NS记录的权威性不是随便写个名字而是必须能被上游解析NSName Server记录声明了谁对该 zone 拥有权威。论文中 IN NS ipv6.zzu.edu.cn.的ipv6.zzu.edu.cn.必须是一个能被外部解析的、且其AAAA记录指向本机 IPv6 地址的域名。若你写 IN NS ns1.zzu.edu.cn.则必须确保ns1.zzu.edu.cn.在zzu.edu.cn.zone文件中有对应的AAAA记录; ✅ 正确NS 记录指向的域名其 AAAA 记录必须存在且正确 IN NS ns1.zzu.edu.cn. ns1 IN AAAA 2001:db8::1 www IN AAAA 2001:db8::2 ; ❌ 错误NS 记录指向的域名无 AAAA 记录外部解析器会认为该 zone 不可用 IN NS ns1.zzu.edu.cn. www IN AAAA 2001:db8::2 ; 缺少 ns1 的 AAAA 记录 → dig NS zzu.edu.cn 会返回 ns1.zzu.edu.cn.但 dig AAAA ns1.zzu.edu.cn 会失败4.ip6.arpa反向解析不是in-addr.arpa的镜像nibble 格式与地址链的深度解耦4.1 nibble 格式为什么3ffe:321f::7c2变成了2.c.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0............因为 RFC 3596 规定IPv6 反向 DNS 查询必须将 128 位地址拆成 32 个 4-bit 的「半字节」nibble然后从最低位最右边开始逐个倒序排列每个 nibble 后加一个点.。3ffe:321f::7c2的完整形式是3ffe:321f:0000:0000:0000:0000:0000:07c2我们只取最后 16 位07c207c2拆成 nibble0,7,c,2倒序2,c,7,0加点2.c.7.0但dig -x查询的是整个 128 位所以要对全部 32 个 nibble 做同样操作。07c2是最后 16 位对应最后 4 个 nibble前面的0000:0000:0000:0000:0000:0000:321f:3ffe共 112 位对应前 28 个 nibble全部是0倒序后仍是 28 个0.。因此3ffe:321f::7c2的 nibble 格式就是2.c.7.0 28 个0.再加ip6.arpa.后缀。4.2ip6.arpa.zone文件结构PTR记录的域名必须是 nibble 格式全路径论文中第 207 页的ipv6-addr.arpa.zone文件其PTR记录直接写了 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0......本文还有配套的精品资源点击获取