我通过 AndroidAP 运行家庭网络,由 Android 7.1.1 提供支持,它支持原生 IPv6,并且似乎从上游提供商获得了 /64 分配。
我遇到的问题是,在本地机器之间,fe80::
地址似乎经常无法访问(并且我不想使用公共可路由的地址,因为前缀会随着接入点每次重新启动而发生变化)。
例如,在 Windows 7 和 OS X 10.9 之间打开 ssh 连接,最初会导致网络错误,只有在第二次尝试时才成功。随后,现有连接同样经常中断。与公共互联网的连接从未出现这些问题(感谢上帝没有 NAT)。
我尝试通过运行进行故障排除ndp -an
在 OS X 上陷入循环,似乎地址过期策略可能是罪魁祸首(但据我所知,所有设置都是默认设置)。
% ndp -an | head -1 ; sh -c "while (true); do ndp -an | fgrep 8c:7 | sed -E 's#(::518)[0-9a-f:]+#\1...#g;s#(8c:7)[0-9a-f:]+#\1...#g'; sleep 1; done"
Neighbor Linklayer Address Netif Expire St Flgs Prbs
fe80::518...%en0 8c:7... en0 6s R
fe80::518...%en0 8c:7... en0 5s R
fe80::518...%en0 8c:7... en0 4s R
fe80::518...%en0 8c:7... en0 3s R
fe80::518...%en0 8c:7... en0 2s R
fe80::518...%en0 8c:7... en0 1s R
fe80::518...%en0 8c:7... en0 1d0h0m0s S
fe80::518...%en0 8c:7... en0 4s D
fe80::518...%en0 8c:7... en0 3s D
fe80::518...%en0 8c:7... en0 2s D
fe80::518...%en0 8c:7... en0 1s D
fe80::518...%en0 8c:7... en0 32s R
fe80::518...%en0 8c:7... en0 31s R
fe80::518...%en0 8c:7... en0 30s R
...
fe80::518...%en0 8c:7... en0 10s R
fe80::518...%en0 8c:7... en0 9s R
fe80::518...%en0 8c:7... en0 8s R
fe80::518...%en0 8c:7... en0 7s R
fe80::518...%en0 8c:7... en0 6s R
fe80::518...%en0 8c:7... en0 5s R
fe80::518...%en0 8c:7... en0 4s R
fe80::518...%en0 8c:7... en0 3s R
fe80::518...%en0 8c:7... en0 2s R
fe80::518...%en0 8c:7... en0 1s R
fe80::518...%en0 8c:7... en0 1d0h0m0s S
fe80::518...%en0 8c:7... en0 5s D
fe80::518...%en0 8c:7... en0 4s D
fe80::518...%en0 8c:7... en0 2s D
fe80::518...%en0 8c:7... en0 1s D
fe80::518...%en0 8c:7... en0 1s P 1
fe80::518...%en0 8c:7... en0 32s R
fe80::518...%en0 8c:7... en0 30s R
...
fe80::518...%en0 8c:7... en0 10s R
fe80::518...%en0 8c:7... en0 9s R
fe80::518...%en0 8c:7... en0 8s R
fe80::518...%en0 8c:7... en0 7s R
fe80::518...%en0 8c:7... en0 6s R
fe80::518...%en0 8c:7... en0 5s R
fe80::518...%en0 8c:7... en0 4s R
fe80::518...%en0 8c:7... en0 3s R
fe80::518...%en0 8c:7... en0 2s R
fe80::518...%en0 8c:7... en0 1s R
fe80::518...%en0 8c:7... en0 1d0h0m0s S
fe80::518...%en0 8c:7... en0 4s D
fe80::518...%en0 8c:7... en0 3s D
fe80::518...%en0 8c:7... en0 2s D
fe80::518...%en0 8c:7... en0 1s D
fe80::518...%en0 8c:7... en0 32s R
^C
如上所示,地址缓存似乎在不到一分钟的时间内过期,从可访问状态变为过期、延迟和探测状态。而 AndroidAP 本身的 MAC 地址的大多数 IPv6 地址(总共约十几个(不知道为什么需要这么多))的过期时间似乎最长为 24 小时。
发生了什么事?如何修复我的 LAN 上的 IPv6 连接?