IPv6 DAD 与邻居请求——重复地址检测和 SLAAC 故障排查

如何分析 IPv6 重复地址检测、邻居请求、邻居广告、SLAAC 故障、缺少 NA 响应、重复 IPv6 地址以及数据包捕获中无 IPv6 连接。

IPv6爸爸, 邻居招揽, 邻居广告, 重复地址检测, slaac, 没有 IPv6 连接, 粒子电容分析

IPv6 故障通常在 TCP、TLS、DNS 或 HTTP 之前开始。当主机有地址但无法可靠通信时,用户会搜索“IPv6 DAD 数据包捕获”、“邻居请求无响应”、“缺少邻居广告”、“重复的 IPv6 地址”、“SLAAC 不工作”和“无 IPv6 连接 pcap”。

PCAP 手术很有用,因为 IPv6 邻居发现依赖于小型 ICMPv6 交换,而这些交换很容易被错误地删除。应用程序故障之前的数据包通常可以解释一切。

爸爸是做什么的

重复地址检测会在将 IPv6 地址分配给接口之前检查该地址是否已被使用。在 DAD 期间,主机发送对暂定地址的邻居请求。

如果另一个节点响应,则该地址是重复的,不应使用。如果没有找到重复的地址,该地址就可以使用。

搜索者通常在操作系统输出中仅看到“IPv6 地址暂定”或“dadfailed”。 pcap 可以显示实际的邻居请求和任何回复。

邻居招揽和邻居广告

邻居请求询问谁拥有 IPv6 地址。邻居广告回答。

常见数据包证据:

  • ICMPv6 邻居请求。
  • 请求节点多播目的地。
  • 目标地址。
  • DAD 期间可能未指定源地址。
  • ICMPv6 邻居通告响应。
  • 链路层地址选项。

如果发送了 NS 数据包但 NA 从未返回,则问题可能是 L2 可达性、多播过滤、防火墙策略、重复地址处理或错误的链路假设。

SLAAC 和路由器通告上下文

SLAAC 依靠路由器通告来学习前缀和标志。 DAD 然后检查生成的地址。

有用的 IPv6 启动跟踪包括:

  • 路由器征集。
  • 路由器广告。
  • 前缀信息选项。
  • 生成的地址。
  • 爸爸邻居征集。
  • 任何邻居广告。
  • DNS 选项(如果相关)。

如果只捕获后来失败的 TCP 连接,则自动配置原因可能不可见。

重复地址症状

重复的 IPv6 地址问题显示为:

  • 地址暂定。
  • 地址已被弃用或失败。
  • 连接会短暂工作然后失败。
  • 邻居缓存在 MAC 地址之间翻转。
  • 从一个映像克隆的两个虚拟机发生冲突。
  • 容器重用稳定的地址。
  • 路由器记录重复检测。

数据包捕获可以证明另一个节点是否响应了 DAD,或者主机是否错误地认为存在重复节点。

失踪的邻居广告

如果主机向网关或对等方发送 NS,但未收到 NA,则应用程序连接失败。

可能的原因:

  • 目标离线。
  • VLAN 错误。
  • 组播过滤。
  • 防火墙阻止 ICMPv6。
  • 交换机监听问题。
  • 管理程序桥接问题。
  • 地址实际上不在链接上。
  • NAT 或代理设计混淆了邻居发现。

阻止 ICMPv6 通常会以看似无关的方式破坏 IPv6。

捕获点和多播

邻居发现大量使用多播。占领点很重要。

查看:

  • 捕获是否在正确的接口上?
  • 它是否看到多播帧?
  • VM 桥接是否通过 ICMPv6?
  • 是否存在 VLAN 标记?
  • Wi-Fi 组播是否被过滤或转换?
  • 开关镜是否捕获两个方向?

当捕获不完整时,单方面的捕获可能会使国庆民主党看起来破碎。

错误的应用诊断

IPv6 NDP 故障经常被误诊为:

  • DNS问题。
  • TLS 问题。
  • 网络服务器问题。
  • TCP 超时。
  • 防火墙端口块。
  • VPN 路由问题。

这些可能是下游症状。如果邻居请求失败,主机可能永远无法到达 L2 的对等点。

调试清单

使用此工作流程:

  1. 从界面启动时捕获。
  2. 保留路由器请求和路由器通告。
  3. 查找 DAD 邻居征集。
  4. 检查暂定地址目标。
  5. 寻找邻居广告。
  6. Check solicited-node multicast destination.
  7. 比较选项中的 MAC 地址。
  8. 检查网关邻居解析。
  9. 验证 VLAN 和捕获点。
  10. 保留包含失败的应用程序流的 NDP 数据包。

最终诊断

IPv6 DAD 和邻居请求失败发生在应用层之前。重要的证据是 ICMPv6 邻居请求、邻居通告、路由器通告上下文、多播传送、重复地址响应和捕获放置。

PCAP 手术有助于将那些小但决定性的数据包附加到失败的流中,以便“无 IPv6 连接”成为特定的 DAD、SLAAC、NDP、防火墙或 L2 诊断。

<!-- pcap-localized-evidence-foundation-v1:start -->

用数据包证据回答“IPv6 DAD 与邻居请求——重复地址检测和 SLAAC 故障排查”

直接答案是:分析器 label 或应用消息不能单独确定原因。应从 capture point 与 flow direction 开始,证明最后成功的 protocol boundary 和首个失败 boundary。另一位 reviewer 必须能找到支撑句子的 packet、gap 或 interval,并知道什么证据可以否定判断。

把抓包放到路径地图上

记录 client、server,以及中间的 proxy、load balancer、NAT 或 firewall。写明 interface、位置、clock、OS 和可见方向。client 附近的 capture 证明什么到达 client,但不能证明 server 没发送;server 附近只证明该位置的出口。对比两个观察点前,修正 clock offset,并按 flow tuple、TCP sequence 或 transaction ID 对齐。

检查 snap length、dropped packets、offload、capture filter、ring buffer 和开始时间。host 上的 bad checksum 可能是 offload artifact。大 segment 可能来自 GRO/TSO,并非 wire 上的一个 packet。有限文件里缺少 packet,不能在证明观察点本应看到它之前写成 network loss。

按顺序读取边界

边界 成功证据 有效失败证据
Link/IP direction、addresses、route 一致 ARP/NDP 缺失、ICMP、MTU、asymmetry
TCP SYN、SYN-ACK、ACK、sequence 正确 retransmission、RST、zero window、timeout
TLS ClientHello、ServerHello、handshake 推进 alert 或 SNI/ALPN/certificate boundary
Application 完整 request 与对应 response status、gap 或提前 close
User response time 或 failure window stall 对应已证实边界

在第一个没有成功证据的边界停止。TCP 未建立时不要先解释 HTTP。request 到达 proxy 却未出现在 upstream,边界位于 proxy 或其路径;upstream 已收到但 timeout 前没有 response,应通过 ACK 与 bytes 推进区分 application delay 与 network loss。

分开 observation 与 hypothesis

observation 可以指到记录:“client 发送到指定 sequence,sender 重复同一 segment 三次,本观察点没有出现推进 ACK。”hypothesis 是“路径丢失 segment”。另一位置的 capture 或 dropped records 可能否定它。为每个假设写一项支持证据与一项反证。

retransmission 或 duplicate ACK 不能自动分配责任。reordering、loss、capture artifact、receiver delay 会产生相似 label。关联 direction、sequence、ACK、SACK、RTT、window 与 application timing。DNS/DHCP 对齐 transaction ID 与 attempts,HTTP 对齐 request/response,TLS 对齐 handshake direction。

编辑前保全原件

计算 original checksum,并保持原件不变。filter、trim、redaction 在 working copy 上完成。记录 input、operation、时间、前后 packet count、output checksum 与理由。timestamp rewrite 或删除 packets 后,该副本不再适合某些 timing 或 sequence 结论。

addresses 与 identifiers 使用一致 aliases,保持 endpoint 可追踪。不能删除判断所需的 port、direction、length。secret mapping 单独保存。通过抓取与导出范围和 PCAP Surgery 概览检查派生文件。

发布前 QA

title 与 answer 是否回答同一 flow?每个 duration 是否写明 clock 与观察点?首个 failure boundary 是否明确?有没有 alternative explanation?复测是否只改一项?original 是否保留?限制结论:“该文件证明指定 interval 的 client 附近行为,不证明 server 内部执行。”

Semrush 验证的一般词 PCAP analyzer 只由产品页负责。技术博客保持自身问题,不编造 volume 或 KD。

<!-- pcap-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->

直接答案与验收边界

关于“IPv6 DAD 与邻居请求——重复地址检测和 SLAAC 故障排查”的简短答案是:如何分析 IPv6 重复地址检测、邻居请求、邻居广告、SLAAC 故障、缺少 NA 响应、重复 IPv6 地址以及数据包捕获中无 IPv6 连接。 这句话应当被视为需要验证的结果,而不是对所有输入、设备、项目或环境的承诺。完整结果会记录初始状态、准确操作、可见输出,以及能够证明任务已在 PCAP Surgery 中完成的条件。

证据优先的操作程序

修改完整项目之前,先从小型、可重复的案例开始。记录应用版本、操作系统、输入或设备身份、相关设置和预期结果。只执行一个明确动作,保留第一处意外变化,并在条件允许时与已知正常案例比较。同时修改多个控件会掩盖究竟哪个条件制造或修复了问题。

检查点 1:IPv6 DAD 与邻居请求——重复地址检测和 SLAAC 故障排查

当“IPv6 DAD 与邻居请求——重复地址检测和 SLAAC 故障排查”存在歧义时,在匹配条件下比较一个已知正常案例和一个失败案例。标记第一处有意义的差异,而不是罗列后续全部症状。这个边界通常能形成更清晰的支持请求和更安全的下一次实验。

检查点 2:如何分析 IPv6 重复地址检测、邻居请求、邻居广告、SLAAC 故障、缺少 NA 响应、重复 IPv6 地址以及数据包捕获中无 IPv6 连接。

使用最小但具有代表性的输入验证“如何分析 IPv6 重复地址检测、邻居请求、邻居广告、SLAAC 故障、缺少 NA 响应、重复 IPv6 地址以及数据包捕获中无 IPv6 连接。”。保持无关设置不变,重复同一动作,并检查重新打开或重新连接后结果是否稳定。单张截图弱于包含输入、设置、动作、输出和时间的完整记录。

检查点 3:爸爸是做什么的

当“爸爸是做什么的”存在歧义时,在匹配条件下比较一个已知正常案例和一个失败案例。标记第一处有意义的差异,而不是罗列后续全部症状。这个边界通常能形成更清晰的支持请求和更安全的下一次实验。

检查点 4:邻居招揽和邻居广告

使用最小但具有代表性的输入验证“邻居招揽和邻居广告”。保持无关设置不变,重复同一动作,并检查重新打开或重新连接后结果是否稳定。单张截图弱于包含输入、设置、动作、输出和时间的完整记录。

检查点 5:SLAAC 和路由器通告上下文

当“SLAAC 和路由器通告上下文”存在歧义时,在匹配条件下比较一个已知正常案例和一个失败案例。标记第一处有意义的差异,而不是罗列后续全部症状。这个边界通常能形成更清晰的支持请求和更安全的下一次实验。

检查点 6:重复地址症状

使用最小但具有代表性的输入验证“重复地址症状”。保持无关设置不变,重复同一动作,并检查重新打开或重新连接后结果是否稳定。单张截图弱于包含输入、设置、动作、输出和时间的完整记录。

检查点 7:失踪的邻居广告

当“失踪的邻居广告”存在歧义时,在匹配条件下比较一个已知正常案例和一个失败案例。标记第一处有意义的差异,而不是罗列后续全部症状。这个边界通常能形成更清晰的支持请求和更安全的下一次实验。

检查点 8:捕获点和多播

使用最小但具有代表性的输入验证“捕获点和多播”。保持无关设置不变,重复同一动作,并检查重新打开或重新连接后结果是否稳定。单张截图弱于包含输入、设置、动作、输出和时间的完整记录。

检查点 9:错误的应用诊断

当“错误的应用诊断”存在歧义时,在匹配条件下比较一个已知正常案例和一个失败案例。标记第一处有意义的差异,而不是罗列后续全部症状。这个边界通常能形成更清晰的支持请求和更安全的下一次实验。

检查点 10:调试清单

使用最小但具有代表性的输入验证“调试清单”。保持无关设置不变,重复同一动作,并检查重新打开或重新连接后结果是否稳定。单张截图弱于包含输入、设置、动作、输出和时间的完整记录。

验收矩阵

检查点 需要保留的证据 通过条件
IPv6 DAD 与邻居请求——重复地址检测和 SLAAC 故障排查 初始状态、一个动作和结果状态 另一位操作者可以重复所述结果
如何分析 IPv6 重复地址检测、邻居请求、邻居广告、SLAAC 故障、缺少 NA 响应、重复 IPv6 地址以及数据包捕获中无 IPv6 连接。 初始状态、一个动作和结果状态 另一位操作者可以重复所述结果
爸爸是做什么的 初始状态、一个动作和结果状态 另一位操作者可以重复所述结果
邻居招揽和邻居广告 初始状态、一个动作和结果状态 另一位操作者可以重复所述结果
SLAAC 和路由器通告上下文 初始状态、一个动作和结果状态 另一位操作者可以重复所述结果
重复地址症状 初始状态、一个动作和结果状态 另一位操作者可以重复所述结果

失败隔离、恢复与交接

在第一个失败边界停止。保留源文件、项目、会话或抓取;破坏性编辑前先制作副本;每次实验只改变一个变量。多项修改后重跑完整流程,即使结果不同,也无法解释为什么。

要区分没有证据与证明不存在。空白界面可能来自错误输入、范围、过滤器、权限、设备、时间区间或项目状态。解释 decoder、编辑器、报告或导出之前,先证明采集或导入路径。

交接之前重新打开持久成果,检查开头、判断点和结尾。记录版本、平台、配置、预期行为、观察结果和最小复现步骤。删除或遮蔽敏感内容,并确认接收人有权接收。

问答

最快且可靠的开始方式是什么?

使用最小但有代表性的案例,写下预期结果,并且只改变一个变量。添加过滤器、效果、编辑、自动化或更大输入之前,先确认基础路径。

应该保存哪些证据?

保留输入身份、版本、平台、相关设置、准确动作、第一处意外变化和最终输出。项目、会话、报告或导出都应关闭并重新打开后再视为持久证据。

什么时候需要重复这套程序?

当应用、操作系统、driver、firmware、模型、源文件或工作流变化可能影响结果时。保留之前已经通过的案例,作为未修改的比较基线。

什么时候可以交接?

当另一位有权限的人能够识别输入、重复动作、看到相同结果、理解剩余限制,并且无需未记录的本地状态就能打开成果时。

相关指南

下面的同语言页面覆盖相邻阶段,同时不会改变本主题的规范所有页。

<!-- multilingual-blog-closeout:end -->