Nasze serwery Windows rejestrują AAAA
rekordy IPv6 na naszych serwerach DNS systemu Windows. Jednak w naszej sieci nie włączono routingu IPv6, więc często powoduje to zatrzymanie.
Microsoft RDP jest najgorszym przestępcą. Podczas łączenia się z serwerem, który ma AAAA
rekord w DNS, klient pulpitu zdalnego spróbuje najpierw IPv6 i nie spadnie do IPv4, dopóki połączenie się nie skończy. Zaawansowani użytkownicy mogą obejść ten problem, łącząc się bezpośrednio z adresem IP. Rozwiązanie adresu IPv4 z ping -4 hostname.foo
zawsze działa natychmiast.
Co mogę zrobić, aby uniknąć tego opóźnienia?
- Wyłączyć IPv6 na kliencie?
- Nie, Microsoft twierdzi, że IPv6 jest obowiązkową częścią systemu operacyjnego Windows.
- Zbyt wielu klientów, aby upewnić się, że jest to ustawione wszędzie konsekwentnie.
- Powoduje więcej problemów później, kiedy w końcu zaimplementujemy IPv6.
- Wyłączyć IPv6 na serwerze?
- Nie, Microsoft twierdzi, że IPv6 jest obowiązkową częścią systemu operacyjnego Windows.
- Wymaga niewygodnego włamania do rejestru, aby wyłączyć cały stos IPv6.
- Zapewnienie prawidłowego ustawienia na wszystkich serwerach jest niewygodne.
- Powoduje więcej problemów później, kiedy w końcu zaimplementujemy IPv6.
- Zamaskować rekordy IPv6 w rekursorze DNS obsługującym użytkownika?
- Nie, używamy NLNet Unbound i nie obsługuje tego .
- Zapobiegać rejestracji rekordów AAAA IPv6 na serwerze Microsoft DNS?
- Nie sądzę, żeby to w ogóle możliwe.
W tym momencie rozważam napisanie skryptu, który usuwa wszystkie rekordy AAAA z naszych stref DNS. Pomóż mi znaleźć lepszy sposób.
AKTUALIZACJA: Rozdzielczość DNS nie stanowi problemu. Jak wskazuje @joeqwerty w swojej odpowiedzi, rekordy DNS są zwracane natychmiast. Zarówno rekordy, jak A
i AAAA
rekordy są natychmiast dostępne. Problem polega na tym, że niektórzy klienci ( mstsc.exe
) preferencyjnie podejmą próbę nawiązania połączenia przez IPv6, a powrót do IPv4 zajmuje trochę czasu.
Wygląda to na problem z routingiem. ping
Polecenie tworzy „Błąd ogólny” komunikat o błędzie, ponieważ adres docelowy jest unroutable.
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),
Nie mogę uzyskać przechwytywania pakietów tego zachowania. Uruchomienie tego (nieudanego) polecenia ping nie powoduje wygenerowania żadnych pakietów w Microsoft Network Monitor. Podobnie próba połączenia z mstsc.exe
hostem z AAAA
rekordem nie generuje ruchu, dopóki nie nastąpi powrót do IPv4.
AKTUALIZACJA: Wszyscy nasi gospodarze używają adresów IPv4 z routingiem publicznym. Myślę, że ten problem może sprowadzić się do zepsutej konfiguracji 6to4. 6to4 zachowuje się inaczej na hostach z publicznymi adresami IP w porównaniu z adresami RFC1918.
AKTUALIZACJA: W mojej sieci jest zdecydowanie coś podejrzanego z 6to4. Kiedy wyłączam 6to4 na kliencie Windows, połączenia są rozwiązywane natychmiast.
netsh int ipv6 6to4 set state disabled
Ale jak mówi @joeqwerty, to tylko maskuje problem. Wciąż próbuję dowiedzieć się, dlaczego komunikacja IPv6 w naszej sieci całkowicie nie działa.