Наши серверы Windows регистрируют AAAA
записи IPv6 на наших DNS-серверах Windows. Однако в нашей сети не включена маршрутизация IPv6, поэтому это часто приводит к зависанию.
Microsoft RDP - худший преступник. При подключении к серверу, имеющему AAAA
запись в DNS, клиент удаленного рабочего стола сначала попытается использовать IPv6 и не будет использовать IPv4 до истечения времени ожидания подключения. Опытные пользователи могут обойти это, подключившись к IP-адресу напрямую. Разрешение IPv4-адреса ping -4 hostname.foo
всегда работает мгновенно.
Что я могу сделать, чтобы избежать этой задержки?
- Отключить IPv6 на клиенте?
- Нет, Microsoft говорит, что IPv6 является обязательной частью операционной системы Windows.
- Слишком много клиентов, чтобы гарантировать, что это установлено везде последовательно.
- Позже будет больше проблем, когда мы, наконец, внедрим IPv6.
- Отключить IPv6 на сервере?
- Нет, Microsoft говорит, что IPv6 является обязательной частью операционной системы Windows.
- Требуется неудобный взлом реестра, чтобы отключить весь стек IPv6.
- Гарантировать, что это правильно установлено на всех серверах, неудобно.
- Позже будет больше проблем, когда мы, наконец, внедрим IPv6.
- Маска записей IPv6 на рекурсоре DNS для пользователя?
- Нет, мы используем NLNet Unbound, и он не поддерживает это .
- Предотвратить регистрацию записей IPv6 AAAA на DNS-сервере Microsoft?
- Я не думаю, что это даже возможно.
На данный момент я рассматриваю возможность написания сценария, который удаляет все записи AAAA из наших зон DNS. Пожалуйста, помогите мне найти лучший способ.
ОБНОВЛЕНИЕ: разрешение DNS не проблема. Как указывает @joeqwerty в своем ответе, записи DNS возвращаются мгновенно. Оба A
и AAAA
записи сразу доступны. Проблема в том, что некоторые клиенты ( mstsc.exe
) будут пытаться подключиться через IPv6, и потребуется некоторое время для возврата к IPv4.
Это похоже на проблему маршрутизации. Команда ping
выдает сообщение об ошибке «Общий сбой», поскольку адрес назначения не маршрутизируется.
C:\Windows\system32>ping myhost.mydomain
Pinging myhost.mydomain [2002:1234:1234::1234:1234] with 32 bytes of data:
General failure.
General failure.
General failure.
General failure.
Ping statistics for 2002:1234:1234::1234:1234:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Я не могу получить захват пакета этого поведения. Выполнение этой (сбойной) команды ping не создает пакетов в Microsoft Network Monitor. Точно так же попытка соединения с mstsc.exe
узлом с AAAA
записью не приводит к трафику, пока не произойдет откат к IPv4.
ОБНОВЛЕНИЕ: Все наши хосты используют общедоступные адреса IPv4. Я думаю, что эта проблема может сводиться к сломанной конфигурации 6to4. 6to4 ведет себя по-разному на хостах с публичными IP-адресами и адресами RFC1918.
ОБНОВЛЕНИЕ: В моей сети есть что-то подозрительное с 6to4. Когда я отключаю 6to4 на клиенте Windows, соединения разрешаются мгновенно.
netsh int ipv6 6to4 set state disabled
Но, как говорит @joeqwerty, это только маскирует проблему. Я все еще пытаюсь выяснить, почему связь IPv6 в нашей сети полностью не работает.