Разрешение DNS при отсутствии A-записи

474
Hubert Schölnast

Существуют домены, которые зарегистрированы в DNS только с помощью SOA-записи, но без какой-либо A-записи (или любых других записей):

> dig wien.eu  ; <<>> DiG 9.9.7-P3 <<>> wien.eu ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51354 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;wien.eu. IN A  ;; AUTHORITY SECTION: wien.eu. 1922 IN SOA dns1.magwien.gv.at. hostmaster.magwien.gv.at. 2013082700 10800 3600 604800 86400  ;; Query time: 134 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Sat Dec 02 19:45:19 CET 2017 ;; MSG SIZE rcvd: 101 

То, что выглядит как запись A, это просто комментарий (начинается с точки с запятой). Даже если это не комментарий, он будет искажен (то есть не будет записью A), поскольку не содержит IP-адреса.

Большинство команд, которые обычно разрешают доменные имена (например, ping, telnet и другие) с использованием DNS, не будут работать, если не будет ничего, кроме записи SOA (и множества комментариев и пустых строк).

Также многие веб-браузеры не могут открыть веб-сайт на таком домене, предназначенном только для SOA, как http://wien.eu, среди них:

  • Гугл Хром
  • опера
  • Tor Browser

Но есть браузеры, которые откроют сайт, если вы введете такое доменное имя:

  • Сафари
  • Fire Fox

Я не смог протестировать Internet Explorer, потому что я использую Mac OS, и он там недоступен.
В случае данного примера они перенаправляют на другой URL-адрес (который, между прочим, выглядит значимым способом разрешения данного URL-адреса, что заставляет меня считать желаемое поведение).

Интересно, что делают Safari и Firefox, чтобы совершить это чудо, чего не могут сделать другие браузеры и инструменты.

Кстати, я подумал, что знаю, как работает DNS, и подумал, что это будет означать, что домены, предназначенные только для SOA, такие как wien.eu, не могут быть преобразованы в IP-адрес. Но Safari и Firefox доказывают обратное.

Приложение в ответ на ответ.

Все 5 браузеров, использованных в моем тесте, являются новейшими версиями, и все они работают на одном компьютере (iMac с Mac OS X 10.13 High Sierra). Таким образом, все они используют одну и ту же операционную систему, и они также используют один и тот же DNS-сервер.

И нет никакой AAAA-записи в файле зоны (как вы можете видеть в приведенном выше выводе dig ).

И если вы не можете в это поверить: попробуйте. Используйте любой инструмент, который вы хотите проверить настройки DNS wien.eu и попробуйте открыть его в двух разных браузерах, которые принадлежат к каждой из обеих групп, перечисленных выше.

1
Я просто попытался открыть его в Safari (Версия 11.0.1 (13604.3.5)) в macOS 10.13 (High Sierra) и не смог. Я попытался загрузить его в Firefox (версия 57) на том же Mac, и он перенаправил на https: // www.wien.gv.at / `. Похоже, плохо управляемая запись DNS. JakeGould 6 лет назад 0
@JakeGould: Можете ли вы объяснить более подробно, что вы имеете в виду под «плохо управляемой записью DNS»? Почему это плохо? Еще более важно: почему это работает в некоторых браузерах? Hubert Schölnast 6 лет назад 0
Это очень плохо настроенная запись DNS. Это плохо настроено, потому что нет записи. Почему это работает произвольно в зависимости от того, что может вернуть DNS-преобразователь. Так что это похоже на азартные игры, чтобы заставить это работать. Как я уже говорил, это не сработало в Safari для меня. Так что это запись DNS, которая была введена неправильно или некомпетентно. Вот и все. JakeGould 6 лет назад 0
@JakeGould: хорошо. Когда я увидел эти записи DNS, я подумал: «Это никогда не может разрешиться ни на один IP-адрес, возможно, это было сделано только для того, чтобы зарезервировать этот домен для будущего использования». Но он разрешается в некоторых браузерах и затем (после разрешения) перенаправляет на `https: // www.wien.gv.at /`. Я понимаю перенаправление, но я не понимаю, как в этом случае работает разрешение доменного имени. Hubert Schölnast 6 лет назад 0
Чтобы тот, кто отрицательно проголосовал за мой вопрос: почему вы думаете, что это плохой вопрос? Hubert Schölnast 6 лет назад 0
Я был внизу избирателя. Мне искренне было не ясно, какова была ваша цель в публикации этого вопроса. Теперь, когда вы решили сами, все становится совершенно ясно. Это по-прежнему - в конечном итоге - проблема плохо настроенной / хотя и недосказанной DNS-записи, но ваше объяснение действительно проливает свет на то, почему вещи, которые не должны работать внезапно, работают в этом веке веб-браузеров, заполняя пробелами для вас. JakeGould 6 лет назад 1

2 ответа на вопрос

1
davidgo

Я не верю, что другие браузеры смогут разрешить домен (если нет записей CNAME или AAAA, которые помогают DNS определить, куда идти дальше, и должны одинаково распознаваться любым браузером).

Некоторые возможные объяснения увиденного поведения -

  • Кэшированные результаты используются как запасной вариант, но доступны не во всех браузерах.
  • Различные серверы имен выбираются с различной информацией о файле зоны (возможно, разделение DNS или кэширование DNS)

  • Размещает записи файлов на некоторых компьютерах, но не на других, или поисковый домен, который может изменять резервные записи DNS.

  • Используйте, если кеширующий прокси - возможно, прозрачный прокси уровня ISP.

  • Немного, если предположение, но если есть записи AAAA, могут быть ограничения браузера и / или ОС, обрабатывающие ресурс IPV6.

Важно, чтобы веб-браузеры сами не выполняли DNS-разрешение, скорее, они совершали IS-вызов и позволяли IS обрабатывать его. AFAIK это правда, если все браузеры.

Обновленный ответ, специфичный для этого сервера, и в свете дополнительной информации

Одно из возможных объяснений в моем предыдущем ответе «Разные серверы имен выбираются с разной информацией о файле зоны (возможно, разделенное DNS или DNS-кэширование)» было правильным.

Выполнение одного и того же запроса дважды к одному и тому же авторизованному серверу имен привело к следующим результатам:

davidgo @ davidgo-Precision-T1500: ~ $ dig @ dns1.wien.at wien.at

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @dns1.wien.at wien.at ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47939 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; WARNING: recursion requested but not available  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;wien.at. IN A  ;; ANSWER SECTION: wien.at. 300 IN A 217.149.229.10  ;; AUTHORITY SECTION: wien.at. 86400 IN NS ns11.govix.at. wien.at. 86400 IN NS ns5.univie.ac.at. wien.at. 86400 IN NS dns1.magwien.gv.at. wien.at. 86400 IN NS dns1.wien.at.  ;; ADDITIONAL SECTION: dns1.magwien.gv.at. 86400 IN A 217.149.228.128 dns1.wien.at. 86400 IN A 217.149.229.128  ;; Query time: 278 msec ;; SERVER: 217.149.229.128#53(217.149.229.128) ;; WHEN: Sun Dec 03 11:27:55 NZDT 2017 ;; MSG SIZE rcvd: 186  davidgo@davidgo-Precision-T1500:~$ dig @dns1.wien.at wien.eu -t any   ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @dns1.wien.at wien.eu -t any ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56418 ;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3 ;; WARNING: recursion requested but not available  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;wien.eu. IN ANY  ;; ANSWER SECTION: wien.eu. 86400 IN SOA dns1.magwien.gv.at. hostmaster.magwien.gv.at. 2013082700 10800 3600 604800 86400 wien.eu. 86400 IN NS dns1.magwien.gv.at. wien.eu. 86400 IN NS dns1.wien.at.  ;; ADDITIONAL SECTION: dns1.magwien.gv.at. 86400 IN A 217.149.228.128 dns1.wien.at. 86400 IN A 217.149.229.128  ;; Query time: 277 msec ;; SERVER: 217.149.229.128#53(217.149.229.128) ;; WHEN: Sun Dec 03 11:28:15 NZDT 2017 ;; MSG SIZE rcvd: 171 

Это определенно означает, что есть проблема с настройкой серверов имен, но может быть любое количество вещей, включая проблемы со скрытым первичным сервером имен, проблемы с реальным сервером имен, проблемы с некоторыми членами кластера DNS или комбинацией перечисленного выше., Стоит отметить, что возвращенные записи сервера имен также отличаются.

Я также считаю, что в ОС происходит некоторое кэширование на серверах имен, поскольку запрос, возвращающий результат, на самом деле возвращается в браузер довольно редко.

Также следует отметить, что ваш запрос на копирование не был выполнен для авторизированного сервера имен - и многие / большинство интернет-провайдеров используют балансированные пулы серверов имен за одним IP-адресом - каждый из которых может иметь различную информацию из-за кэширования зоны. Это очевидно, если вы выполняете запрос к (например) 8.8.8.8 - многократно гуглите «первичный» сервер имен и наблюдаете за скачком TTL, в зависимости от того, какой сервер имен вы получили. (TTL - это число между доменным именем и «IN» в записи SOA, но оно существует во всех записях. Если бы был только один сервер, это число уменьшалось бы с течением времени, пока оно не прыгнет, когда достигнет 0 и делает новый поиск.

Я бы отказался от вас, если бы у меня была достаточная репутация: все браузеры работают на одном компьютере. Это означает: все 5 браузеров используют одну и ту же ОС и, следовательно, один и тот же DNS-сервер. Ресурс wien.eu ранее не находился в кеше, и в файле зоны есть только запись SOA, и ничего больше (кроме некоторых комментариев), что также означает: нет записи AAAA. Попробуйте! копайте wien.eu и попробуйте открыть его в Firefox и Chrome. Hubert Schölnast 6 лет назад 0
Вы не должны кусать руку, которая пытается вас накормить - кажется грубым, что вы думаете, что мой ответ неверен, но вы затем модифицируете свой пост из-за недостатков, которые мой ответ проявил в вашем вопросе. Вы можете или не можете заботиться о том, что моя 20-летняя карьера включает в себя создание интернет-провайдеров и администрирование интернет-систем. Я добрался до компьютера и обновил свой пост после того, как однозначно нашел основную причину проблемы. davidgo 6 лет назад 3
Я четко обозначил свои правки как «дополнение» и «Реакция на ответ». Я не изменил ничего выше этого заголовка. Кроме того, я также зарабатываю деньги на работе с компьютерами с 1993 года, помимо прочего, мне также приходится администрировать некоторые серверы для своих клиентов с 2001 года, и теперь, в возрасте 52 лет, я даже начал снова учиться (ИТ-безопасность). И ваш ответ по-прежнему неверен, и не грубо говорить это, если это правда! Пожалуйста, внимательно прочитайте то, что я действительно написал. Я не спрашивал о ** wien.AT **. Я спросил о ** wien.EU **. ** ЕС ** как ** E ** европейский ** U ** Nion. Hubert Schölnast 6 лет назад 0
Кстати: теперь я могу доказать, что ваш ответ неверен и поэтому должен быть опущен, потому что в то же время я нашел правильный ответ: https://superuser.com/a/1273824/175792 Hubert Schölnast 6 лет назад 0
1
Hubert Schölnast

Я нашел ответ на свой вопрос, захватив IP-трафик.

В двух словах

Когда firefox не получил IP-адрес для wien.eu, он запросил (без каких-либо заказов от пользователя или кого-либо еще) www.wien.euвместо этого (он присоединял префикс www.к исходному доменному имени). Поскольку для этого другого домена существует действительная A-запись, он получил ответ (т.е. IP-адрес), отправил HTTP GETна этот сайт, получил 301 redirect, а затем загрузил перенаправленный ресурс.

Очевидно, что другие браузеры не делают этого трюка с www.


В деталях

Я использовал Kali Linux в качестве операционной системы, и там я запустил Firefox. Я использовал Wireshark для захвата трафика. Вот мои выводы в деталях:

Firefox запрашивает Aи AAAADNS-записи для wien.euи для wien.eu.localdomainи всегда получает ответ No such name. Он запрашивает шлюз по умолчанию, который, очевидно, также является DNS-сервером.

Firefox sends (time = 0.000): 1: Standard DNS-Query: wien.eu: type A, class IN 2: Standard DNS-Query: wien.eu: type AAAA, class IN  Firefox receives (time = 0.030): 3: (Response to 1): Standard DNS-Response: No such name A wien.eu 4: (Response to 2): Standard DNS-Response: No such name AAAA wien.eu  Firefox sends (time = 0.030): 5: Standard DNS-Query: wien.eu.localdomain: type A, class IN 6: Standard DNS-Query: wien.eu.localdomain: type AAAA, class IN  Firefox receives (time = 0.031): 7: (Response to 5): Standard DNS-Response: No such name A wien.eu.localdomain 8: (Response to 6): Standard DNS-Response: No such name AAAA wien.eu.localdomain 

Затем Firefox повторяет одинаковые четыре запроса и получает точно такие же ответы (сообщения с 9 по 16, время = 0,047, 0,053, 0,054, 0,054)

И снова (сообщения с 17 по 24, время = от 0,057 до 0,083)

И снова (сообщения от 25 до 32, время от 0,083 до 0,095)

В раунде № 5 Firefox добавляет префикс www.к имени домена, и теперь он получает полезные ответы:

Firefox sends (time = 0.113): 33: Standard DNS-Query: www.wien.eu: type A, class IN 34: Standard DNS-Query: www.wien.eu: type AAAA, class IN  Firefox receives (time = 0.140): 35: (Response to 33): Standard DNS-Response:  Answers: www.wien.eu: type CNAME, class IN, cname redirector.magwien.gv.at redirector.magwien.gv.at: type A class IN, addr 217.149.229.45 Authorative nameservers magwien.gv.at: type NS, class IN, ns ns11.govix.at. magwien.gv.at: type NS, class IN, ns dns1.magwien.gv.at. magwien.gv.at: type NS, class IN, ns ns5.univie.ac.at. magwien.gv.at: type NS, class IN, ns dns1.wien.at. Additional records ns11.govix.at: type A, class IN, addr 192.76.243.11 ns11.govix.at: type AAAA, class IN, addr 2001:67c:133c::11 dns1.wien.at: type A, class IN, addr 217.149.229.128 dns1.magwien.gv.at: type A, class IN, addr 217.149.228.128 ns5.univie.ac.at: type A, class IN, addr 193.171.255.77 ns5.univie.ac.at: type AAAA, class IN, addr 2001:628:453:4305::53  36: (Response to 34): Standard DNS-Response: Answers: www.wien.eu: type CNAME, class IN, cname redirector.magwien.gv.at Authorative nameservers magwien.gv.at: type SOA, class IN, mname dns1.magwien.gv.at. 

Поскольку теперь Firefox имеет IP-адрес, он создает TCP-соединение с этим адресом (TCP-рукопожатие, сообщения # 37-39). Затем в сообщении № 40 он отправляет HTTP-запрос GET в этот пункт назначения:

GET / HTTP1.1 Host: www.wien.eu (and some additional HTTP headers) 

Сервер подтверждает этот запрос (сообщение № 41) и затем отправляет этот ответ в сообщении № 42:

301 Moved Permanently Location: https://www.wien.gv.at/ 

В остальном понятно

  • Firefox отправляет TCP-подтверждение (сообщение № 43)
  • Firefox запрашивает разрешение DNS для www.wien.gv.at(A и AAAA, сообщения № 44 и № 45)
  • Firefox получает ответы (сообщения № 46 и № 47)
  • Затем Firefox запускает сложное диалоговое окно HTTPS, чтобы загрузить HTML-страницу, которую он затем отображает.