Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

04.05.2023

DNS сервер Knot

#Cloudflare

Раптом після вчорашнього посту знайшовся ще один локальний рекурентний DNS сервер - Knot Resolver. Чим він гарний — це той самий сервер, який використовує Cloudflare для свого відкритого DNS 1.1.1.1. Це цікаво, бо самі автори Knot не гарантують його підтримку “в продакшні”, а тільки для простих споживацьких потреб. Втім, як бачиш, для Cloudflare його функціоналу вистачає (хоча Cloudflare додали власний кеш та ще дещо; кеш Knot не масштабується та обмежений однією машиною.)

Рекомендація від Cloudflare багато значить саме тому, що такий сервер буде давати результати, схожі на їхні. А значить, можна очікувати, що не буде незрозумілої клієнтам розбіжності, яку створював unbound. Взагалі це найбільший ризик з локальними DNS серверами — що невідомо, як вони себе поведуть в складній ситуації.

Щодо технічних деталей, то Knot Resolver встановлюється хоч на Linux, хоч на macOS, хоч в Docker; цікаво він конфігурується — файл конфігурації є скриптом на Lua. Можна кешувати запити, можна навпаки, кеш вимкнути. Можна використати в інтерактивному режимі, на кшталт dig.

Найбільші граблі, на які я наступив, поки налаштовував — це те, що DNS працює за протоколом UDP, та порти для нього треба відкривати окремо. Наприклад, в Docker: docker -p 35353:53/udp. Причому — підтримка TCP теж є — але як резервний варіант. Тому без відкритого UDP ваш DNS сервер працювати буде, тільки не з кожним клієнтом, та майже напевно з затримками. Піди та здогадайся, чому.

🇨🇿 До речі, Knot - продукт чеського доменного реєстратора CZ.NIC; на їхньому акаунті в GitHub можна знайти ще багато цікавого.