/system/script remove [find name="bgp_lokal_export"] /system/script add name=bgp_lokal_export dont-require-permissions=yes source={ \ :local startTime [/system clock get time]; :local startDate [/system clock get date]; :log info "BGP Export [$startDate $startTime]: mulai..."; /ip firewall address-list remove [find list="bgp-export"]; \ :local cnt 0; \ \ # Iterasi distance=15 (CDN) - pecah per prefix /8 untuk menghindari limit array ~8192 RouterOS \ :foreach pref in={1;2;5;10;14;17;23;27;31;36;42;43;45;49;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;100;101;102;103;104;105;106;107;108;109;110;111;112;113;114;115;116;117;118;119;120;121;122;123;124;125;126;127;128;129;130;131;132;133;134;135;136;137;138;139;140;141;142;143;144;145;146;147;148;149;150;151;152;153;154;155;156;157;158;159;160;161;162;163;164;165;166;167;168;169;170;171;172;173;174;175;176;177;178;179;180;181;182;183;184;185;186;187;188;189;190;191;192;193;194;195;196;197;198;199;200;201;202;203;204;205;206;207;208;209;210;211;212;213;214;215;216;217;218;219;220;221;222;223;224;225;226;227;228;229;230;231;232;233;234;235;236;237;238;239;240;241;242;243;244;245;246;247;248;249;250;251;252;253;254;255} do={ \ :local subnet ($pref . ".0.0.0/8"); \ :foreach r in=[/routing/route find where distance=15 dst-address~("^" . $pref . "\\.")] do={ \ :local dst [/routing/route get $r dst-address]; \ :if ($dst != "0.0.0.0/0" && $dst != "::/0") do={ \ /ip firewall address-list add list="bgp-export" address=$dst; \ :set cnt ($cnt + 1); \ }; \ }; \ }; \ :log info "BGP Export: CDN selesai ($cnt)"; \ \ # Iterasi distance=200 (IIX Lokal) - pecah per prefix /8 \ :foreach pref in={1;2;5;10;14;17;23;27;31;36;42;43;45;49;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;100;101;102;103;104;105;106;107;108;109;110;111;112;113;114;115;116;117;118;119;120;121;122;123;124;125;126;127;128;129;130;131;132;133;134;135;136;137;138;139;140;141;142;143;144;145;146;147;148;149;150;151;152;153;154;155;156;157;158;159;160;161;162;163;164;165;166;167;168;169;170;171;172;173;174;175;176;177;178;179;180;181;182;183;184;185;186;187;188;189;190;191;192;193;194;195;196;197;198;199;200;201;202;203;204;205;206;207;208;209;210;211;212;213;214;215;216;217;218;219;220;221;222;223;224;225;226;227;228;229;230;231;232;233;234;235;236;237;238;239;240;241;242;243;244;245;246;247;248;249;250;251;252;253;254;255} do={ \ :foreach r in=[/routing/route find where distance=200 dst-address~("^" . $pref . "\\.")] do={ \ :local dst [/routing/route get $r dst-address]; \ :if ($dst != "0.0.0.0/0" && $dst != "::/0") do={ \ /ip firewall address-list add list="bgp-export" address=$dst; \ :set cnt ($cnt + 1); \ }; \ }; \ }; \ :local endTime [/system clock get time]; :local endDate [/system clock get date]; :log info "BGP Export [$endDate $endTime]: selesai total $cnt rute"; \ }