Skąd aplikacje klienckie wiedzą, jak korzystać z IPv4 lub IPv6?

18

Skąd serwery / komputery / użytkownicy / aplikacje wiedzą, aby zażądać zasobu przez Internet z adresem IPv6 vs. i adresem IPv4?

Bobby S.
źródło

Odpowiedzi:

24

Pierwszą rzeczą, którą określa klient, są dostępne protokoły. Załóżmy, że zarówno IPv4, jak i IPv6 są dostępne (w przeciwnym razie odpowiedź na wybór protokołu jest trywialna;) Następnie przeszuka DNS zarówno dla rekordów A (adres IPv4), jak i AAAA (adres IPv6). Jeśli zostanie zwrócony tylko jeden typ, użyje go. Jeśli zwracane są zarówno adresy IPv4, jak i IPv6, zachowanie domyślne zależy nieco od oprogramowania klienta. Zwykle stosuje się RFC 3484 .

Zgodnie z oficjalnymi standardami powinien preferować IPv6, ale ponieważ niektóre (0,01% lub mniej) maszyny mają źle skonfigurowaną IPv6, klienci stali się mądrzejsi. Większość przeglądarek w tych dniach będzie próbowała połączyć się przez IPv6, ale jeśli nie uzyskają działającego połączenia w ciągu 300 milisekund, spróbują połączyć się równolegle przez IPv4. Następnie używane jest pierwsze połączenie, które się powiedzie. Jest to opisane w dokumencie Happy Eyeballs RFC .

Apple zmieniło to w Lion. Tam system operacyjny faktycznie śledzi wydajność wszystkich połączeń, a jeśli stwierdzi, że połączenie IPv4 ma mniejsze opóźnienie niż połączenie IPv6, zacznie preferować IPv4. Ale jeśli połączenie IPv4 stanie się wolniejsze, może wrócić do IPv6. Spójrz na ten wątek listy dyskusyjnej, aby omówić tę funkcję.

Dla użytkownika nie powinno mieć znaczenia, czy używany jest IPv4 czy IPv6, o ile działa. IPv4 i IPv6 powinny być dostarczane równie dobrze. Strony internetowe powinny działać dokładnie tak samo w przypadku IPv4, jak i IPv6 itp.

IPv4 pozostanie używany przez wiele lat. Stanie się bezużyteczny, gdy nowe usługi (strony internetowe, gry itp.) Zostaną wdrożone tylko przez IPv6, ponieważ nie będzie już nowych adresów IPv4. W pewnym momencie wszystko, co działa przez IPv4, będzie działało również przez IPv6. W tym momencie wyłączenie IPv4 pozwoli zaoszczędzić czas i pieniądze (po co utrzymywać dwa protokoły, jeśli wystarczy?).

Sander Steffann
źródło
1
Po napisaniu tego, RFC 3484 został przestarzały przez RFC 6724 .
Michael Hampton
Jak określa, które protokoły są dostępne? Widziałem losowe zachowanie, w którym apt-get updatena przykład próbuje się połączyć z hostami ipv6, ale sam host nie ma nawet adresu IPv6, oprócz adresu lokalnego dla łącza.
Halfgaar,
1
Jest to obsługiwane przez wybór adresu źródłowego i docelowego (RFC 6724). W twoim przypadku wydaje się, że host widzi rekord AAAA w DNS, wybiera ten adres docelowy, a następnie dowiaduje się, że nie ma adresu źródłowego, którego mógłby użyć z tym miejscem docelowym, a następnie wraca do IPv4.
Sander Steffann,
2

Używany obecnie etap pośredni jest nazywany tunelowaniem. Zasadniczo pakiety IPv6 podróżują wewnątrz pakietów IPv4, dopóki nie osiągną punktu, w którym można je pozbawić enkapsulacji IPv4 i wysłać drugą stronę w pełnej sieci IPv6. Oczywiście jest o wiele bardziej złożona, ale podstawowa koncepcja jest ogólnie taka sama.

W miarę jak coraz więcej urządzeń staje się zdolnych do obsługi IPv6, a ludzie coraz lepiej zapoznają się z używaniem adresów, IPv6 będzie coraz częściej używane. Nie sądzę (osobista opinia), że IPv6 naprawdę zostanie przyjęty i zobaczę wprowadzenie na dużą skalę w małych i średnich firmach i na rynku osobistym, dopóki przestrzeń IPv4 nie stanie się drogim towarem.

W pewnym momencie w dość odległej przyszłości, gdy IPv6 obsługuje przeważającą większość ruchu, widziałem odwrócenie losu dla IPv4, gdzie ruch IPv4 musi być zamknięty w zwykłych pakietach IPv6, a brokerzy tuneli pełnią podobną (ale odwróconą) rolę z powodu brak szerokiego przypisania / routingu IPv4.

Garrett
źródło
1
Nie sądzę, że to odpowiada na pytanie ... Poza tym: tunelowanie szybko znika w rdzeniu Internetu IPv6, ponieważ natywny IPv6 jest teraz dostępny wszędzie. Klienci będą mieli tunelowanie, ale nie ma to nic wspólnego z wyborem, jaki system dokonuje podczas łączenia. PS: Tunelowanie IPv4-over-IPv6 już się pojawia. Niektórzy operatorzy kablowego internetu wdrażają DS-Lite w tym roku, co właśnie to robi.
Sander Steffann
Pracuję dla dużego centrum danych i mam kontakty z całą branżą, a moje doświadczenie z IPv6 zdecydowanie nie jest teraz wszędzie . Tunelowanie istnieje, aby wypełnić lukę, a biorąc pod uwagę, że większość użytkowników końcowych nie ma jeszcze przypisań IPv6, nadal jest to istotne.
Garrett
3
Tunelowanie jest rzeczywiście w użyciu, ale należy go, tam gdzie to możliwe, unikać. Dostawcy usług internetowych, którzy jeszcze nie oferują swoim klientom przyzwoitego protokołu IPv6, nie wykonują swojej pracy ... W każdym razie: pytanie brzmiało, w jaki sposób aplikacje klienckie wybierają IPv4 i IPv6, i nie ma to nic wspólnego ze sposobem, w jaki sieć ma łączność IPv6 ponieważ jest to zadanie routera, a nie aplikacji klienckiej. Aplikacja kliencka używa tylko tego, co jest dostępne w sieci lokalnej.
Sander Steffann
Krucjata, przyjacielu.
Garrett,
-2

Myślę, że pytasz, jak aplikacja decyduje, jak wybrać. Od strony programu zależy to od implementacji aplikacji. Jeśli na przykład program kodujący nadaje IPv6 wyższy priorytet niż IPv4, najpierw spróbuje użyć getipv6addr (). Jeśli jest to nieskonfigurowane lub nie powiedzie się, spróbuje użyć getaddr () itp. Na tej podstawie aplikacja wyśle ​​najpierw żądanie przez IPv6 lub odwrotnie.

MaryOpen.cn
źródło