Генератор CGNAT для MikroTik RouterOS

Калькулятор CGNAT, генератор CGNAT для MikroTik, калькулятор портовых блоков netmap, скрипт CGNAT для RouterOS — слова разные, задача одна: посчитать, сколько абонентов помещается за каждым публичным адресом, решить, какие исходные порты кому достаются, и записать правила /ip firewall nat, которые это закрепляют. Mikro Manager делает обе половины. Укажите приватный диапазон, публичный префикс и число клиентов на адрес — и он сгенерирует правила netmap, цепочки переходов и, если нужно, blackhole-маршрут: как план, который вы утверждаете до любой записи, или как скрипт .rsc, который вставите сами.

Пул рассчитывается в вашем браузере. Ничего из введённого никуда не отправляется — отправлять попросту некуда. Правила написаны для RouterOS 7.

Приватное пространство 100.64.0.0/22
Блоки
32
Приватные адреса
1 024
Портов на клиента
2 016
Правила
133
cgnat1.rsc
# Mikro Manager — pool "cgnat1"
# 100.64.0.0/22 -> 203.0.113.0/27 · 32 blocks · ports 1024-65535
# Rules are tagged with mikro: comments; edit the pool in Mikro Manager, not by hand.

/ip firewall nat
add chain=cgnat1_b0 action=netmap protocol=tcp src-address=100.64.0.0/27 to-addresses=203.0.113.0/27 to-ports=1024-3039 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=0;proto=tcp"
add chain=cgnat1_b0 action=netmap protocol=udp src-address=100.64.0.0/27 to-addresses=203.0.113.0/27 to-ports=1024-3039 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=0;proto=udp"
add chain=cgnat1_b0 action=netmap src-address=100.64.0.0/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=0;proto=other"
add chain=cgnat1_b1 action=netmap protocol=tcp src-address=100.64.0.32/27 to-addresses=203.0.113.0/27 to-ports=3040-5055 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=1;proto=tcp"
add chain=cgnat1_b1 action=netmap protocol=udp src-address=100.64.0.32/27 to-addresses=203.0.113.0/27 to-ports=3040-5055 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=1;proto=udp"
add chain=cgnat1_b1 action=netmap src-address=100.64.0.32/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=1;proto=other"
add chain=cgnat1_b2 action=netmap protocol=tcp src-address=100.64.0.64/27 to-addresses=203.0.113.0/27 to-ports=5056-7071 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=2;proto=tcp"
add chain=cgnat1_b2 action=netmap protocol=udp src-address=100.64.0.64/27 to-addresses=203.0.113.0/27 to-ports=5056-7071 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=2;proto=udp"
add chain=cgnat1_b2 action=netmap src-address=100.64.0.64/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=2;proto=other"
add chain=cgnat1_b3 action=netmap protocol=tcp src-address=100.64.0.96/27 to-addresses=203.0.113.0/27 to-ports=7072-9087 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=3;proto=tcp"
add chain=cgnat1_b3 action=netmap protocol=udp src-address=100.64.0.96/27 to-addresses=203.0.113.0/27 to-ports=7072-9087 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=3;proto=udp"
add chain=cgnat1_b3 action=netmap src-address=100.64.0.96/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=3;proto=other"
add chain=cgnat1_b4 action=netmap protocol=tcp src-address=100.64.0.128/27 to-addresses=203.0.113.0/27 to-ports=9088-11103 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=4;proto=tcp"
add chain=cgnat1_b4 action=netmap protocol=udp src-address=100.64.0.128/27 to-addresses=203.0.113.0/27 to-ports=9088-11103 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=4;proto=udp"
add chain=cgnat1_b4 action=netmap src-address=100.64.0.128/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=4;proto=other"
add chain=cgnat1_b5 action=netmap protocol=tcp src-address=100.64.0.160/27 to-addresses=203.0.113.0/27 to-ports=11104-13119 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=5;proto=tcp"
add chain=cgnat1_b5 action=netmap protocol=udp src-address=100.64.0.160/27 to-addresses=203.0.113.0/27 to-ports=11104-13119 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=5;proto=udp"
add chain=cgnat1_b5 action=netmap src-address=100.64.0.160/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=5;proto=other"
add chain=cgnat1_b6 action=netmap protocol=tcp src-address=100.64.0.192/27 to-addresses=203.0.113.0/27 to-ports=13120-15135 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=6;proto=tcp"
add chain=cgnat1_b6 action=netmap protocol=udp src-address=100.64.0.192/27 to-addresses=203.0.113.0/27 to-ports=13120-15135 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=6;proto=udp"
add chain=cgnat1_b6 action=netmap src-address=100.64.0.192/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=6;proto=other"
add chain=cgnat1_b7 action=netmap protocol=tcp src-address=100.64.0.224/27 to-addresses=203.0.113.0/27 to-ports=15136-17151 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=7;proto=tcp"
add chain=cgnat1_b7 action=netmap protocol=udp src-address=100.64.0.224/27 to-addresses=203.0.113.0/27 to-ports=15136-17151 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=7;proto=udp"
add chain=cgnat1_b7 action=netmap src-address=100.64.0.224/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=7;proto=other"
add chain=cgnat1_b8 action=netmap protocol=tcp src-address=100.64.1.0/27 to-addresses=203.0.113.0/27 to-ports=17152-19167 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=8;proto=tcp"
add chain=cgnat1_b8 action=netmap protocol=udp src-address=100.64.1.0/27 to-addresses=203.0.113.0/27 to-ports=17152-19167 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=8;proto=udp"
add chain=cgnat1_b8 action=netmap src-address=100.64.1.0/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=8;proto=other"
add chain=cgnat1_b9 action=netmap protocol=tcp src-address=100.64.1.32/27 to-addresses=203.0.113.0/27 to-ports=19168-21183 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=9;proto=tcp"
add chain=cgnat1_b9 action=netmap protocol=udp src-address=100.64.1.32/27 to-addresses=203.0.113.0/27 to-ports=19168-21183 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=9;proto=udp"
add chain=cgnat1_b9 action=netmap src-address=100.64.1.32/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=9;proto=other"
add chain=cgnat1_b10 action=netmap protocol=tcp src-address=100.64.1.64/27 to-addresses=203.0.113.0/27 to-ports=21184-23199 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=10;proto=tcp"
add chain=cgnat1_b10 action=netmap protocol=udp src-address=100.64.1.64/27 to-addresses=203.0.113.0/27 to-ports=21184-23199 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=10;proto=udp"
add chain=cgnat1_b10 action=netmap src-address=100.64.1.64/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=10;proto=other"
add chain=cgnat1_b11 action=netmap protocol=tcp src-address=100.64.1.96/27 to-addresses=203.0.113.0/27 to-ports=23200-25215 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=11;proto=tcp"
add chain=cgnat1_b11 action=netmap protocol=udp src-address=100.64.1.96/27 to-addresses=203.0.113.0/27 to-ports=23200-25215 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=11;proto=udp"
add chain=cgnat1_b11 action=netmap src-address=100.64.1.96/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=11;proto=other"
add chain=cgnat1_b12 action=netmap protocol=tcp src-address=100.64.1.128/27 to-addresses=203.0.113.0/27 to-ports=25216-27231 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=12;proto=tcp"
add chain=cgnat1_b12 action=netmap protocol=udp src-address=100.64.1.128/27 to-addresses=203.0.113.0/27 to-ports=25216-27231 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=12;proto=udp"
add chain=cgnat1_b12 action=netmap src-address=100.64.1.128/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=12;proto=other"
add chain=cgnat1_b13 action=netmap protocol=tcp src-address=100.64.1.160/27 to-addresses=203.0.113.0/27 to-ports=27232-29247 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=13;proto=tcp"
add chain=cgnat1_b13 action=netmap protocol=udp src-address=100.64.1.160/27 to-addresses=203.0.113.0/27 to-ports=27232-29247 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=13;proto=udp"
add chain=cgnat1_b13 action=netmap src-address=100.64.1.160/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=13;proto=other"
add chain=cgnat1_b14 action=netmap protocol=tcp src-address=100.64.1.192/27 to-addresses=203.0.113.0/27 to-ports=29248-31263 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=14;proto=tcp"
add chain=cgnat1_b14 action=netmap protocol=udp src-address=100.64.1.192/27 to-addresses=203.0.113.0/27 to-ports=29248-31263 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=14;proto=udp"
add chain=cgnat1_b14 action=netmap src-address=100.64.1.192/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=14;proto=other"
add chain=cgnat1_b15 action=netmap protocol=tcp src-address=100.64.1.224/27 to-addresses=203.0.113.0/27 to-ports=31264-33279 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=15;proto=tcp"
add chain=cgnat1_b15 action=netmap protocol=udp src-address=100.64.1.224/27 to-addresses=203.0.113.0/27 to-ports=31264-33279 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=15;proto=udp"
add chain=cgnat1_b15 action=netmap src-address=100.64.1.224/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=15;proto=other"
add chain=cgnat1_b16 action=netmap protocol=tcp src-address=100.64.2.0/27 to-addresses=203.0.113.0/27 to-ports=33280-35295 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=16;proto=tcp"
add chain=cgnat1_b16 action=netmap protocol=udp src-address=100.64.2.0/27 to-addresses=203.0.113.0/27 to-ports=33280-35295 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=16;proto=udp"
add chain=cgnat1_b16 action=netmap src-address=100.64.2.0/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=16;proto=other"
add chain=cgnat1_b17 action=netmap protocol=tcp src-address=100.64.2.32/27 to-addresses=203.0.113.0/27 to-ports=35296-37311 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=17;proto=tcp"
add chain=cgnat1_b17 action=netmap protocol=udp src-address=100.64.2.32/27 to-addresses=203.0.113.0/27 to-ports=35296-37311 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=17;proto=udp"
add chain=cgnat1_b17 action=netmap src-address=100.64.2.32/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=17;proto=other"
add chain=cgnat1_b18 action=netmap protocol=tcp src-address=100.64.2.64/27 to-addresses=203.0.113.0/27 to-ports=37312-39327 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=18;proto=tcp"
add chain=cgnat1_b18 action=netmap protocol=udp src-address=100.64.2.64/27 to-addresses=203.0.113.0/27 to-ports=37312-39327 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=18;proto=udp"
add chain=cgnat1_b18 action=netmap src-address=100.64.2.64/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=18;proto=other"
add chain=cgnat1_b19 action=netmap protocol=tcp src-address=100.64.2.96/27 to-addresses=203.0.113.0/27 to-ports=39328-41343 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=19;proto=tcp"
add chain=cgnat1_b19 action=netmap protocol=udp src-address=100.64.2.96/27 to-addresses=203.0.113.0/27 to-ports=39328-41343 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=19;proto=udp"
add chain=cgnat1_b19 action=netmap src-address=100.64.2.96/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=19;proto=other"
add chain=cgnat1_b20 action=netmap protocol=tcp src-address=100.64.2.128/27 to-addresses=203.0.113.0/27 to-ports=41344-43359 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=20;proto=tcp"
add chain=cgnat1_b20 action=netmap protocol=udp src-address=100.64.2.128/27 to-addresses=203.0.113.0/27 to-ports=41344-43359 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=20;proto=udp"
add chain=cgnat1_b20 action=netmap src-address=100.64.2.128/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=20;proto=other"
add chain=cgnat1_b21 action=netmap protocol=tcp src-address=100.64.2.160/27 to-addresses=203.0.113.0/27 to-ports=43360-45375 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=21;proto=tcp"
add chain=cgnat1_b21 action=netmap protocol=udp src-address=100.64.2.160/27 to-addresses=203.0.113.0/27 to-ports=43360-45375 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=21;proto=udp"
add chain=cgnat1_b21 action=netmap src-address=100.64.2.160/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=21;proto=other"
add chain=cgnat1_b22 action=netmap protocol=tcp src-address=100.64.2.192/27 to-addresses=203.0.113.0/27 to-ports=45376-47391 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=22;proto=tcp"
add chain=cgnat1_b22 action=netmap protocol=udp src-address=100.64.2.192/27 to-addresses=203.0.113.0/27 to-ports=45376-47391 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=22;proto=udp"
add chain=cgnat1_b22 action=netmap src-address=100.64.2.192/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=22;proto=other"
add chain=cgnat1_b23 action=netmap protocol=tcp src-address=100.64.2.224/27 to-addresses=203.0.113.0/27 to-ports=47392-49407 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=23;proto=tcp"
add chain=cgnat1_b23 action=netmap protocol=udp src-address=100.64.2.224/27 to-addresses=203.0.113.0/27 to-ports=47392-49407 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=23;proto=udp"
add chain=cgnat1_b23 action=netmap src-address=100.64.2.224/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=23;proto=other"
add chain=cgnat1_b24 action=netmap protocol=tcp src-address=100.64.3.0/27 to-addresses=203.0.113.0/27 to-ports=49408-51423 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=24;proto=tcp"
add chain=cgnat1_b24 action=netmap protocol=udp src-address=100.64.3.0/27 to-addresses=203.0.113.0/27 to-ports=49408-51423 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=24;proto=udp"
add chain=cgnat1_b24 action=netmap src-address=100.64.3.0/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=24;proto=other"
add chain=cgnat1_b25 action=netmap protocol=tcp src-address=100.64.3.32/27 to-addresses=203.0.113.0/27 to-ports=51424-53439 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=25;proto=tcp"
add chain=cgnat1_b25 action=netmap protocol=udp src-address=100.64.3.32/27 to-addresses=203.0.113.0/27 to-ports=51424-53439 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=25;proto=udp"
add chain=cgnat1_b25 action=netmap src-address=100.64.3.32/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=25;proto=other"
add chain=cgnat1_b26 action=netmap protocol=tcp src-address=100.64.3.64/27 to-addresses=203.0.113.0/27 to-ports=53440-55455 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=26;proto=tcp"
add chain=cgnat1_b26 action=netmap protocol=udp src-address=100.64.3.64/27 to-addresses=203.0.113.0/27 to-ports=53440-55455 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=26;proto=udp"
add chain=cgnat1_b26 action=netmap src-address=100.64.3.64/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=26;proto=other"
add chain=cgnat1_b27 action=netmap protocol=tcp src-address=100.64.3.96/27 to-addresses=203.0.113.0/27 to-ports=55456-57471 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=27;proto=tcp"
add chain=cgnat1_b27 action=netmap protocol=udp src-address=100.64.3.96/27 to-addresses=203.0.113.0/27 to-ports=55456-57471 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=27;proto=udp"
add chain=cgnat1_b27 action=netmap src-address=100.64.3.96/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=27;proto=other"
add chain=cgnat1_b28 action=netmap protocol=tcp src-address=100.64.3.128/27 to-addresses=203.0.113.0/27 to-ports=57472-59487 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=28;proto=tcp"
add chain=cgnat1_b28 action=netmap protocol=udp src-address=100.64.3.128/27 to-addresses=203.0.113.0/27 to-ports=57472-59487 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=28;proto=udp"
add chain=cgnat1_b28 action=netmap src-address=100.64.3.128/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=28;proto=other"
add chain=cgnat1_b29 action=netmap protocol=tcp src-address=100.64.3.160/27 to-addresses=203.0.113.0/27 to-ports=59488-61503 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=29;proto=tcp"
add chain=cgnat1_b29 action=netmap protocol=udp src-address=100.64.3.160/27 to-addresses=203.0.113.0/27 to-ports=59488-61503 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=29;proto=udp"
add chain=cgnat1_b29 action=netmap src-address=100.64.3.160/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=29;proto=other"
add chain=cgnat1_b30 action=netmap protocol=tcp src-address=100.64.3.192/27 to-addresses=203.0.113.0/27 to-ports=61504-63519 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=30;proto=tcp"
add chain=cgnat1_b30 action=netmap protocol=udp src-address=100.64.3.192/27 to-addresses=203.0.113.0/27 to-ports=61504-63519 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=30;proto=udp"
add chain=cgnat1_b30 action=netmap src-address=100.64.3.192/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=30;proto=other"
add chain=cgnat1_b31 action=netmap protocol=tcp src-address=100.64.3.224/27 to-addresses=203.0.113.0/27 to-ports=63520-65535 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=31;proto=tcp"
add chain=cgnat1_b31 action=netmap protocol=udp src-address=100.64.3.224/27 to-addresses=203.0.113.0/27 to-ports=63520-65535 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=31;proto=udp"
add chain=cgnat1_b31 action=netmap src-address=100.64.3.224/27 to-addresses=203.0.113.0/27 comment="mikro:v1;pool=cgnat1;kind=netmap;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=31;proto=other"
add chain=cgnat1_g0 action=jump src-address=100.64.0.0/27 jump-target=cgnat1_b0 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=0;g24=100.64.0.0/24"
add chain=cgnat1_g0 action=jump src-address=100.64.0.32/27 jump-target=cgnat1_b1 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=1;g24=100.64.0.0/24"
add chain=cgnat1_g0 action=jump src-address=100.64.0.64/27 jump-target=cgnat1_b2 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=2;g24=100.64.0.0/24"
add chain=cgnat1_g0 action=jump src-address=100.64.0.96/27 jump-target=cgnat1_b3 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=3;g24=100.64.0.0/24"
add chain=cgnat1_g0 action=jump src-address=100.64.0.128/27 jump-target=cgnat1_b4 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=4;g24=100.64.0.0/24"
add chain=cgnat1_g0 action=jump src-address=100.64.0.160/27 jump-target=cgnat1_b5 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=5;g24=100.64.0.0/24"
add chain=cgnat1_g0 action=jump src-address=100.64.0.192/27 jump-target=cgnat1_b6 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=6;g24=100.64.0.0/24"
add chain=cgnat1_g0 action=jump src-address=100.64.0.224/27 jump-target=cgnat1_b7 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=7;g24=100.64.0.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.0/27 jump-target=cgnat1_b8 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=8;g24=100.64.1.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.32/27 jump-target=cgnat1_b9 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=9;g24=100.64.1.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.64/27 jump-target=cgnat1_b10 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=10;g24=100.64.1.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.96/27 jump-target=cgnat1_b11 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=11;g24=100.64.1.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.128/27 jump-target=cgnat1_b12 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=12;g24=100.64.1.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.160/27 jump-target=cgnat1_b13 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=13;g24=100.64.1.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.192/27 jump-target=cgnat1_b14 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=14;g24=100.64.1.0/24"
add chain=cgnat1_g1 action=jump src-address=100.64.1.224/27 jump-target=cgnat1_b15 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=15;g24=100.64.1.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.0/27 jump-target=cgnat1_b16 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=16;g24=100.64.2.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.32/27 jump-target=cgnat1_b17 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=17;g24=100.64.2.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.64/27 jump-target=cgnat1_b18 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=18;g24=100.64.2.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.96/27 jump-target=cgnat1_b19 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=19;g24=100.64.2.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.128/27 jump-target=cgnat1_b20 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=20;g24=100.64.2.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.160/27 jump-target=cgnat1_b21 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=21;g24=100.64.2.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.192/27 jump-target=cgnat1_b22 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=22;g24=100.64.2.0/24"
add chain=cgnat1_g2 action=jump src-address=100.64.2.224/27 jump-target=cgnat1_b23 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=23;g24=100.64.2.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.0/27 jump-target=cgnat1_b24 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=24;g24=100.64.3.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.32/27 jump-target=cgnat1_b25 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=25;g24=100.64.3.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.64/27 jump-target=cgnat1_b26 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=26;g24=100.64.3.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.96/27 jump-target=cgnat1_b27 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=27;g24=100.64.3.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.128/27 jump-target=cgnat1_b28 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=28;g24=100.64.3.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.160/27 jump-target=cgnat1_b29 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=29;g24=100.64.3.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.192/27 jump-target=cgnat1_b30 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=30;g24=100.64.3.0/24"
add chain=cgnat1_g3 action=jump src-address=100.64.3.224/27 jump-target=cgnat1_b31 comment="mikro:v1;pool=cgnat1;kind=jumpBlock;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;blk=31;g24=100.64.3.0/24"
add chain=srcnat action=jump src-address=100.64.0.0/24 jump-target=cgnat1_g0 comment="mikro:v1;pool=cgnat1;kind=jump24;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;g24=100.64.0.0/24"
add chain=srcnat action=jump src-address=100.64.1.0/24 jump-target=cgnat1_g1 comment="mikro:v1;pool=cgnat1;kind=jump24;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;g24=100.64.1.0/24"
add chain=srcnat action=jump src-address=100.64.2.0/24 jump-target=cgnat1_g2 comment="mikro:v1;pool=cgnat1;kind=jump24;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;g24=100.64.2.0/24"
add chain=srcnat action=jump src-address=100.64.3.0/24 jump-target=cgnat1_g3 comment="mikro:v1;pool=cgnat1;kind=jump24;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0;g24=100.64.3.0/24"

/ip route
add dst-address=203.0.113.0/27 blackhole=yes comment="mikro:v1;pool=cgnat1;kind=blackhole;priv=100.64.0.0;pub=203.0.113.0/27;n=32;win=1024-65535;bh=1;nt=0;ft=0"

Правил: 133, каждое с комментарием mikro:.

Сделайте шаг дальше

Скрипт выше — ровно то, что пишет приложение, вместе с комментариями. Вставьте его сейчас, и Mikro Manager позже узнает этот пул: он прочитает комментарии с маршрутизатора, откроет пул в этой же форме, а когда вы измените число клиентов на адрес или диапазон портов — посчитает разницу и запишет только её. Ещё он находит по публичному адресу и порту клиента за ними, проверяет защищённость маршрутизатора и выдаёт конфигурации WireGuard.

Подробнее

Получить Mikro Manager

Распространяется через Mac App Store — в песочнице, подписано и обновляется автоматически.

Скоро в Mac App Store.

Требуется macOS 14 или новее и устройство RouterOS v7 с включённым REST API.