[Mikrotik] Auto redial PPPoE jika mendapat IP privat/lokal agar mendapat IP Public menggunakan script (INDOMIE)

Bagi pelanggan indi*ome, untuk terkoneksi ke internet ip wan yang digunakan bisa berupa ip private/lokal atau ip public yg diberikan secara acak oleh system. Cara ini mungkin di lakukan oleh Telkom karena keterbatasan alokasi IPv4 milik mereka yang sekarang (mungkin) sudah mulai running out atau habis karena semakin meningkatnya jumlah pelanggan.

Jika pelanggan mendapatkan IP Private/lokal maka pelanggan yang menggunakan aplikasi self-hosted pribadi (misalnya akses ke DVR CCTV, webserver, dan sebagainya) akan sulit mengaksesnya, karena posisinya ada berada di dalam NAT dan Telkom tidak menyediakan fasilitas port forward untuk pelanggan yang mendapatkan IP Private/Local tersebut kecuali menggunakan tunnel ataupun cloud.

Berbeda jika pelanggan mendapatkan IP Public, maka pelanggan akan mudah dapat mengakses aplikasi self-hosted pribadi yang mereka miliki secara langsung/direct.

Untuk mendapatkan IP Public bagi pelanggan indi*ome sebenarnya cuma cukup restart modem jika dial PPPOE dilakukan oleh modem, restart sampai mendapatkan ip public. Sedangkan untuk yang menggunakan mikrotik dan dial dilakukan oleh si mikrotik, cukup disable-enable interface PPPoE agar melakukan dial ulang sampai dapat ip public juga.

Jika kita menggunakan MikroTik yang melakukan koneksi PPPoE ke Indi*ome, kita dapat menggunakan script untuk mendeteksi apakah ip yang didapatkan ip private atau ip public dan melakukan redial. Script dapat di letakkan pada bagian on-up pada profile PPP atau pada schedule mikrotik karena kita tidak mungkin memantaunya terus menerus, berikut pembahasannya

A. Script on-up pada profile PPP

Fitur on-up script hanya tersedia pada Mikrotik versi 6.33 ke atas, yang mana fungsinya kurang lebih untuk menjalankan script ketika mikrotik melakukan dial dan terkoneksi. Langsung saja kita lanjutkan langkah langkahnya :

1. Buat profile PPP baru.

PPP -> Profiles


Copy paste kan saja script dibawah ini pada tab script bagian on-up, jangan lupa bagian "pppoe-out1" di ubah menyesuaikan nama interface yang melakukan dial PPPoE, kebetulan di tempat saya bernama "pppoe-out1".

:local PPPOEINTERFACE
:set PPPOEINTERFACE pppoe-out1

:log warning "Proses Cek IP..."
:while ([/ping 8.8.4.4 count=1] != 1) do={:delay 0.2}
:local IPWAN [/ip address get [find where interface=$PPPOEINTERFACE] address];
:set IPWAN [:pick $IPWAN 0 ([:len $IPWAN]-3) ];

:if ($IPWAN ~"^[0-9 ]*10") do={
:log warning "Terdeteksi IP Private !!!"
:log warning "IP address anda  $IPWAN"
:log warning "Reconnecting......"
/interface pppoe-client disable $PPPOEINTERFACE
:delay 3
/interface pppoe-client enable $PPPOEINTERFACE
} else={

:if ($IPWAN ~"^[0-9 ]*172") do={
:log warning "Terdeteksi IP Private !!!"
:log warning "IP address anda $IPWAN"
:log warning "Reconnecting......"
/interface pppoe-client disable $PPPOEINTERFACE
:delay 3
/interface pppoe-client enable $PPPOEINTERFACE
} else={
:if ($IPWAN ~"^[0-9 ]*192") do={
:log warning "Terdeteksi IP Private !!!"
:log warning "IP address anda $IPWAN"
:log warning "Reconnecting......"
/interface pppoe-client disable $PPPOEINTERFACE
:delay 3
/interface pppoe-client enable $PPPOEINTERFACE
} else={

:log warning "Selamat!!!, Terdeteksi IP Public !!!"
:log warning "IP address anda $IPWAN"
}
}
}

2. Ubah Profile PPP pada interface PPPoe


B. Dengan Menggunakan Scheduler Mikrotik

Buat Schedule baru pada mikrotik:


Bagian Interval berfungsi agar script dijalankan tiap berapa menit, jam atau detik. Pada contoh diatas script dijalankan setiap 10 menit sekali.

Copy paste kan saja script dibawah, pada bagian On Event jangan lupa bagian "pppoe-out1" di ubah menyesuaikan nama interface yang melakukan dial PPPoE, kebetulan di tempat saya bernama "pppoe-out1".

Script dibawah sepintas sama dengan yg sebelumnya, tapi jika dicermati akan tampak perbedaannya (Serupa tapi tak sama).

:local PPPOEINTERFACE
:set PPPOEINTERFACE pppoe-out1
:local counter 20
:local progress 0
:local pilihan true

:log warning "Proses Cek IP..."
:if ([/ping 8.8.4.4 count=1] != 1) do={
:set pilihan false
:log info "Internet Offline..."
}
:while (($counter < $progress) && ($pilihan)) do={
:set pilihan false
:local IPWAN [/ip address get [find where interface=$PPPOEINTERFACE] address];
:set IPWAN [:pick $IPWAN 0 ([:len $IPWAN]-3) ];
:if ($IPWAN ~"^[0-9 ]*10") do={
:set pilihan true
:log warning "Terdeteksi IP Private !!!"
:log warning "IP address anda  $IPWAN"
:log warning "Reconnecting......"
/interface pppoe-client disable $PPPOEINTERFACE
:delay 3
/interface pppoe-client enable $PPPOEINTERFACE
:set progress ($progress + 1)
} else={

:if ($IPWAN ~"^[0-9 ]*172") do={
:set pilihan true
:log warning "Terdeteksi IP Private !!!"
:log warning "IP address anda $IPWAN"
:log warning "Reconnecting......"
/interface pppoe-client disable $PPPOEINTERFACE
:delay 3
/interface pppoe-client enable $PPPOEINTERFACE
:set progress ($progress + 1)
} else={
:if ($IPWAN ~"^[0-9 ]*192") do={
:set pilihan true
:log warning "Terdeteksi IP Private !!!"
:log warning "IP address anda $IPWAN"
:log warning "Reconnecting......"
/interface pppoe-client disable $PPPOEINTERFACE
:delay 3
/interface pppoe-client enable $PPPOEINTERFACE
:set progress ($progress + 1)
} else={
:set pilihan false
:log warning "Selamat!!!, Terdeteksi IP Public !!!"
:log warning "IP address anda $IPWAN"
}
}
}
}

Demikian Sharing saya kali ini, semoga bermanfaat, terimakasih...

Komentar

  1. terimakasi bro atas ilmunya, mau nanya apa script A & B di gunakan sekaligus dlm mikrotik apa pake salah satunya saja. maaf masih belajar.

    BalasHapus

Archive

Formulir Kontak

Kirim