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.

noip logo

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

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

# noip.com - automatic dynamic DNS updater
# sesuaikan konfigurasi disini!

:local noipuser "username"
:local noippass "password"
:local noiphost "hostname"
:local inetinterface "ether-Internet"

# end of configuration

: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 "DDNS check: Internet IPv4 has changed to $currentIP"
:set previousIP $currentIP
:local url "http://dynupdate.no-ip.com/nic/update\3Fhostname=$noiphost&myip=$currentIP"
:local noiphostarray
:set noiphostarray [:toarray $noiphost]
:foreach host in=$noiphostarray do={
:delay 5
:log info "DDNS check: sending update for $host"
:log info "DDNS check: Hostname $host will be updated with $currentIP"
/tool fetch url=($url . "&hostname=$host") user=$noipuser password=$noippass mode=http keep-result=no
}
} else={
:log info "DDNS check: no update needed"
}
} else={
:log info "DDNS check: $inetinterface is down, no update available"
}

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 (misalnya my-awesome-mikrotik.ddns.net)
  • 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)
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! :)

Changelog:

  • Updated 09 Oktober 2019: Fixed metode update DDNS dengan fetch file yang gagal (kemungkinan fungsi ini di hilangkan oleh pihak noip.com) dan penambahan delay agar script tidak buru-buru melakukan update ddns.

4 Comments

  1. Grove

    Gan ada yang memberikan tutorial salah satu di baris script nya seperti berikut (beda tipis):

    policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive

    Fungsi dari sniff dan sensitive tersebut kira” buat apa ya dan apakah aman untuk dipakai? Atau cukup menggunakan baris dari agan udah cukup sebenarnya?

    • sebenarnya untuk tutorial ini, group policy nya hanya butuh read dan write saja. nggak perlu sampai sniff/sensitive segala. hehehe.

  2. Salman

    gan, saya sudah berhasil menambahkan scriptnya, ketika di runscript di log tidak terjadi apa apa yaa? saya sudah menjalankan DUC no-ip berhasil mendapatkan ip publicnya, namun permasalahan saya, saya tidak bias menggunakan cloud, dikarenakan router saya dibelakang NAT. mohon pencerahan gan

    • fazar

      permasalahannya adalah router yg di belakang NAT. otomatis biasanya mendapatkan shared IP lokal. script ini (dan juga ip cloud mikrotik) spesifik di tujukan untuk router yg langsung mendapatkan IP publik. demikian mas.. :)

Leave a Reply

Your email address will not be published. Required fields are marked *