Setting Mikrotik, DNS-O-Matic dan Cloudflare Untuk IndiHome
Bagi pengguna IndiHome, pasti sudah
mengetahui bahwa IP Address yang diperoleh adalah IP publik dinamik yang
berubah setiap saat. Hal ini akan menjadi kendala bagi sebagian
pengguna yang memiliki kebutuhan untuk memeliki service sendiri dirumah
misal web server pribadi atau sekedar untuk meremote mikrotik atau
perangkat lain dirumah seperti NVR CCTV atau perangkat lainnya. Dengan
memanfaatkan kombinasi layanan dari DNS-O-Matic dan Cloudflare serta
sebuah script update yang akan secara rutin berjalan di mikrotik, kita
tidak perlu lagi dipusingkan dengan berubahnya IP address sewaktu-waktu
karena jaringan kita bisa diakses menggunakan alamat domain maupun
subdomain yang tidak berubah. Mungkin, sebagian pembaca sudah familiar
dengan fitur IP Cloud yang di sediakan oleh MikroTik, namun bagaimana jika kita menginginkan alamat menggunakan nama domain sendiri yang kita beli?
Goal :
Layanan/perangkat di rumah seperti webfig, web server atau NVR CCTV yang
menggunakan ip publik dinamik Indihome dapat diakses menggunakan domain
TLD milik sendiri seperti .com, .net, .org, .id, .my.id, .web.id dan
ekstensi domain TLD lainnya.
Secara teknis pembahasannya :Update A Record domain di Cloudflare dengan IP publik dinamik IndiHome menggunakan script MikroTik dan layanan DNS-O-Matic
Kebutuhan :- sebuah domain TLD yang memeliki akses domain panel
- akun DNS-0-Matic
- akun Cloudflare
- Modem/ONT Indihome dengan setting pppoe bridge
- Router mikrotik, dengan ether1 terhubung dengan port internet Modem/ONT Indihome
To Do :
- Bagi yang belum memiliki akun Cloudflare, silahkan daftar dahulu disini.
Login dan tambahkan domain yang anda miliki kedalam service Cloudflare.
Pastikan Nameserver untuk domain anda sudah diganti dari domain panel
mengarah ke nameserver yang diberikan oleh Cloudflare saat menambahkan
domain tadi. Dari menu DNS di cloudflare, tambahkan sebuah A record
dengan nama yang nantinya akan bisa diakses, misal dinamik.yourdomain.tld maka isikan parameter sebagai berikut :
name : dinamik type : A value : 123.123.123.123
Jika anda ingin jaringan, service atau perangkat dirumah bisa diakses menggunakan TLD misal saat mengakses yourdomain.tld, maka buat sebuah record lagi dengan parameter :
name : yourdomain.tld type : CNAME Value : dinamik.yourdomain.tld
- Buka menu My Profile di pojok kanan halaman Cloudflare, dan cari bagian API key, kemudian klik tombol View API Key untuk Global API Key dan salin/copy.
- Buka/buat akun DNS-O-Matic, dan tambahkan service, pilih service Cloudflare. Isikan parameter sebagai berikut :
Email : <login cloudflare> API Token : <Global API key> Hostname : dinamik Domain : yourdomain.tld
- Buka winbox, dan buat sebuah interface PPP-Client isikan :
name: pppoe-out1 interface : ether1 user : 12345678910@telkom.net password : add default route : yes Default route distance : 0
- Buat sebuah script :
name : dnsomatic policy : all kecuali dude dan romon script :
# DNS-O-Matic automatic DNS updates #--------------- Rubah parameter dibawah ini------------------ # User account info DNS-O-Matic :local maticuser "email dnsomatic" :local maticpass "password dnsomatic" # Set the hostname or label of network to be updated. This is the part after the double colon (::) on the DNS-O-Matic 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 "dinamik" # Change to the name of interface that gets the changing IP address :local inetinterface "pppoe-out1" #------------------------------------------------------------------------------------ # No more changes need :global previousIP; :if ([/interface get $inetinterface value-name=running]) do={ # Get the current IP on the interface :local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address]; # Strip the net mask off the IP 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 "DNS-O-Matic: 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 "DNS-O-Matic: Sending update for $host" /tool fetch url=($url . "&hostname=$host") user=$maticuser password=$maticpass mode=http dst-path=("dnsomaticupdate-" . $host . ".txt") :log info "DNS-O-Matic: Host $host updated on DNS-O-Matic with IP $currentIP" } } else={ # :log info "DNS-O-Matic: Previous IP $previousIP and current IP equal, no update need" } } else={ :log info "DNS-O-Matic: $inetinterface is not currently running, so therefore will not update." }
- Buka scheduler, buat sebuah schedule yang akan menjalankan script dnsomatic diatas setiap menit.
name : dns-o-matic start date : Okt/29/2017 Start time : 12:00:00 Interval : 00:01:00 On Event : dnsomatic
- Ada kalanya script dnsomatic diatas
tidak bekerja karena gagal update sebelumnya, dan tidak akan merubah ip
dinamik sampai ip tersebut (pppoe-out1) berubah. Maka perlu menjalankan
sebuah script lain untuk memaksa perubahan IP.
:global previousIP; :set previousIP "" :log info "Cleared previousIP to force DNS-O-Matic update on next run."
- Silahkan coba untuk melakukan dial
pppoe, dan saat terkoneksi tunggu beberapa saat sampai script dnsomatic
berjalan, dan perhatikan log mikrotik. Jika script dan setting pada
DNS-O-Matic berjalan dengan benar, maka akan muncul Log seperti berikut :
DNS-O-Matic: Update needed DNS-O-Matic: Sending update for dinamik fetch: file "dnsomaticupdate-dinamik.txt" downloaded DNS-O-Matic: Host dinamik updated on DNS-O-Matic with IP xx.xy.yy.yz
Buka kembali akun Cloudflare, dan cek A record untuk host dinamik, apakah sudah menggunakan IP yang baru xx.xy.yy.yz sama seperti ip address yang diperoleh interface pppoe-out1 dari server Indihome - Untuk memastikan bahwa setting anda sudah sesuai dengan harapan, anda bisa melakukan cek nslookup atau dig dari command line/prompt atau bisa juga menggunakan layanan online seperti network-tools.com dengan memasukkan host dinamik.yourdomain.tld, jika hasil resolve sesuai dengan ip address IndiHome yang ada pada interface pppoe-out1 mikrotik maka dipastikan, jaringan anda sudah bisa diakses dari publik menggunakan hostname atau domain yang kita inginkan. Selanjutnya anda tinggal menambahkan NAT maupun port forwading pada mikrotik untuk me-metakan berbagai service yang anda miliki dirumah
Ada cara yang lebih praktis gak?
Ada doong.. bagi yang gak pingin ribet
pake script update, DNS-O-Matic dan cloudflare tapi tetep pengen remote
atau akses jaringan yang pakai ip publik dinamik menggunakan domain
sendiri, cukup memanfaatkan fitur IP Cloud yang ada di
routerboard MikroTik dan domain panel yang agan pakai (hanya berlaku di
MikroTik routerboard ya, x86 belum bisa). Caranya :
- Buka winbox dan aktifkan fitur IP Cloud, setelah dapat mendapatkan alamat DNS Name, copy alamatnya (formatnya serialnumber.sn.mynetname.net)
- Buka domain panel atau domain
management (bawaan registrar ataupun menggunakan layanan seperti
Cloudflare), dan buat sebuah CNAME record dengan parameter :
Type : CNAME name : dinamik domain : serialnumber.sn.mynetname.net TTL : 600s
Dengan setting diatas maka jaringan kita dapat diakses dengan alamat dinamik.yourdomain.tld, namun jika menginginkan akses yourdomain.tld langsung, maka anda harus menghapus A record untuk yourdomain.tld, dan parameter name pada CNAME diatas di isikan “yourdomain.tld”
catatan :
Cloudflare : Adalah sebuah layanan DNS Manager dan Content Delivery Network atau CDN. Dengan DNS Manager anda dapat menambah dan menghapus DNS record sesuai kebutuhan, sedangkan CDN memungkinkan konten yang anda miliki tersebar diseluruh jaringan server yang dimiliki oleh Cloudflare dan saat ada permintaan akses, maka akan diambilkan dari server terdekat sehingga waktu akses menjadi lebih cepat
Cloudflare : Adalah sebuah layanan DNS Manager dan Content Delivery Network atau CDN. Dengan DNS Manager anda dapat menambah dan menghapus DNS record sesuai kebutuhan, sedangkan CDN memungkinkan konten yang anda miliki tersebar diseluruh jaringan server yang dimiliki oleh Cloudflare dan saat ada permintaan akses, maka akan diambilkan dari server terdekat sehingga waktu akses menjadi lebih cepat
DNS-O-Matic
: DNS-O-Matic memberi Anda cara mudah dan gratis untuk mengumumkan
perubahan IP dinamis Anda ke beberapa layanan dengan cukup satu kali
update.
DNS Record : merupakan
sebuah catatan yang berisi pemetaan dan peng-alamatan sebuah domain,
dimana terdiri dari beberapa macam diantaranya A, AAAA, MX, CNAME, TXT,
dll.
A Record : catatan DNS
berisi alamat IP yang menunjukkan letak server dari sebuah nama domain
atau subdomain, dimana saat nama domain atau subdomain diakses, maka DNS
server akan mengarahkan ke ip address yang terekam dalam A record
tersebut.
Sumber: https://ndra16.my.id/2017/10/setting-mikrotik-dns-o-matic-dan-cloudflare-untuk-indihome/#more-727
Sumber: https://ndra16.my.id/2017/10/setting-mikrotik-dns-o-matic-dan-cloudflare-untuk-indihome/#more-727