Що таке "рекурсивний запит DNS"? [зачинено]


15

Чи може хтось коротко пояснити, що означає "рекурсивний запит DNS" і як це можна вважати поганим ?


Я знав, хто це написав саме з назви. Я не знаю, чому ви продовжуєте публікувати тут дані про DNS, але це взагалі не конкретно для Unix / Linux. Особисто я вважаю, що це пристойне питання, але це не на тему, і я не думаю, що у нас є інший сайт у мережі, який цього хоче
Майкл Мрозек

Це справді офтопік? Враховуючи, ймовірно, 90% серверів DNS у світі працює на unix / linux? Можливо, питання могло бути перероблене: "Як я можу налаштувати свій DNS-сервер, щоб відповідати на рекурсивні запити, і чому я повинен уникати цього?" але це справді "офтопік"? Просто цікаво.
габе.

Можливо, це можна вважати кращим вмістом на security.stackexchange.com, але я не бачу жодної реальної причини відкинути його тут прямо ...
Шадур

Відповіді:


25

TL; DR : Рекурсивні запити є частиною способу роботи Інтернету та DNS, але не всі сервери DNS повинні отримувати рекурсивні запити, і коли ті, які не повинні відповідати, відповідають, у вас можуть виникнути проблеми.

Більш дрібна версія:

Рекурсія, n: Див. Під рекурсією.

Рекурсивний запит DNS трапляється, коли сервер DNS, на який ви запитали адресу, скажімо, unix.stackexchange.com, не знає самої відповіді, тому його потрібно перевірити на іншому сервері.

Зазвичай таким чином працює DNS - сервер DNS вашого провайдера не має всіх записів домену в Інтернеті назавжди запам'ятовуваних із зрозумілих причин, тому наступний обмін відбувається під капотом:

  1. Ви: Гей, браузер, покажи мені http://unix.stackexchange.com

  2. Веб-переглядач: Звичайно, річ! ... Гм. Я насправді не знаю, що таке IP-адреса.

    Привіт, ОС, ви можете мені сказати, де знайти unix.stackexchange.com?

  3. ОС: Впевнені речі ...

    Хм. Це не в моєму власному файлі хостів. Перевірте конфігурацію моєї роздільної здатності ...

    Привіт, сервер DNS провайдера, ви можете мені сказати, де знайти unix.stackexchange.com?

  4. DNS-сервер провайдера: звичайно!

    ... Гммм. Цього немає в моєму списку авторитетних доменів, і зараз у мене немає такої відповіді.

    Привіт, Інтернет-кореневі сервери, чи можете ви сказати мені, хто є авторитетним для stackexchange.com?

  5. Інтернет-кореневі сервери: звичайно! Згідно з нашими записами, ви хочете ns1.serverfault.com, ns2.serverfault.com або ns3.serverfault.com.

  6. DNS-сервер провайдера: Дякую, Інтернет-кореневі сервери!

    Привіт, ns2.serverfault.com, ви можете мені сказати, де знайти unix.stackexchange.com?

  7. ns2.serverfault.com : Безперечно! Це адреса 64.34.119.12

  8. DNS-сервер провайдера : Чудово, дякую!

    ОС, число, яке ви шукаєте - 64.34.119.12.

  9. ОС: Чудово, дякую!

    Браузер, вам потрібна адреса 64.34.119.12

  10. Веб-переглядач: Чудово, дякую!

    Гаразд, зателефонувавши на сторінку зараз.

  11. Ви: Так , дякую Браузер!

Тепер майте на увазі, що тут фактично запитуються два типи серверів імен - авторитетні DNS-сервери (так звані "кореневі" сервери, які повідомили DNS-сервер вашого провайдера, де знайти DNS-сервер SE.com і авторитетний DNS-сервер SE.com ) та повторювані або переадресовані DNS-сервери (DNS-сервер вашого провайдера).

Зазвичай колишній тип не повинен відповідати на рекурсивні запити, особливо не за межами власного домену. Менші провайдери іноді економлять на витратах, якщо їх основний авторитетний сервер імен є тим же сервером, що і їх основний сервер переадресації імен, але це дещо небезпечна політика, особливо якщо ви не налаштовуєте свій сервер на відмову від рекурсивних запитів за межами власного діапазону IP.

Подальше читання тут у Вікіпедії .


Наскільки я знаю, Root-сервери повинні спрямовувати вас до .comсерверів, а звідти рекурсивний сервер провайдера вказував би на сервер SE.com.
Ханан Н.

Так, але я подумав, що я буду принаймні / дещо / спрощений, але зрозумілий.
Шадур

Я думаю, що ти забув крок 12: Майкл Мрозек: "Гей, ЛенсБейнес, я знав, хто написав це саме з назви ..."
Алоїз Магдал

Відмінник! відповідь було підкреслено1
Валентин Байрамі

5

Якщо є 2 сервери DNS, DNS-A є повноваженням для домену-a, а DNS-B - повноваженням для домену-b, а хтось надсилає запит DNS до DNS-A для пошуку домену-b. DNS-A буде повторюватися, надсилаючи запит до DNS-B, щоб знайти домен-b. По суті, рекурсивний запит - це коли DNS-сервер від імені клієнта, який надіслав запит, переслідує слід DNS для виконання запиту.

Це добре, якщо ви розміщуєте сервер DNS для такої мережі, як офіс, і всі машини в цьому офісі використовуватимуть DNS-сервер для всіх пошукових запитів. Це погано, якщо ви дозволяєте будь-кому робити рекурсивні запити DNS. Це також погано, якщо ви розміщуєте сервер DNS, який повинен виконувати лише запити певного домену. Якщо хтось запитує пошук для іншого домену, DNS-сервер повинен повернути помилку, а не робити рекурсію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.