Script Auto Update DDNS No-IP di Mikrotik (Tested Working)


Fitur dynamic DNS (DDNS) sangat bermanfaat jika sobat ingin mengakses winbox, memonitor CCTV, atau mengakses komputer dari jarak jauh. Karena, sobat tidak perlu di repotkan dengan menghafal IP address dari ISP yang sering berubah-rubah.

DDNS memungkinkan kita mengakses perangkat dari jarak jauh dengan menggunakan hostname yang lebih mudah untuk di hafal dan di ingat.

Mikrotik sebenarnya sudah memberikan fasilitas DDNS sejak rilis RouterOS versi 6.27 (juga sering di sebut sebagai IP Cloud). Akan tetapi, fitur DDNS di mikrotik memiliki keterbatasan yaitu sulit atau bahkan gagal terhubung jika mikrotik berada di belakang NAT.

Dan yang kedua, hostname yang di berikan oleh server mikrotik sangat sulit untuk di ingat (misalnya 33b601221f23.sn.mynetname.net). Repot untuk menghapalkan hostname seperti ini, kecuali sobat mencatatnya secara manual di notepad. Hehehe…

Oleh karena itu, saya secara pribadi lebih senang menggunakan layanan DDNS pihak ketiga yang lebih reliable dan hostname-nya lebih gampang untuk di ingat. Dan dalam hal ini saya menggunakan DDNS dari no-ip.com.

Kenapa saya memilih no-ip.com?

  • Hostname yang singkat dan keren, misalnya mymikrotik.ddns.net
  • 100% GRATIS! Perlu DDNS yang lebih canggih? Silakan upgrade dengan biaya yang kompetitif
  • Lebih dari 100 point of presence yang terhubung dalam jaringan anycast. Teknologi anycast terbukti sangat cepat dalam urusan propagasi DNS, sehingga perubahan IP address sebuah hostname dapat dilakukan hanya dalam hitungan menit (bahkan detik).

Bagaimana agar mikrotik saya bisa menggunakan layanan DDNS dari no-ip.com?

Gampang kok, cukup daftar di no-ip.com,  kemudian buat hostname yang akan sobat gunakan untuk keperluan akses jarak jauh. Catat username, password, dan hostname yang sobat gunakan untuk mendaftar no-ip.com.

Agar mikrotik dapat memperbarui IP address hostname secara otomatis, gunakan langka-langkah di berikut ini.

Lewat winbox, klik System > Script. Kemudian klik tanda tambah +, pada kolom Name isi dengan “noipupdate” (tanpa tanda kutip), Policy ceklis pada read, write, policy, dan test.

Script Auto Update DDNS No-IP di Mikrotik (Tested Working)

Dalam kolom source isikan script di bawah ini (pastikan sobat sudah menyesuaikan konfigurasinya), dan terakhir klik “Apply”.

# No-IP automatic Dynamic DNS update

:local noipuser "username"
:local noippass "password"
:local noiphost "hostname-kamu.ddns.net"
:local inetinterface "ether-inet"

:global currentIP
:global previousIP

:if ([/interface get $inetinterface value-name=running]) do={
 :local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address]
 :for i from=( [:len $currentIP] - 1) to=0 do={
 :if ( [:pick $currentIP $i] = "/") do={ 
 :set currentIP [:pick $currentIP 0 $i]
 } 
 }

:if ($currentIP != $previousIP) do={
 :log info "No-IP Updater: Current IP address $currentIP is not equal to previous IP, update needed"
 :set previousIP $currentIP

:local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP"
 :local noiphostarray
 :set noiphostarray [:toarray $noiphost]
 :foreach host in=$noiphostarray do={
 :log info "No-IP Updater: Sending update for $host"
 /tool fetch url=($url . "&hostname=$host") user=$noipuser password=$noippass mode=http dst-path=("no-ip_ddns_update-" . $host . ".txt")
 :log info "No-IP Updater: Update change requested. Hostname $host will be updated with $currentIP"
 }
 } else={
 :log info "No-IP Updater: Previous IP address $previousIP is equal to current IP, no update needed"
 }
} else={
 :log info "No-IP Updater: $inetinterface is not currently running, so therefore will not update"
}

Konfigurasi script:

  • noipuser: username no-ip.com yang sobat gunakan saat mendaftar
  • noippass: password no-ip.com
  • noiphost: hostname yang sobat tentukan di no-ip.com
  • inetinterface: interface mikrotik yang terhubung ke internet

Untuk menguji apakah script sudah berjalan dengan baik, silakan klik menu Log pada winbox, dan klik “Run Script” pada script yang kita buat tadi. Jika sukses akan tampil log seperti ini:

Script Auto Update DDNS No-IP di Mikrotik (Tested Working)

Setelah script di pastikan dapat berjalan dengan baik, silakan buat scheduler untuk menjalankan script tersebut setiap 5 menit. Silakan copas script berikut di terminal winbox:

/system scheduler
add comment="Update No-IP DDNS" interval=5m name=noipupdate on-event=noipupdate policy=read,write,policy,test start-date=aug/07/2017 start-time=00:30:00

Jika terdeteksi perubahan IP address maka script akan otomatis meminta update ke no-ip.com. Berikut penampakan script yang memantau perubahan IP address.

Script Auto Update DDNS No-IP di Mikrotik (Tested Working)

Catatan:

Script ini saya comot dari wiki mikrotik dengan sedikit modifikasi dan penyesuaian agar bisa berjalan dengan baik di RouterOS versi terbaru (tested di RouterOS 6.40.1 stable). Script versi wiki tidak dapat mendeteksi perubahan / konsistensi current IP address dengan baik.

Semoga bermanfaat ya! :)


Related Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *