SmartDNS is an automated, enterprise-grade DNS Resolver Platform designed for ISPs, Enterprises, VPS providers, and Self-Hosted environments.
By integrating Unbound and dnsdist, SmartDNS automatically:
- Detects system hardware capabilities.
- Calculates and configures optimized kernel and daemon parameters.
- Deploys a secure, recursive DNS resolver backend.
- Sets up a high-performance frontend load balancer with advanced blocklists.
Starting from v1.0.0, SmartDNS includes automated heartbeat health monitoring and secure telemetry reporting to simplify multi-node fleet management.
This diagram illustrates how queries flow through the platform:
flowchart TD
Client["💻 Client (Query)"] --> DNSDist["⚖️ dnsdist (Frontend Load Balancer: Port 53)"]
DNSDist --> CDB{"🔍 Check Domain in CDB Blocklist"}
CDB -- "Blocked (A / AAAA)" --> Spoof["🛡️ Spoof Response (IPv4/IPv6 Spoofed IP)"] --> Client
CDB -- "Clean (Allowed)" --> Whitelist{"🔍 Check Whitelist"}
Whitelist -- "Yes" --> Unbound["⚙️ Unbound (Recursive Backend: Port 5300)"]
Whitelist -- "No" --> Unbound
Unbound --> Resolver{"🌐 Resolve recursively via DNSSEC"}
Resolver --> Root["🌍 Root/TLD/Auth Nameservers"]
Root --> Resolver
Resolver --> Unbound
Unbound --> DNSDist
DNSDist --> Client
- Zero-Touch Setup: Fully automated one-command installation.
- Hardware-Aware Tuning: Dynamically adjusts Unbound thread counts, slab allocations, TCP queues, and cache sizes based on available CPU cores and RAM.
- Unbound Recursive Backend: Secure DNSSEC validation, hardened query settings, and strict access controls.
- dnsdist Frontend Load Balancer: Blazing fast query routing, packet caching, and request distribution.
- TrustPositif Blocklist Integration: Local domain database converted into tinycdb (CDB) format for microsecond-level query filtering and custom A/AAAA spoofing.
- Resilient Environment Controls: Resolves port 53 binding conflicts on systemd-resolved systems safely.
- Resolve Host Configuration: Automatically registers
127.0.1.1 SmartDNSin/etc/hoststo ensure local hostname resolution succeeds on every boot. - Dual-Stack IPv4/IPv6: Native compatibility with modern networks.
- Interactive Customization: Fast default configuration or customizable install options (spoof IPs, ports, and passwords).
- Heartbeat Scheduler: Cron-based health check reporting status every 5 minutes.
- Autonomous Updater: Automated daily database sync for ad and malware blocklists.
- DNSDist Web UI Console: Dedicated admin monitoring dashboard.
| Component | Minimum Specification | Recommended Specification |
|---|---|---|
| CPU | 2 Cores | 4 Cores or Higher |
| RAM | 2 GB | 4 GB or Higher |
| Storage | 10 GB SSD | 15 GB SSD or Higher |
| Network | Public IPv4 | IPv4 + IPv6 Dual-Stack |
| OS | Ubuntu 22.04 LTS / Debian 12 | Ubuntu 22.04, 24.04, 26.04 / Debian 11, 12, 13 |
| Privileges | Root / sudo | Root / sudo |
git clone https://github.com/alsyundawy/SmartDNS.git
cd SmartDNS
bash install.shUpgrades are completely non-destructive and retain: UUID, configuration parameters, telemetry files, and custom scheduler tasks.
cd SmartDNS
git pull
bash install.shSmartDNS adalah Platform DNS Resolver otomatis kelas enterprise yang dirancang untuk lingkungan ISP, Enterprise, VPS, dan Self-Hosted.
Melalui integrasi Unbound dan dnsdist, SmartDNS secara otomatis:
- Mendeteksi kapasitas perangkat keras sistem secara real-time.
- Menghitung dan mengonfigurasi parameter kernel dan daemon yang optimal.
- Menyebarkan backend resolver rekursif yang tangguh dan aman.
- Memasang load balancer frontend berkinerja tinggi lengkap dengan fitur blocklist lanjutan.
Mulai dari versi v1.0.0, SmartDNS menyertakan pemantauan detak jantung (heartbeat) otomatis dan laporan telemetri yang aman guna menyederhanakan pengelolaan server multi-node.
Diagram berikut menunjukkan bagaimana kueri DNS diproses oleh platform:
flowchart TD
Client["💻 Client (Kueri)"] --> DNSDist["⚖️ dnsdist (Frontend Load Balancer: Port 53)"]
DNSDist --> CDB{"🔍 Cek Domain di Blocklist CDB"}
CDB -- "Terblokir (A / AAAA)" --> Spoof["🛡️ Spoof Respon (IP Palsu IPv4/IPv6)"] --> Client
CDB -- "Aman (Diizinkan)" --> Whitelist{"🔍 Cek Whitelist"}
Whitelist -- "Ya" --> Unbound["⚙️ Unbound (Recursive Backend: Port 5300)"]
Whitelist -- "Tidak" --> Unbound
Unbound --> Resolver{"🌐 Resolusi Rekursif via DNSSEC"}
Resolver --> Root["🌍 Root/TLD/Auth Nameservers"]
Root --> Resolver
Resolver --> Unbound
Unbound --> DNSDist
DNSDist --> Client
- Instalasi Instan: Pengaturan otomatis penuh hanya dengan satu baris perintah.
- Penyetelan Berbasis Perangkat Keras: Mengonfigurasi jumlah thread Unbound, alokasi slab cache, antrean TCP, dan memori cache berdasarkan jumlah CPU core dan kapasitas RAM.
- Backend Rekursif Unbound: Validasi DNSSEC bawaan, perlindungan pengerasan kueri, dan pembatasan akses jaringan (ACL) yang aman.
- Frontend Load Balancer dnsdist: Perutean kueri super cepat, caching paket, dan distribusi beban.
- Integrasi Blocklist TrustPositif: Database domain lokal dikonversi ke format tinycdb (CDB) untuk penyaringan super cepat dan teknik spoofing A/AAAA otomatis.
- Resolusi Konflik Port 53: Mengatasi masalah bentrok port binding dengan systemd-resolved pada OS modern secara aman.
- Konfigurasi Resolve Host: Mendaftarkan
127.0.1.1 SmartDNSke/etc/hostssecara otomatis agar hostname lokal dapat di-resolve dengan benar setiap kali sistem boot. - Dukungan Dual-Stack: Berjalan lancar di lingkungan IPv4 maupun IPv6.
- Kustomisasi Wizard: Pilihan pemasangan otomatis standar atau mode kustom (pengaturan IP spoof, port, dan kata sandi).
- Penjadwal Heartbeat: Pengiriman metrik kesehatan dan status server otomatis setiap 5 menit.
- Pembaruan Mandiri: Sinkronisasi database blocklist iklan dan malware harian melalui cron job.
- Dasbor Web UI dnsdist: Konsol manajemen web interaktif untuk memantau performa.
| Komponen | Spesifikasi Minimum | Spesifikasi Rekomendasi |
|---|---|---|
| CPU | 2 Core | 4 Core atau Lebih Tinggi |
| RAM | 2 GB | 4 GB atau Lebih Tinggi |
| Penyimpanan | 10 GB SSD | 15 GB SSD atau Lebih Tinggi |
| Jaringan | IP Publik IPv4 | Dual-Stack IPv4 + IPv6 |
| OS | Ubuntu 22.04 LTS / Debian 12 | Ubuntu 22.04, 24.04, 26.04 / Debian 11, 12, 13 |
| Akses | Akses root / sudo | Akses root / sudo |
git clone https://github.com/alsyundawy/SmartDNS.git
cd SmartDNS
bash install.shProses pembaruan tidak akan merusak konfigurasi berjalan dan tetap mempertahankan: UUID node, parameter kustom, file telemetri, serta tugas penjadwalan cron.
cd SmartDNS
git pull
bash install.sh| Service / Layanan | Port | Description / Deskripsi |
|---|---|---|
| DNS Resolver (dnsdist) | 53 | Main Frontend / Port Utama |
| Recursive Resolver (Unbound) | 5300 | Local Recursion Backend / Backend Lokal |
| DNSDist Web UI | 8083 | Statistics & Console Web UI / UI Statistik & Konsol |
SmartDNS/
├── cache/ # Temporarily saved environment state / Penyimpan status sementara
├── data/ # Databases & blocklist script / Basis data & skrip blocklist
├── docs/ # Documentation assets / Dokumen dan gambar pendukung
├── engine/ # Tuning & core configuration engines / Mesin utama konfigurasi & tuning
├── lib/ # Helper libraries / Pustaka pembantu sistem
├── output/ # Generated configuration outputs / Hasil file konfigurasi yang di-generate
├── scripts/ # Background scripts (heartbeat) / Skrip latar belakang
├── templates/ # Configuration templates / Templat konfigurasi dasar
├── VERSION # Release version / Versi rilis
├── install.sh # Installation entrypoint / Berkas utama instalasi
└── README.md # Documentation / Dokumentasi ini
systemctl restart unbound
systemctl restart dnsdistsystemctl status unbound
systemctl status dnsdistdig @127.0.0.1 google.com
dig @::1 google.comunbound-checkconf
dnsdist --check-config/usr/local/bin/smartdns-heartbeatcat /var/lib/smartdns/install.json
cat /var/lib/smartdns/install.env
cat cache/secret.envcat /etc/cron.d/smartdns
cat /etc/cron.d/smartdns-heartbeatSmartDNS sends secure heartbeat payloads every 5 minutes to help keep track of node versions and system health.
Data collected / Data yang dikumpulkan:
- Node metadata (Product version, UUID, Operating System, Kernel, Uptime).
- Hardware stats (Architecture, CPU model, Thread count, Total RAM, Virtualization provider).
- Network config (Public IP addresses, IPv6 availability status).
- Activated features (DNSSEC validation, IPv6 capability, Rate limiting, Query logging).
- Calculated smart tuning parameters.
Note
SmartDNS does not collect DNS query histories, user traffic packets, resolver cache entries, or any sensitive personal information.
- Nama: Ichan Kusuma (Chandra Kusuma Wibawa)
- GitHub: ichandkusuma
- Project Original: SmartDNS
- Blog: Kakiteng c Kusuma
- Komunitas: Toyota Etios Valco Club Indonesia (TEVCI) Riau & Kakiteng Community
- Nama: Harry Dertin Sutisna Alsyundawy (alsyundawy)
- GitHub: alsyundawy
- Project Repository: SmartDNS Optimized
- Email:
alsyundawy@gmail.com - Telepon / Phone: +62 856-8-515-212 / +62 812-9898-6464
- Website: alsyundawy.com
- Perusahaan / Author: ALSYUNDAWY IT SOLUTION
- Hak Cipta / CopyLeft: 2022-2026 ALSYUNDAWY IT SOLUTION & Original Creator
- Lisensi / License: MIT License
Presented by MyNOC.ID | ALSYUNDAWY IT SOLUTION - MIT License.
Disclaimer: Proyek ini ditujukan untuk lingkungan edukasi, lab, enterprise, ISP, dan DNS self-hosted. Harap uji seluruh konfigurasi sebelum melakukan deploy di lingkungan produksi.
Made with ❤️ in Indonesia by MyNOC.ID & ALSYUNDAWY IT SOLUTION
