Назад | Перейти на главную страницу

Что определяет, интерпретируется ли полное доменное имя как IPv6 или IPv4?

Когда я набираю полное доменное имя (FQDN) в строке URL-адреса, браузер подключается к некоторой таблице сопоставления (где эта таблица хранится? У поставщика услуг?), Которая определяет, где размещен запрошенный файл.

Таким образом, это зависит от поставщика услуг (у которого, как я предполагаю, есть таблица преобразования), поддерживаются ли IPv6-адреса или нет. Это правда?

Поскольку это тегированный iptables, я предполагаю, что это вопрос Linux.

В Linux glibc решает, будет ли программа для данного имени хоста сначала искать адрес IPv6 (AAAA) или адрес IPv4 (A). Программа, использующая glibc, использует функцию getaddrinfo (). Поведение getaddrinfo () настраивается в /etc/gai.conf.

В вашей системе, скорее всего, все в /etc/gai.conf закомментировано. Раскомментируем запись:

label :: / 0 1

Для меня это привело к активации поиска AAAA-first, поэтому предпочтительнее искать адреса IPv6. Так что это может быть то, что вы хотите.

Обновите, чтобы добавить: Правильный способ - раскомментировать весь блок "label" в gai.conf значениями от 0 до 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

Адреса IPv4 сопоставляются с доменным именем записью A (адрес) в DNS (системе доменных имен). Адреса IPv6 отображаются с использованием записей AAAA. Странно? Адреса IPv4 32-битные, IPv6 128-битные. 128/32 = 4, значит, AAAA / A = 4 тоже. Умный трюк от того, кто разработал запись IPv6 в DNS.

DNS - это иерархическая распределенная система по всему Интернету. Ваш браузер вызовет системную библиотеку, которая запускает цепочку поиска. Сначала он проверит свой локальный кеш, обычно хранящийся в памяти. Затем он ищет диск и просматривает файл HOSTS (/ etc / hosts в большинстве UNIX / Linux и C: \ Windows \ System32 \ drivers \ etc \ HOSTS в Windows). Затем, если он все еще не может найти ответ, он обращается к назначенному вами DNS-серверу в соответствии с вашей сетевой конфигурацией.

ТО DNS сервер проверяет свой кеш, который намного больше. Если есть совпадение, он возвращает ответ. Если он не может найти ответ, он оборачивается и запрашивает DNS-сервер еще более высокого уровня, которым управляет интернет-провайдер. Этот процесс продолжается до тех пор, пока вы не попадете на корневые серверы имен, a.root-servers.net через m.root-servers.net. Большинство DNS-запросов решаются ДОЛГОСРОЧНО, прежде чем они зайдут так далеко, но иногда один или два остаются. Но когда ответ найден, он передается обратно по этой цепочке в ваш браузер.

Но как ваш браузер узнает который тип записи запросить? Это зависит от настроек вашей системы. Если вы установили для него приоритет стека IPv4, то ваш браузер будет запрашивать только записи A в своих DNS-запросах. Если IPv6, он сначала запросит запись AAAA, а затем вернется к записи A.

Есть и другие типы записей. Записи MX определяют, где находится почтовый сервер для домена. Записи NS определяют серверы имен для домена. Записи SRV сообщают вам, где находится конкретная служба (например, SSH или Интернет).

DNS действительно является буквальной телефонной книгой Интернета.

Поиск будет обрабатываться вашим DNS (и, возможно, вашим локальным файлом хостов). Будет ли конкретное имя разрешено как IPv6 или IPv4-адрес, зависит от настроек вашего браузера (поддерживает ли он IPv6 и отправляет ли он запросы AAAA IPv6, вашей операционной системы (есть ли у вас даже стек IPv6, среди прочего) и вашего Провайдер DNS (поддерживают ли они запросы AAAA (IPv6) или нет).

Проблема с браузером еще больше усложняется тем фактом, что некоторые (старые) браузеры никогда не выдают запросы поиска AAAA, а некоторые можно настроить так, чтобы они не отправлялись (в firefox есть настройка для этого), но большинство современных браузеров сначала отправляют запрос AAAA, а затем следуют запрос.