我透過 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
從上面可以看出,地址快取似乎在不到一分鐘內就過期了,從 Reachable 狀態轉變為 Stale、Delay 和 Probe 狀態。而 AndroidAP 本身的 MAC 位址的大多數 IPv6 位址(總共大約有十幾個)(不知道為什麼需要這麼多)似乎具有長達 24 小時左右的過期時間。
發生了什麼事?