17 June 2017

Menonaktifkan Redirect DNS Hotspot MikroTik Untuk User Aktif

Kadang kita implemetasikan fitur hotspot mikrotik pada jaringan kita, misalnya kantor, restoran, cafe, sekolah, kampus dll. Yg mengharuskan pengguna internet perlu otenfikasi/login terlebih dahulu sebelum menggunakan koneksi internet.

Tapi, setelah login. Semua request DNS user pasti diarahkan melalui DNS router mikrotik. Nah kasus kali ini ada di beberapa lingkungan jaringan, user membutuhkan akses ke DNS lain (Internal DNS Server, OpenDNS atau Google Public DNS). Jika di test menggunakan "namebench" terlihat DNS kita diarahkan otomatis/dipaksakan melalui DNS router mikrotik (DNS Proxying).

Mikrotik Hotspot DNS Proxying


Mikrotik Hotspot DNS Proxying


Dari hasil googling dan langsung coba2, ternyata fitur hotspot mikrotik otomatis menambahkan rules redirect dns di "/ip firewall nat" jika kita "print" di terminal terlihat rules 2 baris seperti ini :

/ip firewall nat print
2  D chain=hotspot action=redirect to-ports=64872 protocol=udp dst-port=53
3  D chain=hotspot action=redirect to-ports=64872 protocol=tcp dst-port=53

Karena kita ingin user yang belum aktif / belum login tetap diarahkan ke statik dns hotspot kita, dan mengabaikan 2 rules diatas untuk user yang sudah login. Maka kita perlu menambahkan opsi "hotspot=!auth" pada ke dua line tersebut.

/ip firewall nat set 2,3 hotspot=!auth

Hasilnya akan menjadi seperti ini :

/ip firewall nat print
2  D chain=hotspot action=redirect to-ports=64872 protocol=udp hotspot=!auth dst-port=53 
3  D chain=hotspot action=redirect to-ports=64872 protocol=tcp hotspot=!auth dst-port=53

User hotspot aktif sekarang dapat menggunakan custom DNS pada gadget mereka, tanpa diarahkan otomatis/dipaksakan melalui DNS router mikrotik.

Sayangnya jika anda disable/enable service hotspot atau reboot router Anda kondisi akan kembali semula. Untuk mengakali supaya permanent bisa tambahkan rules seperti di bawah ini :

/ip firewall nat
add action=dst-nat chain=pre-hotspot dst-port=53 hotspot=auth protocol=udp to-addresses=xxx.xxx.xxx.xxx
add action=dst-nat chain=pre-hotspot dst-port=53 hotspot=auth protocol=tcp to-addresses=xxx.xxx.xxx.xxx

"xxx.xxx.xxx.xxx" ganti dengan IP DNS Server eksternal Anda.