Script Memindahkan NetworkID/Prefix dari BGP ke IP Firewall Address-List

Terkadang ada 1 router Mikrotik ada 2 link dan salah satu link ada 2 jalur IX dan IIX menggunakan BGP seperti yang saya alami sekarang ini, kendalanya ketika membuat mangle-mark routing table untuk dst-address yang harus sesuai dengan routing BGP.

Namun disini tidak membicarakan config loadbalance-nya, untuk pembicaraan loadbalance-nya akan di tulis next-time…

Buat schedule per setiap brapa lama script berjalan, mengingat perubahan BGP tidak terlalu sering, bisa dibuat 1 hari sekali. Berikut script untuk memindahkan IP Network dari Route BGP ke dalam Address-List…

#masukkan parameter Peering BGP dan nama address-list
:local ipPeering www.xxx.yyy.zzz;
:local ipList ixNet;

:local ipGateway;

:local routeSize [/ip route print count-only];
:local listSize [/ip firewall address-list print count-only];

:local i 0;
:local j 0;
:local checkIP 0;

#tambahkan address list
:for i from=0 to=$routeSize step=1 do={
:set $ipGateway [/ip route get $i gateway];
:set $ipAddress [/ip route get $i dst-address];
:set $checkIP [/ip firewall address-list print count-only where address=$ipAddress list=$ipList];
:if ($checkIP=0) do={:if ($ipAddress=0.0.0.0/0) do={:set $checkIP 2}}
:if ($checkIP=0) do={:if ($ipGateway!=$ipPeering) do={:set $checkIP 2}}
:if ($checkIP=0) do={/ip firewall address-list add list=$ipList address=$ipAddress;}
}

#hapus address list
:for j from=0 to=$listSize step=1 do={
:set $ipAddress [/ip firewall address-list get $j address];
:set $checkIP [/ip route print count-only where dst-address=$ipAddress gateway=$ipPeering];
:if ($checkIP=0) do={/ip firewall address-list remove [find address=$ipAddress];}
}