# 🚀 SmartDNS Optimized
## High-Performance Recursive DNS Platform Powered by Unbound and dnsdist
## Platform DNS Rekursif Kinerja Tinggi Ditenagai oleh Unbound dan dnsdist
Developed and maintained by **MyNOC.ID** & **ALSYUNDAWY IT SOLUTION**
---
[](https://github.com/alsyundawy/SmartDNS/releases)



[](https://github.com/alsyundawy/SmartDNS/releases)
[](https://github.com/alsyundawy/SmartDNS/)
[](https://github.com/alsyundawy/SmartDNS/blob/master/LICENSE)
[](https://github.com/alsyundawy/SmartDNS/issues)
[](https://github.com/alsyundawy/SmartDNS/pulls)
[](https://www.paypal.me/alsyundawy)
[](https://ko-fi.com/alsyundawy)
[](https://github.com/sponsors/alsyundawy)
[](https://github.com/alsyundawy/SmartDNS/network/members)
[](https://github.com/alsyundawy/SmartDNS/graphs/contributors)
---
### 🌎 Language / Bahasa
[English Documentation](#-english-documentation) • [Dokumentasi Bahasa Indonesia](#-dokumentasi-bahasa-indonesia)
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:
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
127.0.1.1 SmartDNS in /etc/hosts to ensure local hostname resolution succeeds on every boot.| 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.sh
Upgrades are completely non-destructive and retain: UUID, configuration parameters, telemetry files, and custom scheduler tasks.
cd SmartDNS
git pull
bash install.sh
SmartDNS 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:
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
127.0.1.1 SmartDNS ke /etc/hosts secara otomatis agar hostname lokal dapat di-resolve dengan benar setiap kali sistem boot.| 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.sh
Proses 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 dnsdist
systemctl status unbound
systemctl status dnsdist
dig @127.0.0.1 google.com
dig @::1 google.com
unbound-checkconf
dnsdist --check-config
/usr/local/bin/smartdns-heartbeat
cat /var/lib/smartdns/install.json
cat /var/lib/smartdns/install.env
cat cache/secret.env
cat /etc/cron.d/smartdns
cat /etc/cron.d/smartdns-heartbeat
SmartDNS sends secure heartbeat payloads every 5 minutes to help keep track of node versions and system health.
Data collected / Data yang dikumpulkan:
[!NOTE] SmartDNS does not collect DNS query histories, user traffic packets, resolver cache entries, or any sensitive personal information.
alsyundawy@gmail.com| 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.