Mengatasi IP Private Indihome
Apabila Anda memiliki sebuah Web Server, atau aplikasi-aplikasi
pada jaringan LAN dan Anda ingin supaya Website atau applikasi tersebut dapat
diakses melalui internet maka tentu saja Anda harus memiliki sebuah IP Publik dan
melakukan Forwarding/DST NAT dari router ke web server atau
applikasi server tersebut sehingga Website dan aplikasi tersebut bias diakses
dari internet. Untuk mendapatkan IP Publik ini Anda harus berlangganan internet
dari sebuah ISP, seperti Telkom dan yang lainnya.
Untuk IP publik yang statik maka Anda bias dengan mudah mengakses website
atau aplikasi tersebut dari internet, dengan cara memanggil langsung IP Publik
statik yang Anda miliki. Adapun jika IP Publik yang anda dapatkan bersipat
dinamis yang selalu berubah-ubah maka anda bias menggunakan layanan DDNS untuk
mengatasi perubahan IP Publik yang dinamis ini. Namun adakalanya untuk IP
Publik yang dinamis ini Anda malah akan mendapatkan IP Private akibatnya
website dan applikasi yang Anda miliki tidak akan bisa diakses walaupun anda
menggunakan DDNS !! Untuk penjelasan IP Publik dan IP Private bisa anda baca
pada tulisan sana di link ini. Oleh karena itu pada tulisan kali ini akan
dibahas cara menangani IP Private yang didapatkan oleh router Anda dari ISP
tersebut.
Salah satu IPS yang banyak dimanfaatkan layanan internet nya saat
ini adalah Telkom, penulis juga menggunakan layanan internet dari Telkom untuk
mendapatkan IP Publik ini. Tapi seperti ulasan sebelumnya, sering sekali router
pada tempat penulis mendapatkan IP Private yang mana seharusnya mendapatkan IP
Publik. Sebenarnya cukup mudah untuk mengatasi hal ini, tinggal restart saja
modem/router yang anda miliki (dengan asumsi anda juga menggunakan layanan
Telkom) sampai Anda kembali mendapatkan IP Publik. Tapi apakah Anda sanggup
untuk me-restart modem tersbut puluhan kali dalam satu hari jika dalam hari itu
Anda mendapatkan IP Private berkali – kali ?? dari pengalaman saya sendiri hal
ini cukup melelahkan…
Oleh karena itu, kalau kita sudah mengetahui solusinya bagaimana
yaitu dengan merestart modem router nya, maka selanjutnya kita tinggal cari
cara bagaimana setiap router mendapatkan IP Private router tersebut akan
merestart dirinya sendiri atau men-disable dan enable kembali interface
tempat tertanamnya IP Private (yang seharusnya IP Publik) tersebut. Jika Anda
hanya menggunakan modem standar bawaan Telkom, tentu saja auto restart/disable interface
ini tidak bisa dilakukan. Untuk itu Anda perlu menggunakan router lain seperti router
mikrotik. Anda bisa baca pada tulisan tentang cara untuk memasang dan
setting router mikrotik pada Indihome nya Telkom pada link ini.
#Email Params:local from [/tool e-mail get user];
:local toList {"syakir.jbgroup@gmail.com"};
:local sendEmail 0; # 1=Enable 0=Disable
#Telegram Params
:local botAPI "760495160:AAFEOmP6WZ_qs3vhZjng0ADkYd6Z1Qrfe14"; #API RouterMikrotikBot
:local chatID {"412874053";};
:local sendTelegram 1; # 1=Enable 0=Disable
#Interface Params
:local PPPoEInterfaceList {"PPPoE-ISP1";};
#Declare Variable
:local LastIP "";
:local LastCharacter 0;
:local currentIP "";
:local checkIP "";
:local Message "";
:local DNSName "";
:local DNSStatus "";
:local DNSAddress "";
:local xdate [/system clock get date];
:local xtime [/system clock get time];
:foreach PPPoEInterface in=$PPPoEInterfaceList do={
#Find LastIP
foreach i in=([/log find where message~"LastIP_$PPPoEInterface"]) do={
:set $LastIP [/log get $i message];
}
:set $LastCharacter ([:find $LastIP ":" -1]);
:set $LastCharacter ($LastCharacter + 1);
:set $LastIP [:pick $LastIP $LastCharacter 50];
#Find CurrentIP
:set currentIP [/ip address get [find interface="$PPPoEInterface"] address];
:set currentIP [:pick $currentIP 0 [:find $currentIP "/" -1]];
:set checkIP [:pick $currentIP 0 [:find $currentIP "." -1]];
#Jika mendapatkan IP Private
:if ($checkIP = "10") do={
/log info "LastIP_$PPPoEInterface:$currentIP";
:delay 10s;
/log error "$PPPoEInterface connection restored with assigned ip address $currentIP. Restarting Connection ...";
#sendMessage to Email
:if ($sendEmail = "1") do={
:foreach to in=$toList do={
/tool e-mail send to="$to" from="$[/system identity get name] <$from>" subject="$[/system identity get name] $PPPoEInterface Status" \
body="$PPPoEInterface connection restored with assigned ip address $currentIP. Restarting Connection ..."
}
}
#sendMessage to Telegram
:if ($sendTelegram = "1") do={
:set Message "<b>.: $[/system identity get name] :.</b> %0A$PPPoEInterface connection restored with assigned ip address $currentIP. %0A<b>Restarting Connection ...</b> %0A%0A$xdate | $xtime WIB"
:foreach SendingChatID in=$chatID do={
/tool fetch "https://149.154.167.220/bot$botAPI/sendMessage?chat_id=$SendingChatID&parse_mode=HTML&text=$Message" keep-result=no
}
}
:delay 10s;
/interface pppoe-client disable $PPPoEInterface;
:delay 10s;
/interface pppoe-client enable $PPPoEInterface;
} else={
#Jika LastIP = currentIP hanya menambahkan log
if ("$LastIP" = "$currentIP") do={
/log info "LastIP_$PPPoEInterface:$currentIP";
/ip cloud force-update;
} else={
#Jika mendapatkan sudah mendapatkan IP Public
/log info "LastIP_$PPPoEInterface:$currentIP";
:delay 10s;
/ip cloud force-update;
:delay 30s;
:set DNSName [/ip cloud get dns-name];
:set DNSStatus [/ip cloud get status];
:set DNSAddress [/ip cloud get public-address];
/log warning "$PPPoEInterface connection restored with assigned ip address $currentIP. (DDNS Status: $DNSStatus | $DNSName)";
#sendMessage to Email
:if ($sendEmail = "1") do={
:foreach to in=$toList do={
/tool e-mail send to="$to" from="$[/system identity get name] <$from>" subject="$[/system identity get name] $PPPoEInterface Status" \
body="$PPPoEInterface connection restored with assigned ip address $currentIP. (DDNS Status: $DNSStatus | $DNSName)";
}
}
#sendMessage to Telegram
:if ($sendTelegram = "1") do={
:set Message "<b>.: $[/system identity get name] :.</b> %0A$PPPoEInterface connection restored with assigned ip address $currentIP. %0A%0A<b>.: IP Cloud Information :.</b>%0AStatus: $DNSStatus %0APublic Address: $DNSAddress %0ADNS Name: $DNSName %0A%0A$xdate | $xtime WIB"
:foreach SendingChatID in=$chatID do={
/tool fetch "https://149.154.167.220/bot$botAPI/sendMessage?chat_id=$SendingChatID&parse_mode=HTML&text=$Message" keep-result=no
}
}
}
}
#Clear Variable Before Next Interface
:set LastIP "";
:set LastCharacter 0;
:set currentIP "";
:set checkIP "";
:set Message "";
:set DNSName "";
:set DNSStatus "";
:set DNSAddress "";
}
Pada script diatas, ada 3 parameter yang perlu diperhatikan yaitu :
·
Parameter
Email
Parameter ini akan digunakan untuk memasukkan informasi dari email
yang anda gunakan. Setiap kali ada perubahan IP Publik pada router Anda, maka
router akan menginformasikan kepada Anda melalui email tersebut.
![]() |
Parameter Email |
Namun untuk menggunakan fitur email ini, pastikan email Anda sudah
tertanam pada router mikrotik nya ya.
·
Parameter
Telegram
Selain
notifikasi melalui email, perubahan IP Publik pada router Anda juga bisa
dikirimkan notifkasinya melalui telegram.
![]() |
Parameter Telegram |
·
Parameter
Interface
Ini merupakan parameter yang terpenting, karena script tersebut
akan mendeteksi berapa IP Publik yang didapatkan oleh router pada interface
ini. Oleh karena itu, penamaan interface ini harus sesuai dengan nama interface
pada router mikrotik Anda.
![]() |
Parameter Interface |
Adapun 2 parameter sebelumnya itu bisa di disable.
Setelah Anda selesai copy script diatas, maka langkah seluanjutnya
adalah
·
Membuat
Script
Buat script baru melalui winbox, yaitu melalui menu system →
Script, seperti tampak pada gambar dibawah ini.
![]() |
Membuat Script |
Simpan script tersebut, kemudian script tersebut kita panggil dari
interface yang mendapatkan IP Publik yaitu pada tab menu Scripts
masukkan perintah seperti tampak pada gambar dibawah ini.
![]() |
Aktifkan Script |
Demikian cara mengatasi IP Private ini menggunakan router mikrotik,
apabila terdeteksi IP Private yang didaptakan dari Telkom maka interface yang
mendapatkan IP Private tersebut akan di disable secara otomatis dan akan di
enable kan kembali. Hal ini terus menerus akan dilakukan sampai router Anda
mendapatkan IP Publik.
![]() |
Hasil |
Wah harus punya mikrotik ya?
ReplyDeleteKalau Dari penjelasan nya sih harus punya router mikrotik.... Kecuali router2 bawaan telkom bisa dipasangkan script/Ada feature restart modem pas dpt up ga public.
Deletekalau ip privatnya di disable apakah akan mempengaruhi koneksi internet ?, misalkan satu jaringan itu banyak user yang mengakses dari satu modem itu , apakah user lain akan pengaruh ?
ReplyDelete, terimakasih sebelumnya artikelnya sangat bagus
Jika IP Private nya di disable maka koneksi internet untuk semua user yg tersambung pada modem itu akan terputus. Karna pd dasarnya IP Private/IP Public yg ada pd modem itu dipakai bersama oleh semua user. Terimakasih...
DeleteMikrotik versi berapa yang digunakan, saya coba di mMikrotik versi 6.46.6 tidak sub tab script di interface PPPoE Client.
ReplyDeleteVersi 6.46.6 juga bisa Pak, tab menu script tersebut coba cek di profile PPP yg digunakan. biasanya di profile yg dikasih nama default, kecuali Anda menggunakan profile PPP yg lain.
DeleteTerima kasih sudah berkunjung Pak...
gimana caranya biar modem zte f609 gk auto connect indihome saat restart gan ,, udah di set on demand tetap aja klo restart otomatis konek ,, jdinya gk bisa PPOE krna sudah konek duluan modemnya..
ReplyDeleteMaaf Gan, mngkn bisa di screenshot dlu konfig nya ? Saya coba pelajari terlebih dahulu.
DeleteSebenarnya tidak perlu menggunakan script tinggal rubah aja dari modem Indihome menjadi bridge jadi IP publik kita tanam langsung ke mikrotik beres
ReplyDelete..
Alhamdulillah.... Dapat ilmu baru saya... Terimakasih..
Deletecaranya gimana itu gan?
DeleteApakah semua router mikrotik bisa menggunakan trik ini? Ada rekomendasi model routernya?
ReplyDeleteSemua model router mikrotik bisa pakai trik ini. Adapun untuk model router Mikrotik nya tergantung kebutuhan, berapa jumlah klien yg mau konek internet, berapa jumlah bandwidth yg akan ditangani...
DeleteMas kalau pelanggan indihome rumahan apakah bisa mendapatkan ip statis atau dedicated ip?
ReplyDeleteSepertinya ga bisa Pak...
ReplyDelete