Co decyduje o tym, czy nazwa FQDN jest interpretowana jako IPv6 czy IPv4?

9

Po wpisaniu w pełni kwalifikowanej nazwy domeny (FQDN) na pasku adresu URL przeglądarka łączy się z tabelą mapowania (gdzie ta tabela jest przechowywana? Z usługodawcą?), Która określa miejsce przechowywania żądanego pliku.

Zależy więc od usługodawcy (który, jak zakładam, ma tabelę konwersji), czy adresy IPv6 są obsługiwane, czy nie. Czy to prawda?

Lazer
źródło

Odpowiedzi:

7

Ponieważ jest to oznaczone jako iptables, zakładam, że jest to pytanie dotyczące systemu Linux.

W Linuksie to glibc decyduje, czy program dla danej nazwy hosta najpierw wyszukuje adres IPv6 (AAAA), czy adres IPv4 (A). Program używający glibc używa funkcji getaddrinfo (). Zachowanie getaddrinfo () jest skonfigurowane w /etc/gai.conf.

W twoim systemie najprawdopodobniej wszystko w /etc/gai.conf jest skomentowane. Odkomentowanie wpisu:

etykieta :: / 0 1

dla mnie doprowadziło do aktywacji pierwszego wyszukiwania AAAA, więc adresy IPv6 najlepiej są wyszukiwane. Więc to może być to, czego chcesz.

Zaktualizuj, aby dodać : Wydaje się, że właściwym sposobem jest odkomentowanie całego bloku „label” w gai.conf z wartościami od 0 do 7:

label ::1/128       0
label ::/0          1
label 2002::/16     2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
label 2001:0::/32   7
unixtippse
źródło
4

Adresy IPv4 są mapowane na nazwę domeny przez rekord A (adres) w DNS (Domain Name System). Adresy IPv6 są mapowane przy użyciu rekordów AAAA. Wydaje się dziwne? Adresy IPv4 to 32 bity, IPv6 to 128 bity. 128/32 = 4, więc AAAA / A = 4 również. Sprytna sztuczka dokonana przez każdego, kto zaprojektował wpis IPv6 w DNS.

DNS to zhierarchizowany, rozproszony system w całym Internecie. Twoja przeglądarka wykona połączenie z biblioteką systemową, która rozpocznie łańcuch wyszukiwania. Najpierw sprawdzi swoją lokalną pamięć podręczną, zwykle przechowywaną w pamięci. Następnie szuka dysku i przegląda plik HOSTS (/ etc / hosts w większości systemów UNIXes / Linux oraz C: \ Windows \ System32 \ drivers \ etc \ HOSTS w systemie Windows). Następnie, jeśli nadal nie może znaleźć odpowiedzi, nawiązuje połączenie z przypisanym serwerem DNS, zgodnie z konfiguracją sieci.

TEN serwer DNS sprawdza swoją pamięć podręczną, która jest znacznie większa. Jeśli ma dopasowanie, zwraca odpowiedź. Jeśli nie może znaleźć odpowiedzi, odwraca się i pyta o serwer DNS wyższego poziomu obsługiwany przez dostawcę usług internetowych. Proces ten trwa aż trafisz serwery nazw korzeń, a.root-servers.netdzięki m.root-servers.net. Większość zapytań DNS jest rozwiązywana na DŁUGO, zanim dotrze tak daleko, ale czasem jedno lub dwa się tam znajdują. Ale gdy odpowiedź zostanie znaleziona, jest przekazywana z powrotem do tego łańcucha do przeglądarki.

Ale skąd Twoja przeglądarka wie, jakiego typu rekordu żądać? To zależy od ustawień systemu. Jeśli ustawisz go na stos IPv4, priorytetem będzie przeglądarka zapyta tylko o rekordy A w zapytaniach DNS. Jeśli IPv6, najpierw poprosi o rekord AAAA, a następnie wróci do rekordu A.

Istnieją również inne typy rekordów. Rekordy MX określają, gdzie znajduje się serwer pocztowy dla domeny. Rekordy NS definiują serwery nazw dla domeny. Rekordy SRV informują, gdzie znajduje się dana usługa (na przykład SSH lub Internet).

DNS to tak naprawdę dosłowna książka telefoniczna Internetu.

Kumba
źródło
2

Wyszukiwanie będzie obsługiwane przez Twój DNS (i ewentualnie plik lokalnych hostów). To, czy dana nazwa zostanie rozpoznana jako adres IPv6 lub IPv4, zależy od ustawień przeglądarki (czy obsługuje IPv6 i czy wysyła żądania AAAA IPv6, system operacyjny (czy masz między innymi stos IPv6), a także Dostawca DNS (czy obsługują żądania AAAA (IPv6), czy nie).

Problem z przeglądarką komplikuje dodatkowo fakt, że niektóre (starsze) przeglądarki nigdy nie wysyłają żądań wyszukiwania AAAA, a niektóre można skonfigurować tak, aby nie wysyłały ich (firefox ma takie ustawienie), ale większość współczesnych przeglądarek najpierw wysyła żądanie AAAA, a następnie prośba A.

Helvick
źródło
Gdzie mogę znaleźć plik mojego lokalnego hosta w systemie Windows Vista?
Lazer,
Dobra, znalazłem go tutaj: C:\Windows\System32\drivers\etc. Ale jest pusty.
Lazer,
% SYSTEMROOT% \ System32 \ drivers \ etc - ogólnie będzie to C: \ Windows \ System32 \ drivers \ etc
Helvick
2
Ogólnie jest pusty - dodaj wpisy, jeśli jest to absolutnie potrzebne, naprawdę chcesz pozostawić rozpoznawanie nazw IPv6 do DNS.
Helvick