Tutorial Memaksa Jaringan Mikrotik Memakai OpenDNS Sebagai DNS Resolver
ISP di Indonesia ini sungguh unik dan kejam. Beberapa ISP diketahui menggunakan dns redirect, dengan membelokkan permintaan ke DNS ISP itu sendiri. Padahal, kita terkadang perlu mengganti DNS dengan dns public sesuai dengan yang kita inginkan.
ISP tersebut meng-intercept semua paket yang melewati port 53. Jadi usaha untuk mengganti DNS resolver pada jaringan supaya sesuai dengan yang kita inginkan pun malah menjadi sia-sia. Karena ulah beberapa ISP tersebut, permintaan yang seharusnya diteruskan ke DNS yang kita gunakan (misal: DNS Google; 8.8.8.8) malah dibelokkan ke alamat DNS lain milik ISP.
Cara Memaksakan OpenDNS di MikroTik
Kenapa OpenDNS? Karena OpenDNS merupakan salah satu DNS tercepat. Dan yang paling penting kita bisa melakukan filtering. Yakni memilih kategori situs apa saja yang ingin kita blokir. Misalnya saja: situs p*rn0, adware, web spam, dan lain-lain. Jika tidak ingin repot, kamu juga boleh memilih untuk tidak melakukan pemblokiran dan membuka akses semua situs.
Untuk bisa memblokir situs tertentu, perlu akun OpenDNS kemudian mengaturnya dari dashboard. Silahkan membuat akun dan masuk ke situs OpenDNS di sini. Pada dashboard akun, kamu akan menemukan Web Content Filtering pada menu Setting.
Kembali ke Mikrotik. Sebelum melakukan pengaturan, pastikan kamu tidak mencentang Use peer DNS pada sumber internet kamu. Lihat dan sesuaikan sperti gambar di bawah ini:
Perhatikan juga hal-hal berikut:
- 1. Apabila kamu terhubung ke modem dengan PPOE Client, maka hapus centang seperti gambar dibawah:
Sekarang kita lakukan setting pada Mikrotik agar menggunaka OpenDNS. Kamu bisa memakai skrip di bawah ini pada terminal WinBox. Salin, kemudian Tempel pada jendela Terminal di Winbox
/ip dns set allow-remote-requests=yes servers=208.67.222.222,208.67.220.220
/ip firewall nat add action=dst-nat chain=dstnat comment=OpenDNS dst-port=53,5353 protocol=udp to-addresses=208.67.222.222 to-ports=5353
Dengan skrip di atas, kamu akan akan memaksa semua klien/perangkat yang terkoneksi dengan mikrotik anda agar memakai OpenDNS sebagai DNS resolver dan memindahkan semua paket yang lewat port 53 ke port 5353 agar lolos dari cegatan ISP.
Tambahan: jika ingin lebih aman, kamu bisa pakai port 443 alih-alih memakai 5353 karena OpenDNS juga mendukung DNS over https.
Lihat pada menu IP – Firewall – NAT. Pastikan settingan dengan comment OpenDNS berada di atas masquerade. Jika kamu menggunakan Mikrotik sebagai server hotspot, tetap letakkan rule NAT OpenDNS di atas masquerade tapi berada dibawah NAT Hotspot. Lihat dan atur agar seperti gambar di bawah ini:

Apabila anda memakai IP Publik statis maka pengaturan selesai sampai disini.
Pengaturan Lanjutan
Untuk IP publik dinamis seperti pelanggan Indihome sebenarnya tidak perlu pengaturan lanjutan. Tetapi jika kamu ingin melakukan filtering seperti p*rn*grafi, j*di, atau situs kategori tertentu melalui dashboard OpenDNS seperti yang disebut di awal artikel, kamu perlu melakukan pengaturan lanjutan dengan cara yang akan dijelaskan berikut ini:
Karena menggunakan IP publik dinamis yang berubah-ubah, maka OpenDNS tidak bisa mengunci alamat IP publik jaringan kamu. Sehingga permintaan yang datang dari IP publik kamu yang baru, tidak akan difilter sesuai yang kamu atur dari dasboard akun OpenDNS.
Jadi perlu ada tambahan pengaturan agar OpenDNS bisa mengenali IP publik kamu yang baru. Buka menu System – Script dan buat script baru dengan nama "opendns" kemudian ketik (salin dan tempel) script berikut;
# Rubah nilai di bagian ini sesuai dengan akun opendns kamu
# Update-only password (didapatkan dari OpenDNS Support). Dengan two-factor authentication aktif, dibutuhkan pemakaian update only password.
:local odnsuser "namauseropendnskamu"
# Atur hostname atau label jaringan yang akan diupdate. Ini adalah nama jaringan OpenDNS yang ada di dashboard.
# Jangan gunakan spasi untuk Hostname. Ganti nilai dalam tanda kutip sesuai hostname.
# Hanya mendukung satu host.
# Gunakan "all.dnsomatic.com" untuk matichost update semua item pada dnsomatic dengan IP ini.
# Ingat, kamu harus punya akses sebagai admin atau edit (Read/Write/Grant pada dashboard OpenDNS) untuk memperbarui alamat IP.
:local odnshost "namahostopendnskamu"
# Ganti menjadi nama interface yang akan mendapatkan perubahan alamat IP
# Tidak berpengaruh pada nomor model kamu - memberi komentar pada baris ini mungkin masih bisa untuk perangkat interfacr tunggal atau jika tidak tersedia pada DNS-O-Matic script yang sedang dipaki.
:local inetinterface "ether1"
# Tak ada perubahan yang perlu dilakukan dibaris berikut
:global previousIP;
:log info "Mendapatkan IP yang baru"
# Mendapatkan IP publik saat ini melalui layanan DNS-O-Matic dan menyimpan dalam bentuk txt
/tool fetch url="http://myip.dnsomatic.com/" mode=http dst-path=IPpublik.txt
# Membaca IP publik saat ini dari file txt dan menjadikannya sebagai variable currentIP.
:local currentIP [/file get IPpublik.txt contents]
:log info "IP baru yang didapatkan $currentIP"
# Optional, hanya memeriksa dan dijalankan jika IP sudah ganti satu baris kode: :if
# untuk disable, atur baris pertama menjadi ":if ($currentIP != 1) do={"
:if ($currentIP != $previousIP) do={
:log info "OpenDNS: perlu ada pembaruan"
:set previousIP $currentIP
# URL pembaruan. Teks "\3F" adalah nilai hex dari tanda tanya (?). Diperlukan karena (?) adalah karakter khusus dalam perintah.
# Beberapa versi MicroTik/WinBox OS lama membutuhkan baris berikut (http) sedangkan versi baru membutuhkan https.
# :local url "http://updates.opendns.com/nic/update\3Fhostname=$odnshost"
:local url "https://updates.opendns.com/nic/update\3Fhostname=$odnshost"
:log info "OpenDNS: Mengirim pembaruan ke $odnshost"
/tool fetch url=($url) user=$odnsuser password=$odnspass mode=http dst-path=("/net_odns.txt")
:delay 2;
local odnsReply [/file get net_odns.txt contents];
:log info "OpenDNS update selesai."
:log info "Balasan OpenDNS $odnsReply";
} else={
:log info "OpenDNS: IP lama $previousIP and IP baru sama, tak perlu lakukan update" }
Sebelum menyimpan skrip di atas, lakukan penyesuaian terlebih dulu. Rubah HANYA pada tulisan yang ditulis tebal. Cari pada bagian namauseropendnskamu, passwordopendnskamu, namahostopendnkamu. Kemududian ganti :local inetinterface “ether1”
sesuai dengan port yang menjadi sumber internet (port ke modem Indihome) pada Mikrotik kamu, dan simpan skrip di atas dengan nama “opendns”
Langkah terakhir kamu bisa membuat scheduler untuk melakukan update IP secara otomatis setiap reboot dan setiap 5 menit dengan skrip berikut:
/system scheduler add name="opendns startup" on-event="system script run opendns" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup add interval=5m name="opendns 5m" on-event="system script run opendns" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
Hasil update penggantian IP publik dari script yang dibuat nantinya bisa dilihat dari menu Log baik dari Winbox (PC Windows) maupun aplikasi MikroTik (ponsel Android). Hasilnya kurang lebih seperti gambar di bawah

Itulah cara memaksa Mikrotik memakai OpenDNS sebagai DNS dalam jaringan. Dengan melakukan setting yang di paparkan di atas, kamu bisa memaksa agar seluruh jaringan yang terhubung ke mikrotik memakai OpenDNS sebagai DNS resolver. Tidak perduli DNS yang dipakai perangkat dalam jaringan berbeda (misal DNS Google atau Telkom), tetap akan dibelokkan ke OpenDNS.
Gabung dalam percakapan