Чи може хтось коротко пояснити, що означає "рекурсивний запит DNS" і як це можна вважати поганим ?
Чи може хтось коротко пояснити, що означає "рекурсивний запит DNS" і як це можна вважати поганим ?
Відповіді:
TL; DR : Рекурсивні запити є частиною способу роботи Інтернету та DNS, але не всі сервери DNS повинні отримувати рекурсивні запити, і коли ті, які не повинні відповідати, відповідають, у вас можуть виникнути проблеми.
Більш дрібна версія:
Рекурсія, n: Див. Під рекурсією.
Рекурсивний запит DNS трапляється, коли сервер DNS, на який ви запитали адресу, скажімо, unix.stackexchange.com, не знає самої відповіді, тому його потрібно перевірити на іншому сервері.
Зазвичай таким чином працює DNS - сервер DNS вашого провайдера не має всіх записів домену в Інтернеті назавжди запам'ятовуваних із зрозумілих причин, тому наступний обмін відбувається під капотом:
Ви: Гей, браузер, покажи мені http://unix.stackexchange.com
Веб-переглядач: Звичайно, річ! ... Гм. Я насправді не знаю, що таке IP-адреса.
Привіт, ОС, ви можете мені сказати, де знайти unix.stackexchange.com?
ОС: Впевнені речі ...
Хм. Це не в моєму власному файлі хостів. Перевірте конфігурацію моєї роздільної здатності ...
Привіт, сервер DNS провайдера, ви можете мені сказати, де знайти unix.stackexchange.com?
DNS-сервер провайдера: звичайно!
... Гммм. Цього немає в моєму списку авторитетних доменів, і зараз у мене немає такої відповіді.
Привіт, Інтернет-кореневі сервери, чи можете ви сказати мені, хто є авторитетним для stackexchange.com?
Інтернет-кореневі сервери: звичайно! Згідно з нашими записами, ви хочете ns1.serverfault.com, ns2.serverfault.com або ns3.serverfault.com.
DNS-сервер провайдера: Дякую, Інтернет-кореневі сервери!
Привіт, ns2.serverfault.com, ви можете мені сказати, де знайти unix.stackexchange.com?
ns2.serverfault.com : Безперечно! Це адреса 64.34.119.12
DNS-сервер провайдера : Чудово, дякую!
ОС, число, яке ви шукаєте - 64.34.119.12.
ОС: Чудово, дякую!
Браузер, вам потрібна адреса 64.34.119.12
Веб-переглядач: Чудово, дякую!
Гаразд, зателефонувавши на сторінку зараз.
Ви: Так , дякую Браузер!
Тепер майте на увазі, що тут фактично запитуються два типи серверів імен - авторитетні DNS-сервери (так звані "кореневі" сервери, які повідомили DNS-сервер вашого провайдера, де знайти DNS-сервер SE.com і авторитетний DNS-сервер SE.com ) та повторювані або переадресовані DNS-сервери (DNS-сервер вашого провайдера).
Зазвичай колишній тип не повинен відповідати на рекурсивні запити, особливо не за межами власного домену. Менші провайдери іноді економлять на витратах, якщо їх основний авторитетний сервер імен є тим же сервером, що і їх основний сервер переадресації імен, але це дещо небезпечна політика, особливо якщо ви не налаштовуєте свій сервер на відмову від рекурсивних запитів за межами власного діапазону IP.
Подальше читання тут у Вікіпедії .
.com
серверів, а звідти рекурсивний сервер провайдера вказував би на сервер SE.com.
Якщо є 2 сервери DNS, DNS-A є повноваженням для домену-a, а DNS-B - повноваженням для домену-b, а хтось надсилає запит DNS до DNS-A для пошуку домену-b. DNS-A буде повторюватися, надсилаючи запит до DNS-B, щоб знайти домен-b. По суті, рекурсивний запит - це коли DNS-сервер від імені клієнта, який надіслав запит, переслідує слід DNS для виконання запиту.
Це добре, якщо ви розміщуєте сервер DNS для такої мережі, як офіс, і всі машини в цьому офісі використовуватимуть DNS-сервер для всіх пошукових запитів. Це погано, якщо ви дозволяєте будь-кому робити рекурсивні запити DNS. Це також погано, якщо ви розміщуєте сервер DNS, який повинен виконувати лише запити певного домену. Якщо хтось запитує пошук для іншого домену, DNS-сервер повинен повернути помилку, а не робити рекурсію.