Cara Menggunakan OpenDNS Updater Client Pada Mikrotik

Tulisan ini semacam “buku pengingat pribadi”, supaya kalau nanti butuh bisa dibuka kembali, gak perlu browsing-browsing gitu. Tapi kalau kamu baca tulisan ini, dan bisa dipraktekkan ya syukur alhamdulillah.

Oh ya, kembali ke judul ya, jadi bukan hanya OpenDNS tetapi juga berlaku untuk dyamic DNS lain seperti no-ip dan lain-lain, daftar yang disupport ada di sini:

  1. no-ip
  2. dyndns
  3. opendns
  4. dan lain-lain, klik di sini untuk tahu semuanya https://www.dnsomatic.com/wiki/supportedservices .

Okay, langsung aja ya, Cara Menggunakan Dynamic DNS Client Updater Pada Mikrotik sebagai berikut:

  1. daftar di https://www.dnsomatic.com/ . kalau udah punya akun opendns tidak perlu daftar, langsung login aja, karena dnsomatic ini satu perusahaan dengan opendns.
  2. masukin semua servis dns yang anda punya di situ, kalau opendns sudah otomatis ada di situ.
  3. buat script udater ==> SYSTEM -> SCRIPTS  (scriptnya terlampir di akhir tutorial ini) , buat nama script “opendns” misalnya.cara-menggunakan-opendns-di-mikrotik
  4. schedule untuk memanggil script per jam atau per hari, ==> SYSTEM -> SCHEDULER . buat nama scheduler “opendns-scheduler” misalnya, nanti pada “on event” tulis nama scriptnya.cara-setting-open-dns-di-mikrotik

Selesai.

Script DNS O MATIC

  1. script ini dapat berjalan di belakang NAT juga, jadi misalnya mikrotik kita masih di bawah modem, bukan pakai PPPOE langsung juga bisa.
  2. script saya ambil dari sini https://wiki.mikrotik.com/wiki/Dynamic_DNS_Update_Script_for_DNSoMatic.com_behind_NAT.
  3. jangan lupa ganti username dan password dns-o-maitc nya, supaya berfungsi

SCRIPT:

# DNSoMatic automatic DNS updates

#--------------- Change Values in this section to match your setup ------------------

# User account info of DNSoMatic

:local maticuser "USERNAME DNS O MATIC ANDA"
:local maticpass "PASSWORD DNS O MATIC ANDA"

# Set the hostname or label of network to be updated. This is the part after the double colon (::) on the DNSoMatic services page.
# Hostnames with spaces are unsupported. Replace the value in the quotations below with your host names.
# To specify multiple hosts, separate them with commas. 
# Use "all.dnsomatic.com" for the matichost to update all items in dnsomatic with this IP.

:local matichost "all.dnsomatic.com"

#------------------------------------------------------------------------------------

# No more changes need

:global previousIP;

:log info "Fetching current IP"

# Get the current public IP using DNS-O-Matic service.
/tool fetch url="http://myip.dnsomatic.com/" mode=http dst-path=mypublicip.txt

# Read the current public IP into the currentIP variable.
:local currentIP [/file get mypublicip.txt contents]

:log info "Fetched current IP as $currentIP"
 
:if ($currentIP != $previousIP) do={
 :log info "DNSoMatic: Update needed"
 :set previousIP $currentIP
 
# The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands.
 :local url "http://updates.dnsomatic.com/nic/update\3Fmyip=$currentIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
 :local matichostarray;
 :set matichostarray [:toarray $matichost];
 :foreach host in=$matichostarray do={
 :log info "DNSoMatic: Sending update for $host"
 /tool fetch url=($url . "&hostname=$host") user=$maticuser password=$maticpass mode=http dst-path=("dnsomaticupdate-" . $host . ".txt")
 :log info "DNSoMatic: Host $host updated on DNSoMatic with IP $currentIP"
 }
} else={
 :log info "DNSoMatic: Previous IP $previousIP and current IP equal, no update need"
}