37 lines
3.0 KiB
Plaintext
37 lines
3.0 KiB
Plaintext
/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"; \
|
|
}
|