Când vine vorba de adblocking la nivel de rețea, Pi-hole e prima recomandare pe care o găsești peste tot. E matur, are comunitate mare, funcționează bine dar are o limitare care pentru un homelab serios devine rapid o problemă: nu poate gestiona zone DNS private.

Voiam un domeniu .local pentru homelab — să pot accesa serviciile prin nume în loc de IP-uri. proxmox.local, nas.local, vaultwarden.local. Plus forwarding condiționat și split DNS pentru ill.ro — să rezolve intern altfel decât extern. În Pi-hole n-am găsit cum să fac asta în mod curat. În Technitium DNS, toate astea sunt funcții de bază.

Ce e Technitium DNS

Technitium DNS Server e un resolver DNS open-source scris în .NET, cu interfață web completă. Gândește-te la el ca la un DNS din Windows Server — zone forward, zone reverse, forwarderi condiționali, DNSSEC, DoH, DoT — dar gratuit, pe Linux, într-un container de 512MB RAM.

Nu e un proiect obscur: are versiuni regulate, documentație bună și e recomandat frecvent în comunitatea homelab ca alternativă serioasă la Pi-hole pentru cei care au nevoie de mai mult decât adblocking simplu.

Instalare — 2 minute cu Proxmox Helper Scripts

Rulează ca LXC pe Proxmox, instalat cu Proxmox Helper Scripts:

bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/technitium-dns.sh)"

Scriptul creează un LXC Debian minimal, instalează Technitium DNS și îl pornește automat. La final îți dă IP-ul și portul interfeței web. Resursele consumate sunt neglijabile — 1 vCPU, 512MB RAM, câțiva GB disk.

După instalare, accesezi interfața la http://<ip-lxc>:5380, setezi parola de admin și ești gata. Cred ca daca nu era proxmox helper scripts nu descopeream multe proiecte misto care imi plac azi.

Adblocking — blocklist-urile folosite

Technitium are suport nativ pentru blocklist-uri în format hosts și wildcard. Configurezi din Settings → Blocking și adaugi URL-urile listelor. Eu folosesc trei:

  • Steven Black hosts — lista clasică, consolidată din mai multe surse:
    https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  • OISD Big — una din cele mai complete liste de adblocking, actualizată frecvent:
    https://big.oisd.nl/
  • Hagezi Multi — blocklist agresiv cu wildcard pentru domenii de tracking și malware:
    https://raw.githubusercontent.com/hagezi/dns-blocklists/main/wildcard/multi-onlydomains.txt

Technitium actualizează listele automat la intervalul configurat. Poți vedea câte domenii sunt blocate per listă și poți adăuga excepții (allowlist) pentru domenii blocate greșit.

Față de Pi-hole, diferența e că Technitium suportă wildcard blocking nativ — *.tracker.com blochează toate subdomeniile fără să le enumerezi individual. Hagezi Multi profită exact de asta.

Zone DNS private — domeniul .local pentru homelab

Acesta e motivul principal pentru care am ales Technitium în loc de Pi-hole. Din Zones → Add Zone, creezi o zonă autoritativă pentru orice domeniu vrei:

Am două zone private:

  • homelab.local — toate serviciile din cluster: proxmox.homelab.local, nas.homelab.local, vaultwarden.homelab.local etc.
  • O a doua zonă pentru alte resurse interne

Adaugi recorduri A, CNAME, PTR exact ca într-un DNS autoritativ clasic. Dacă adaugi un serviciu nou în homelab, adaugi un record în zonă și imediat e rezolvabil prin nume în toată rețeaua — fără să modifici fișiere /etc/hosts pe fiecare dispozitiv.

Split DNS pentru ill.ro

Split DNS înseamnă că același domeniu se rezolvă diferit în funcție de unde vine cererea. Pentru ill.ro: intern vreau să ajung la IP-ul intern al serverului, extern la IP-ul public.

În Technitium, creezi o zonă locală pentru ill.ro cu recordul A spre IP-ul intern. Cererile din rețeaua de acasă rezolvă ill.ro la IP-ul intern — traficul nu mai iese pe internet și se întoarce înapoi. Cererile de pe internet merg la DNS-ul public normal.

Pi-hole nu are această funcționalitate nativ. Technitium o rezolvă cu 3 click-uri.

Forwarderi și configurare generală

Din Settings → Forwarders, configurezi unde se duc cererile care nu sunt rezolvate local. Eu folosesc Cloudflare DoH (https://cloudflare-dns.com/dns-query) ca forwarder primar cu DNS over HTTPS — cererile DNS sunt criptate între LXC și Cloudflare.

Poți configura și forwarderi condiționali — dacă cineva întreabă de *.homelab.local, rezolvă local; altfel trimite la Cloudflare. Util dacă ai mai multe zone sau rețele.

Integrare în rețea

Pe ER605 (Omada), setezi IP-ul LXC-ului cu Technitium ca DNS server primar în DHCP settings. Toate dispozitivele din rețea primesc automat Technitium ca resolver — fără configurare manuală per dispozitiv.

Recomand să setezi un DNS secundar public (ex: 1.1.1.1) ca fallback, în caz că LXC-ul e down în timpul unui update sau restart Proxmox.

Concluzie

Dacă vrei doar adblocking simplu, Pi-hole e suficient și are o interfață mai prietenoasă pentru începători. Dacă ai nevoie de zone DNS private, split DNS, forwarderi condiționali sau orice seamănă cu un DNS server real — Technitium e alegerea corectă.

Pentru un homelab cu Proxmox, servicii multiple și un domeniu intern, Technitium face treaba unui Windows DNS Server fără licență, fără Active Directory și fără un VM de 4GB RAM. Un LXC de 512MB care rulează de luni fără să dea semne de oboseală si ai si backup, restore, te notifica cand e momentul sa faci update… very nice!

Posturi din aceeași serie: