Cara menggunakan DNS over HTTPS (DoH) di Mikrotik RouterOS.

DNS over HTTPS (DoH) adalah protokol untuk melakukan resolusi Domain Name System (DNS) jarak jauh melalui protokol HTTPS. Tujuan dari DoH adalah untuk meningkatkan privasi dan keamanan pengguna dengan mencegah penyadapan dan manipulasi.
Dengan DoH kita dapat melewati pemblokiran (filtering) dan sensor DNS ISP, serta meningkatkan privasi dengan mengenkripsi kueri DNS. Seperti dalam kasus di Indonesia, beberapa ISP memblokir akses ke situs web tertentu dengan menyaring kueri DNS, contohnya reddit.com.
Berikut adalah contoh bagaimana kueri dns untuk reddit.com diblokir oleh DNS ISP:
dig reddit.com @8.8.8.8Outputnya akan terlihat seperti ini:
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> reddit.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12044
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;reddit.com. IN A
;; ANSWER SECTION:
reddit.com. 0 IN CNAME internetpositif.id.
internetpositif.id. 0 IN A 36.86.63.185
;; Query time: 8 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Tue Jan 27 00:59:39 WIB 2026
;; MSG SIZE rcvd: 87Jadi dalam postingan ini, saya akan menunjukkan cara mengonfigurasi Mikrotik RouterOS untuk menggunakan DNS over HTTPS (DoH) guna melewati pemblokiran DNS ISP.
Berikut adalah prasyarat untuk panduan ini:
Saya menggunakan model Mikrotik RB750Gr3 dengan RouterOS v6.48.4 yang terinstal.
Mengapa kita perlu menginstal sertifikat CA? Karena DoH pada dasarnya menjalankan DNS di bawah HTTPS (TLS), saat menggunakan HTTPS, itu berarti ada proses verifikasi Sertifikat TLS. Masalahnya adalah, secara default Mikrotik RouterOS tidak memiliki sertifikat CA yang terinstal seperti trust store pada OS umum, jadi kita perlu menginstal sertifikat CA terlebih dahulu.
Untuk menginstal sertifikat CA, Anda dapat mengikuti langkah-langkah berikut:
Login ke Mikrotik RouterOS Anda menggunakan Winbox atau SSH client. Berikut adalah contoh menggunakan SSH client:
ssh arman@mikrotik.home.internalOutputnya akan terlihat seperti ini:
Buka Terminal dan jalankan perintah ini untuk mengunduh & mengimpor sertifikat CA dari curl.se/docs/caextract.html (Mozilla CA Certificate Store):
/tool fetch url=https://curl.se/ca/cacert.pem
/certificate import file-name=cacert.pemNote
Saat mengimpor sertifikat, akan muncul perintah untuk memasukkan
passphrase, Anda dapat mengosongkan nilainya dan langsung menekan Enter.
passphrase hanya diperlukan jika sertifikat tersebut dienkripsi.
Outputnya akan terlihat seperti ini:
[arman@Home] > /tool fetch url=https://curl.se/ca/cacert.pem
status: finished
downloaded: 219KiBz pause]
total: 219KiB
duration: 1s
[arman@Home] > /certificate import file-name=cacert.pem
passphrase:
certificates-imported: 144
private-keys-imported: 0
files-imported: 1
decryption-failures: 0
keys-with-no-certificate: 0Untuk memverifikasi sertifikat CA telah terinstal dengan benar, Anda dapat menjalankan perintah ini:
/certificate printIni akan menampilkan daftar sertifikat yang terinstal, pastikan Anda melihat cacert.pem dalam daftar:
Sekarang kita dapat mengonfigurasi DoH client pada Mikrotik RouterOS.
Ada banyak penyedia DoH yang tersedia, beberapa yang populer adalah:
Dalam kasus ini saya akan memilih AdGuard sebagai penyedia DoH. AdGuard juga memiliki beberapa varian, contohnya:
| Varian | Endpoint DoH | Deskripsi |
|---|---|---|
| Default | https://dns.adguard-dns.com/dns-query | AdGuard DoH Default (Blokir Iklan + Tracker + Phising) |
| Perlindungan Keluarga | https://family.adguard-dns.com/dns-query | Default + Blokir Konten Dewasa + Safe Search |
| Tanpa Filter | https://unfiltered.adguard-dns.com/dns-query | Tanpa Filter sama sekali |
Berikut adalah beberapa detail tentang varian Default, Anda dapat melihatnya di adguard-dns.io/kb/general/dns-providers:
| Protokol | Alamat |
|---|---|
| DNS, IPv4 | 94.140.14.14 dan 94.140.15.15 |
| DNS, IPv6 | 2a10:50c0::ad1:ff dan 2a10:50c0::ad2:ff |
| DNS-over-HTTPS | https://dns.adguard-dns.com/dns-query |
| DNS-over-TLS | tls://dns.adguard-dns.com |
| DNS-over-QUIC | quic://dns.adguard-dns.com |
| DNSCrypt, IPv4 | Penyedia: 2.dnscrypt.default.ns1.adguard.com IP: 94.140.14.14:5443 |
| DNSCrypt, IPv6 | Penyedia: 2.dnscrypt.default.ns1.adguard.com IP: [2a10:50c0::ad1:ff]:5443 |
Setelah memilih penyedia DoH, sekarang kita dapat mengatur konfigurasi DNS pada Mikrotik RouterOS. Untuk melakukannya, jalankan perintah ini di Terminal:
/ip dns set \
servers=94.140.14.14,94.140.15.15 \
use-doh-server="https://dns.adguard-dns.com/dns-query" \
verify-doh-cert=yes \
allow-remote-requests=yesSekarang kita perlu menambahkan entri DNS statis untuk dns.adguard-dns.com guna meresolusi alamat server DoH menggunakan server DNS bootstrap:
Note
Entri DNS statis diperlukan untuk menghindari ketergantungan melingkar (circular dependency), karena alamat server DoH perlu diresolusi terlebih dahulu sebelum kita dapat menggunakan DoH untuk meresolusi kueri DNS lainnya.
/ip dns static
add name=dns.adguard-dns.com address=94.140.14.14 ttl=1d
add name=dns.adguard-dns.com address=94.140.15.15 ttl=1dSebelum kita memverifikasi bahwa DoH berfungsi, pertama-tama kita perlu me-reboot dan membersihkan (flush) cache DNS pada RouterOS itu sendiri dan juga pada perangkat Anda (seperti membersihkan cache browser di laptop) untuk menghapus entri DNS yang tersimpan:
Tip
RouterOS menyimpan cache DNS dan sesi resolver aktif di memori. Setelah beralih ke DNS over HTTPS, router mungkin masih menggunakan respons DNS yang tersimpan di cache atau koneksi resolver yang sudah ada.
Membersihkan cache DNS memastikan bahwa semua kueri DNS menggunakan resolver DoH yang baru, sementara me-reboot router melalukan reset penuh pada status runtime DNS, sesi TLS, dan resolusi bootstrap.
/system rebootSetelah Mikrotik RouterOS kembali online, jalankan perintah ini untuk membersihkan cache DNS:
/ip dns cache flushUntuk memverifikasi bahwa DNS over HTTPS berfungsi, kita dapat mengintip (sniff) lalu lintas DNS pada Mikrotik RouterOS menggunakan alat Sniffer. Jalankan perintah ini di Terminal:
Tip
Pastikan untuk mengubah nilai interface menjadi interface yang terhubung ke
internet, contoh: ether1, wan, dll.
/tool sniffer quick interface=ether1 port=53Jika tidak ada lalu lintas DNS pada port 53, itu berarti DoH berfungsi dengan benar.
INTERFACE TIME NUM DIR SRC-MAC DST-MAC VLAN SRC-ADDRESS DST-ADDRESS PROTOCOL SIZE CPU FPCaution
Jika sniffer menunjukkan lalu lintas DNS pada port 53 dan berjalan di bawah
protokol udp, itu berarti DoH tidak berfungsi dengan benar. Berikut adalah
contoh output saat DoH tidak berfungsi:
Sekarang kita dapat mencoba mengakses kembali situs yang diblokir, contohnya reddit.com:
Note
Ubah alamat server DNS agar mengarah ke alamat IP Mikrotik RouterOS Anda.
Dalam kasus saya, mikrotik.home.internal yang mengarah ke 10.10.10.254.
dig reddit.com @mikrotik.home.internalOutputnya akan terlihat seperti ini:
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> reddit.com @mikrotik.home.internal
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9242
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;reddit.com. IN A
;; ANSWER SECTION:
reddit.com. 197 IN A 151.101.1.140
reddit.com. 197 IN A 151.101.65.140
reddit.com. 197 IN A 151.101.193.140
reddit.com. 197 IN A 151.101.129.140
;; Query time: 2 msec
;; SERVER: 10.10.10.254#53(mikrotik.home.internal) (UDP)
;; WHEN: Tue Jan 27 02:46:58 WIB 2026
;; MSG SIZE rcvd: 92Sekarang kita dapat mencoba mengakses situs iklan yang biasanya diblokir oleh AdGuard DNS, contohnya doubleclick.net:
dig doubleclick.net @mikrotik.home.internalIni akan diresolusi ke 0.0.0.0 karena AdGuard DNS memblokir situs iklan tersebut:
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> doubleclick.net @mikrotik.home.internal
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57294
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;doubleclick.net. IN A
;; ANSWER SECTION:
doubleclick.net. 3523 IN A 0.0.0.0
;; Query time: 2 msec
;; SERVER: 10.10.10.254#53(mikrotik.home.internal) (UDP)
;; WHEN: Tue Jan 27 02:54:33 WIB 2026
;; MSG SIZE rcvd: 49Namun saat mencoba kueri ke doubleclick.net menggunakan DNS Google, ia akan diresolusi ke alamat IP aslinya:
dig doubleclick.net @8.8.8.8Outputnya akan terlihat seperti ini:
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> doubleclick.net @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17179
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;doubleclick.net. IN A
;; ANSWER SECTION:
doubleclick.net. 296 IN A 172.217.194.139
doubleclick.net. 296 IN A 172.217.194.100
doubleclick.net. 296 IN A 172.217.194.102
doubleclick.net. 296 IN A 172.217.194.113
doubleclick.net. 296 IN A 172.217.194.101
doubleclick.net. 296 IN A 172.217.194.138
;; Query time: 7 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Tue Jan 27 02:56:31 WIB 2026
;; MSG SIZE rcvd: 140Atau Anda juga dapat memverifikasi DNS Anda menggunakan dnsleaktest.com:
Hasil PengujianDalam postingan ini, kita telah berhasil mengonfigurasi Mikrotik RouterOS untuk menggunakan DNS over HTTPS (DoH) dengan AdGuard DNS sebagai penyedia DoH. Dengan menggunakan DoH, kita dapat melewati sensor dan pemblokiran DNS ISP, serta meningkatkan privasi dengan mengenkripsi kueri DNS.
Kita juga telah memverifikasi bahwa DoH berfungsi dengan benar dengan mengintip lalu lintas DNS dan mengakses situs yang diblokir. Anda juga dapat memilih penyedia DoH lainnya, cukup pastikan untuk menyesuaikan konfigurasinya.
Happy Hacking! 🎉