Ceritanya begini. Saya ingin mengakses sebuah website dibelakang router. Kalau IP Publicnya static ga masalah, tapi kalau ip publiknya dynamic baru bermasalah, soalnya kalau akses ke IP dynamic tersebut bisa saja kita gagal masuk ke website kita, karena ip nya telah berubah.

Untuk mengatasi seperti kejadian diatas, berikut saya copykan scrip yang berasal dari http://www.forummikrotik.com/general-networking/16593-port-forwarding-dengan-ip-dynamic.html. Berikut penggealanya.

Buat dulu rule nat-nya, yg terpenting sertakan comment yg unik sbg flag, misal:

/ip firewall nat add
add action=dst-nat chain=dstnat disabled=no dst-address=202.xxx.xxx.xxx \
dst-port=xxx protocol=tcp to-addresses=192.168.xxx.xxx to-ports=xxx \
comment=”Dinamic Port Forwarding”

Setelah itu bikin script yang isinya :

:global oldip
:local newip
:local iplen

:if ([:len $oldip]=0) do={
/ip address
:set iplen [:len [get [find interface=eth-xxx] address]]
:set oldip [:pick [get [find interface=eth-xxx] address] 0 ($iplen-3)]
}

/ip address
:set iplen [:len [get [find interface=eth-xxx address]]
:set newip [:pick [get [find interface=eth-xxx] address] 0 ($iplen-3)]

:if ($newip!=$oldip) do={
:set oldip $newip
/ip firewall nat
set [find comment=”Dinamic Port Forwarding”] dst-address=$newip
:log error (“Got a new IP address: ” . $oldip)
}

Atau bisa juga yg ini (yang ini jalan di router saya)

:local newip
:local iplen

/ip address
:set iplen [:len [get [find interface=eth-xxx] address]]
:set newip [:pick [get [find interface=eth-xxx] address] 0 ($iplen-3)]

/ip firewall nat
set [find comment=”Dinamic Port Forwarding”] dst-address=$newip

Sesuaikan semua parameter yang ada dengan kondisi jaringan disitu. Kalau sudah silahkan running script. Jangan lupa buat scheduler, terserah mau jalaninya gimana.