Я управляю домашней сетью через AndroidAP на базе Android 7.1.1, которая поддерживает собственный IPv6 и, судя по всему, имеет выделение /64 от вышестоящего провайдера.
Проблема, с которой я столкнулся, заключается в том, что между локальными машинами fe80::
адреса часто оказываются недоступными (и я не хочу использовать общедоступные маршрутизируемые адреса из-за того, что префикс меняется при каждой перезагрузке точки доступа).
Например, открытие ssh-соединения между Windows 7 и OS X 10.9 изначально приводит к сетевой ошибке, которая удается только со второй попытки. Впоследствии существующие соединения также часто разрываются. Подключения к публичному интернету никогда не имеют таких проблем (слава богу, что нет 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. В то время как большинство адресов IPv6 для MAC-адреса самой AndroidAP, всего около дюжины (не знаю, зачем их так много), похоже, имеют срок действия порядка 24 часов.
Что происходит и как исправить подключение IPv6 в моей локальной сети?