為什麼我的本地 fe80:: IPv6 網路如此不可靠?

為什麼我的本地 fe80:: IPv6 網路如此不可靠?

我透過 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 小時左右的過期時間。

發生了什麼事?

相關內容