Я запускаю домашнюю сеть через 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 в моей локальной сети?