↓ До тексту

Dns

PowerDNS: health-check прямо в DNS - LUA-записи

A-запис зазвичай повертає фіксований IP, тож коли бекенд падає, DNS далі шле на нього трафік. PowerDNS уміє health-check прямо в DNS - через LUA-записи: ifurlup опитує вебсервери по HTTP і залишає в відповіді лише живі. Ставимо це на www, гасимо один бекенд і дивимось, як він зникає з відповіді за кілька секунд - причому і майстер, і репліка перевіряють самостійно. А відповідь ще й підписана DNSSEC. Частина серії про відмовостійкий authoritative DNS.

PowerDNS-Admin проти Poweradmin: дві веб-панелі, дві філософії

PowerDNS-Admin і Poweradmin - дві веб-панелі для PowerDNS зі схожими назвами, але протилежною архітектурою: перша керує через REST API (слабка звʼязність, Docker/Python), друга пише прямо в базу (тісна звʼязність, PHP/LAMP). Ставимо обидві проти одного стенду й порівнюємо наживо: підключення, вигляд, керування записами, DNSSEC, функції. І розбираємо, кому що підходить.

PowerDNS: DNSSEC за одну команду

DNSSEC підтверджує, що відповідь DNS справжня, а не підмінена. У PowerDNS увімкнути його - одна команда: secure-zone генерує ключ і сервер підписує відповіді онлайн. Ключі лежать у MariaDB, тож їдуть реплікацією - репліка віддає зону підписаною сама. Показуємо RRSIG, DS для реєстратора і перевіряємо на обох нодах. Частина серії про відмовостійкий authoritative DNS.

dnsdist: захист від флуду TCP-зʼєднань

·5 хвилин
У частині 4 ми різали UDP-флуд запитами. Але атака буває по TCP-зʼєднаннях: мало запитів, багато конектів - і TCP-потоки сервера забиті. Ставимо в dnsdist ліміти зʼєднань: скільки одночасних з одного IP, скільки запитів на конект, скільки конект живе. Наживо відкриваємо 60 зʼєднань з однієї машини й бачимо, як їх ріже до 5, а чесний клієнт не помічає.

dnsdist проти флуду: rate-limit і динамічні блоки

Резолвери заливають authoritative-сервер запитами, і pdns захлинається. Ставимо захист у dnsdist: ліміт на IP з форсуванням TCP проти спуфленого UDP і динамічні блоки, що тимчасово банять абʼюзера. Заливаємо сервер наживо з сусідньої машини - потік падає з 800 до ~100 запитів/с, а чесний клієнт не помічає. Частина серії про відмовостійкий authoritative DNS.

dnsdist: балансування і failover для PowerDNS

·6 хвилин
dnsdist перед кожним pdns: балансування на локальний бекенд, резервний сусід по приватній мережі, health-check і автоматичне виведення хворої ноди. Вимикаємо pdns наживо - запити далі резолвляться через сусіда. Плюс кеш пакетів. Двопанельний запис. Третя частина серії про відмовостійкий authoritative DNS.

PowerDNS: реплікація MariaDB між двома DNS-серверами

·6 хвилин
Другий DNS-сервер на репліці MariaDB: master-slave з GTID по окремій приватній мережі, pdns на репліці read-only. Зміна через API на майстрі миттєво на репліці. Живий двопанельний запис. Друга частина серії про відмовостійкий authoritative DNS.

PowerDNS: свій авторитативний DNS на MariaDB з REST API

·6 хвилин
Свій DNS-сервер на PowerDNS 5.1 з бекендом MariaDB і REST API: офіційне репо (не застарілий 4.9), схема gmysql, перша зона й керування записами через API. Живий запис з усіма конфігами у vim. Перша частина серії про відмовостійкий authoritative DNS.