Я запускаю сервер Windows и пытаюсь заставить его использовать статический адрес IPv6 для исходящих подключений к другим хостам IPv6 (например, Gmail). Мне это нужно, потому что Gmail требует запись ptr, и я не могу установить ее для случайных адресов.
Статический адрес настроен на хосте, но у него также есть временный адрес конфиденциальности, а также случайный адрес маршрутизатора. По умолчанию Windows использует конфиденциальный адрес; похоже, это ожидаемое поведение (и это имеет смысл для людей / пользователей, которые не установили статический адрес, но я это сделал!).
Я пробовал отключить адрес конфиденциальности с помощью:
netsh int ipv6 set privacy disabled
Это действительно избавляет от адреса конфиденциальности, но у меня все еще есть случайный адрес, назначенный маршрутизатором. Чтобы отключить это, мне сказали, что мне нужно отключить «обнаружение маршрутизатора» с помощью этой команды:
net interface ipv6 set interface 14 routerdiscovery=disabled
После этого вся связь IPv6 будет потеряна. Если я сделаю это при проверке связи с Gmail, он сообщит «Целевой хост недоступен», как только я введу команду. В статической конфигурации IPv6 я настроил шлюз по умолчанию и длину префикса, поэтому я не понимаю, почему он не может подключиться. Вероятно, это как-то связано с отсутствием ARP в IPv6 и невозможностью каким-то образом определить MAC-адрес маршрутизатора, но я не знаю, как это исправить.
Наконец я попробовал отключение аренды DHCPv6 с этими командами:
netsh interface ipv6 set interface "IDMZ Team" managedaddress=disabled
netsh interface ipv6 set interface "IDMZ Team" otherstateful=disabled
Что было бесполезно; хост продолжает получать и использовать назначенный маршрутизатором IPv6-адрес.
Маршрутизатор - это FritzBox 7340, который показывает мне все адреса IPv4 и IPv6, которые использует хост (идентифицируемый по MAC), но я не могу изменить назначенный адрес. Возможно, это можно как-то сделать через telnet-интерфейс маршрутизатора, но, опять же, я бы не знал, как это сделать, даже если так будет.
Короче говоря, мою проблему, вероятно, решило бы любое из следующих действий:
В качестве альтернативы я мог бы использовать какой-нибудь (пакетный, perl, ...) скрипт, чтобы выбросить все IPv6-адреса, кроме желаемого, но это выглядит довольно хакерским. Если это единственный способ (или менее хакерский, чем другое хакерское решение), он может быть вариантом.
Спасибо!
«Случайный адрес маршрутизатора», вероятно, является вашим адресом EUI-64, который основан на вашем MAC-адресе. Так что это, вероятно, не случайно и будет оставаться стабильным с течением времени (пока вы не смените оборудование). Сравните свой MAC-адрес со своим IPv6-адресом. Если ваш MAC-адрес 01:23:45:67:89:ab
тогда ваш IPv6-адрес будет заканчиваться на ...:0323:45ff:fe67:89ab
. Вы также можете добавить запись PTR для этого адреса.
Но я хотел бы предложить другое решение: если вы отправляете почту непосредственно на почтовый сервер получателя, значит, вы используете программное обеспечение почтового сервера. Вы должны иметь возможность привязать это серверное программное обеспечение к определенным IP-адресам. Таким образом, ваш почтовый сервер всегда будет использовать настроенный адрес при исходящих подключениях, в то время как все остальное программное обеспечение может использовать любые адреса, доступные на вашем хосте (статический, autoconf, DHCPv6, конфиденциальность и т. Д.)