Mikrotik - Menggunakan DNS over HTTPS (DoH)

Mikrotik - Menggunakan DNS over HTTPS (DoH)

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

Arman Dwi Pangestu
Arman Dwi PangestuJanuary 27, 2026
0 views
8 min read

Pendahuluan

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:

bash
dig reddit.com @8.8.8.8

Outputnya akan terlihat seperti ini:

bash
; <<>> 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: 87

Jadi dalam postingan ini, saya akan menunjukkan cara mengonfigurasi Mikrotik RouterOS untuk menggunakan DNS over HTTPS (DoH) guna melewati pemblokiran DNS ISP.

Prasyarat

Berikut adalah prasyarat untuk panduan ini:

Perangkat Keras dan Perangkat Lunak

Saya menggunakan model Mikrotik RB750Gr3 dengan RouterOS v6.48.4 yang terinstal.

Instalasi Certificate Authority (CA)

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 Anda menggunakan Winbox atau SSH

Login ke Mikrotik RouterOS Anda menggunakan Winbox atau SSH client. Berikut adalah contoh menggunakan SSH client:

bash
ssh arman@mikrotik.home.internal

Outputnya akan terlihat seperti ini:

Mikrotik Shell
  MMM      MMM       KKK                          TTTTTTTTTTT      KKK
  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK
  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK
  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK
  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK
  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK
 
  MikroTik RouterOS 6.48.4 (c) 1999-2021       http://www.mikrotik.com/
 
[?]             Gives the list of available commands
command [?]     Gives help on the command and list of arguments
 
[Tab]           Completes the command/word. If the input is ambiguous,
                a second [Tab] gives possible options
 
/               Move up to base level
..              Move up one level
/command        Use command at the base level
 
[arman@Home] >

Unduh CA & Impor

Buka Terminal dan jalankan perintah ini untuk mengunduh & mengimpor sertifikat CA dari curl.se/docs/caextract.html (Mozilla CA Certificate Store):

Mikrotik Shell
/tool fetch url=https://curl.se/ca/cacert.pem
/certificate import file-name=cacert.pem

Note

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:

Mikrotik Shell
[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: 0

Untuk memverifikasi sertifikat CA telah terinstal dengan benar, Anda dapat menjalankan perintah ini:

Mikrotik Shell
/certificate print

Ini akan menampilkan daftar sertifikat yang terinstal, pastikan Anda melihat cacert.pem dalam daftar:

Mikrotik Shell
Flags: K - private-key, L - crl, C - smart-card-key, A - authority, I - issued, R - revoked, E - expired, T - trusted
 #         NAME                                       COMMON-NAME                                      SUBJECT-ALT-NAME                                                                   FINGERPRINT
 0       T ca.crt_0                                   Easy-RSA CA                                                                                                                         4ff905a2f4b8eaba08bd542bc7506e9bf30dd7bb92788...
 1 K     T mikrotik.crt_0                             mikrotik                                                                                                                            45d8ea690b9722cfaa7686f124f8933c184e5712f2555...
 2       T cacert.pem_0                               Entrust Root Certification Authority                                                                                                73c176434f1bc6d5adf45b0e76e727287c8de57616c1e...
 3       T cacert.pem_1                               QuoVadis Root CA 2                                                                                                                  85a0dd7dd720adb7ff05f83d542b209dc7ff4528f7d67...
 4       T cacert.pem_2                               QuoVadis Root CA 3                                                                                                                  18f1fc7f205df8adddeb7fe007dd57e3af375a9c4d8d7...
 5       T cacert.pem_3                               DigiCert Assured ID Root CA                                                                                                         3e9099b5015e8f486c00bcea9d111ee721faba355a89b...
 6       T cacert.pem_4                               DigiCert Global Root CA                                                                                                             4348a0e9444c78cb265e058d5e8944b4d84f9662bd26d...
 7       T cacert.pem_5                               DigiCert High Assurance EV Root CA                                                                                                  7431e5f4c3c1ce4690774f0b61e05440883ba9a01ed00...
 8       T cacert.pem_6                               SwissSign Gold CA - G2                                                                                                              62dd0be9b9f50a163ea0f8e75c053b1eca57ea55c8688...
 9  L    T cacert.pem_7                               SecureTrust CA                                                                                                                      f1c1b50ae5a20dd8030ec9f6bc24823dd367b5255759b...
10  L    T cacert.pem_8                               Secure Global CA                                                                                                                    4200f5043ac8590ebb527d209ed1503029fbcbd41ca1b...
...
135       T cacert.pem_133                             TWCA CYBER Root CA                                                                                                                  3f63bb2814be174ec8b6439cf08d6d56f0b7c405883a5.>
136       T cacert.pem_134                             SecureSign Root CA12                                                                                                                3f034bb5704d44b2d08545a02057de93ebf3905fce721.>
137       T cacert.pem_135                             SecureSign Root CA14                                                                                                                4b009c1034494f9ab56bba3ba1d62731fc4d20d8955ad.>
138       T cacert.pem_136                             SecureSign Root CA15                                                                                                                e778f0f095fe843729cd1a0082179e5314a9c29144280.>
139  L    T cacert.pem_137                             D-TRUST BR Root CA 2 2023                                                                                                           0552e6f83fdf65e8fa9670e666df28a4e21340b510cbe.>
140       T cacert.pem_138                             TrustAsia TLS ECC Root CA                                                                                                           c0076b9ef0531fb1a656d67c4ebe97cd5dbaa41ef4459.>
141       T cacert.pem_139                             TrustAsia TLS RSA Root CA                                                                                                           06c08d7dafd876971eb1124fe67f847ec0c7a158d3ea5.>
142  L    T cacert.pem_140                             D-TRUST EV Root CA 2 2023                                                                                                           8e8221b2e7d4007836a1672f0dcc299c33bc07d316f13.>
143       T cacert.pem_141                             SwissSign RSA TLS Root CA 2022 - 1                                                                                                  193144f431e0fddb740717d4de926a571133884b4360d.>
144       T cacert.pem_142                             OISTE Server Root ECC G1                                                                                                            eec997c0c30f216f7e3b8b307d2bae42412d753fc8219.>
145       T cacert.pem_143                             OISTE Server Root RSA G1                                                                                                            9ae36232a5189ffddb353dfd26520c015395d22777dac.>

Konfigurasi DoH Client

Sekarang kita dapat mengonfigurasi DoH client pada Mikrotik RouterOS.

Pilih Penyedia DoH

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:

VarianEndpoint DoHDeskripsi
Defaulthttps://dns.adguard-dns.com/dns-queryAdGuard DoH Default (Blokir Iklan + Tracker + Phising)
Perlindungan Keluargahttps://family.adguard-dns.com/dns-queryDefault + Blokir Konten Dewasa + Safe Search
Tanpa Filterhttps://unfiltered.adguard-dns.com/dns-queryTanpa Filter sama sekali

Berikut adalah beberapa detail tentang varian Default, Anda dapat melihatnya di adguard-dns.io/kb/general/dns-providers:

ProtokolAlamat
DNS, IPv494.140.14.14 dan 94.140.15.15
DNS, IPv62a10:50c0::ad1:ff dan 2a10:50c0::ad2:ff
DNS-over-HTTPShttps://dns.adguard-dns.com/dns-query
DNS-over-TLStls://dns.adguard-dns.com
DNS-over-QUICquic://dns.adguard-dns.com
DNSCrypt, IPv4Penyedia: 2.dnscrypt.default.ns1.adguard.com IP: 94.140.14.14:5443
DNSCrypt, IPv6Penyedia: 2.dnscrypt.default.ns1.adguard.com IP: [2a10:50c0::ad1:ff]:5443

Atur DNS (DoH + Bootstrap)

Setelah memilih penyedia DoH, sekarang kita dapat mengatur konfigurasi DNS pada Mikrotik RouterOS. Untuk melakukannya, jalankan perintah ini di Terminal:

Mikrotik Shell
/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=yes

Sekarang 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.

Mikrotik Shell
/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=1d

Verifikasi DoH Berjalan

Sebelum 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.

Reboot Mikrotik RouterOS

Mikrotik Shell
/system reboot

Flush DNS Cache

Setelah Mikrotik RouterOS kembali online, jalankan perintah ini untuk membersihkan cache DNS:

Mikrotik Shell
/ip dns cache flush

Sniff Lalu Lintas DNS

Untuk 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.

Mikrotik Shell
/tool sniffer quick interface=ether1 port=53

Jika tidak ada lalu lintas DNS pada port 53, itu berarti DoH berfungsi dengan benar.

Mikrotik Shell
INTERFACE       TIME    NUM DIR SRC-MAC           DST-MAC           VLAN   SRC-ADDRESS                         DST-ADDRESS                         PROTOCOL   SIZE CPU FP

Caution

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:

Mikrotik Shell
INTERFACE   TIME        NUM     DIR     SRC-MAC             DST-MAC             VLAN    SRC-ADDRESS             DST-ADDRESS             PROTOCOL    SIZE    CPU     FP
ether1      6.871         1     ->      XX:XX:XX:XX:XX:XX   YY:YY:YY:YY:YY:YY           172.16.32.1:46830       1.1.1.1:53 (dns)        ip:udp      89      0       no
ether1      6.886         2     <-      YY:YY:YY:YY:YY:YY   XX:XX:XX:XX:XX:XX           1.1.1.1:53 (dns)        172.16.32.1:46830       ip:udp      154     3       no
ether1      10.267        3     ->      XX:XX:XX:XX:XX:XX   YY:YY:YY:YY:YY:YY           172.16.32.1:50410       1.1.1.1:53 (dns)        ip:udp      80      0       no
ether1      10.267        4     ->      XX:XX:XX:XX:XX:XX   YY:YY:YY:YY:YY:YY           172.16.32.1:38817       1.1.1.1:53 (dns)        ip:udp      80      0       no
ether1      10.27         5     <-      YY:YY:YY:YY:YY:YY   XX:XX:XX:XX:XX:XX           1.1.1.1:53 (dns)        172.16.32.1:50410       ip:udp      158     1       no
ether1      10.27         6     <-      YY:YY:YY:YY:YY:YY   XX:XX:XX:XX:XX:XX           1.1.1.1::53 (dns)       172.16.32.1:38817       ip:udp      204     1       no
ether1      10.273        8     ->      XX:XX:XX:XX:XX:XX   YY:YY:YY:YY:YY:YY           172.16.32.1:42068       1.0.0.0::53 (dns)       ip::udp     77      0       no
ether1      10.277       10     <-      YY:YY:YY:YY:YY:YY   XX:XX:XX:XX:XX:XX           1.0.0.0::53 (dns)       172.16.32.1:33532       ip:udp      127     1       no
ether1      11.471       11     ->      XX:XX:XX:XX:XX:XX   YY:YY:YY:YY:YY:YY           172.16.32.1:45603       1.0.0.1::53 (dns)       ip::udp     70      0       no

Mencoba Mengakses Situs yang Diblokir

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.

bash
dig reddit.com @mikrotik.home.internal

Outputnya akan terlihat seperti ini:

bash
; <<>> 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: 92

Mencoba Mengakses Situs Iklan

Sekarang kita dapat mencoba mengakses situs iklan yang biasanya diblokir oleh AdGuard DNS, contohnya doubleclick.net:

bash
dig doubleclick.net @mikrotik.home.internal

Ini akan diresolusi ke 0.0.0.0 karena AdGuard DNS memblokir situs iklan tersebut:

bash
; <<>> 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: 49

Namun saat mencoba kueri ke doubleclick.net menggunakan DNS Google, ia akan diresolusi ke alamat IP aslinya:

bash
dig doubleclick.net @8.8.8.8

Outputnya akan terlihat seperti ini:

bash
; <<>> 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: 140

Akses dnsleaktest.com

Atau Anda juga dapat memverifikasi DNS Anda menggunakan dnsleaktest.com:

Kesimpulan

Dalam 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! 🎉


Related Posts