Cable Diagnostic:
- Эта функция доступна только из CLI и позволяет определить:
- Какая пара кабеля повреждена;
- На какой длине кабеля это произошло;
- Какое именно повреждение имеет кабель (обрыв или замыкание);
/interface ethernet cable-test ether1
Wake-on-LAN:
Позволяет отправлять magic packet для пробуждения компьютера в локальной сети.
/tool wol interface=bridge1 mac=FF:FF:FF:FF:FF:FF
PSD (Port Scan Detect): [link]
Функционал Port Scan Detect позволяет блокировать сканирование открытых портов только для TCP и UDP трафика. Если "Src. Address" оказывается замечен чаще, чем один раз в 10 секунд ("Delay Threshold"), то на каждый пакет значение счётчика для данного "Src. Address" увеличивается на 3 для портов от 0 до 1023 ("Low Port Weight"), на 1 для диапазона 1024-65535 ("Hight Port Weight"). Когда суммарно накопится 10 ("Weight Threshold") - сработает правило. Если в течении 10 секунд не было пакетов - счётчик обнуляется.
Weight Threshold: При каком значении сработает;
Delay Threshold: Максимальная задержка между пакетами с разными портами назначения, пришедшими с одного адреса;
Low Port Weight: Cколько при подсчете стоит каждый порт в диапазоне 0-1023;
High Port Weight: Cколько при подсчете стоит каждый порт в диапазоне 1024-65535;
/ip firewall filter
add chain=input protocol=tcp in-interface=FTTx psd=10,10s,3,1 action=add-src-to-address-list address-list=port_scan address-list-timeout=1d comment="PSD to List"
add chain=input protocol=udp in-interface=FTTx psd=10,10s,3,1 action=add-src-to-address-list address-list=port_scan address-list-timeout=1d
- Блокируем в цепочке prerouting;
/ip firewall raw
add chain=prerouting in-interface=FTTx src-address-list=port_scan action=drop comment="Drop PSD"
ICMP Packet Size Knocking / Port Knocking:
Позволяет на заданное время для определенного хоста открыть необходимый порт.
Работает на основе стука "ICMP-пакетом" определенного размера в определенной последовательности, или на основе стука на определенный порт в определенной последовательности.
Важно! Правила для "ICMP Packet Size Knocking" должны находиться выше "Established" соединений.
/ip firewall filter
- ICMP Packet Size Knocking;
add action=add-src-to-address-list address-list=pk_stage1 address-list-timeout=15s chain=input comment="ICMP Packet Size Knocking | 460,549,626" in-interface-list=WAN packet-size=460 protocol=icmp
add action=add-src-to-address-list address-list=pk_stage2 address-list-timeout=15s chain=input in-interface-list=WAN packet-size=549 protocol=icmp src-address-list=pk_stage1
add action=add-src-to-address-list address-list=pk_stage3 address-list-timeout=30m chain=input in-interface-list=WAN packet-size=626 protocol=icmp src-address-list=pk_stage2
add action=accept chain=input dst-port=22 in-interface-list=WAN protocol=tcp src-address-list=pk_stage3
- Established, Related;
add action=accept chain=input comment="Established, Related" connection-state=established,related
add action=accept chain=forward connection-state=established,related
- Port Knocking;
add action=add-src-to-address-list address-list=port_stage1 address-list-timeout=15s chain=input comment="Port Knocking | tcp:1505, udp:1607, tcp:1802" dst-port=1505 in-interface-list=WAN protocol=tcp
add action=add-src-to-address-list address-list=port_stage2 address-list-timeout=15s chain=input dst-port=1607 in-interface-list=WAN protocol=udp src-address-list=port_stage1
add action=add-src-to-address-list address-list=port_stage3 address-list-timeout=30m chain=input dst-port=1802 in-interface-list=WAN protocol=tcp src-address-list=port_stage2
add action=accept chain=input dst-port=22 in-interface-list=WAN protocol=tcp src-address-list=port_stage3
Bat-файлик для Windows - ICMP Packet Size Knocking:
При отправке ICMP-пакетов от размера пакета отнимаем 28 байт.
@ECHO off
TITLE Port Knocking:
:: Начало сценария;
SET TARGET_ICMP_HOST=ip-адрес
:: Filter value - 28 byte = Stage[x];
SET ICMP_Packets_Stage1=432
SET ICMP_Packets_Stage2=521
SET ICMP_Packets_Stage3=598
:Menu
cls
echo.
echo Варианты для выбора:
echo.
echo [1] = Отправить ICMP пакеты;
echo.
echo [0] = Выйти;
echo.
set /p choice=--- Ваш выбор:
if '%choice%'=='1' goto Send_ICMP_Packets
if '%choice%'=='0' goto Complete
if "%choice%"=="" ( endlocal & goto :end
) else ( echo - Неправильный выбор!
TIMEOUT /T 2 >nul & endlocal & goto :end )
:Send_ICMP_Packets
ping %TARGET_ICMP_HOST% -f -n 1 -l %ICMP_Packets_Stage1% >nul
ping %TARGET_ICMP_HOST% -f -n 1 -l %ICMP_Packets_Stage2% >nul
ping %TARGET_ICMP_HOST% -f -n 1 -l %ICMP_Packets_Stage3% >nul
pause & goto end
:End
goto Menu
:Complete
goto exit 2>nul
Fail2Ban:
При подключении к SSH-серверу, если введен неправильный пароль, то сервер закрывает соединение. IP-адрес подключающейся стороны сохраняется в адрес-листе как новое соединение и в течении определенного времени. Если в течении этого времени будет установлено новое соединение с IP-адресом из прошлого адрес-листа, то IP-адрес попадет в следующий адрес-лист. И так до попадания в последний лист, где IP-адрес будет заблокирован.
/ip firewall filter
add action=drop chain=input comment=Fail2Ban dst-port=22 in-interface-list=WAN protocol=tcp src-address-list=fb_stage3
add action=add-src-to-address-list address-list=fb_stage3 address-list-timeout=1h chain=input connection-state=new dst-port=22 in-interface-list=WAN protocol=tcp src-address-list=fb_stage2
add action=add-src-to-address-list address-list=fb_stage2 address-list-timeout=7m chain=input connection-state=new dst-port=22 in-interface-list=WAN protocol=tcp src-address-list=fb_stage1
add action=add-src-to-address-list address-list=fb_stage1 address-list-timeout=3m chain=input connection-state=new dst-port=22 in-interface-list=WAN protocol=tcp
Не искать Частные диапазоны IP-адресов через GW провайдера:
Считается правилом хорошего тона. Полезно когда отваливается какой-либо линк. Например до провайдера или VPN-туннеля. Поможет решить проблему когда зависает SIP-телефония.
* Unicast - Одноадресная рассылка;
* Unreachable - Маршрут недоступен (Отправка ICMP-сообщения: 1-code);
* Prohibit - Маршрут запрещен (Отправка ICMP-сообщения: 13-code);
* Blackhole - Маршрут недоступен (ICMP-сообщение не отправляется);
/ip route
add dst-address=10.0.0.0/8 gateway=ip-address type=prohibit distance=2 comment="Do not route in ISP (icmp 13 code)"
add dst-address=100.64.0.0/10 gateway=ip-address type=prohibit distance=2 comment="Do not route in ISP (icmp 13 code)"
add dst-address=172.16.0.0/12 gateway=ip-address type=prohibit distance=2 comment="Do not route in ISP (icmp 13 code)"
add dst-address=192.168.0.0/16 gateway=ip-address type=prohibit distance=2 comment="Do not route in ISP (icmp 13 code)"
Имеются проблемы с ppp(vpn) интерфейс листами в Firewall->Filter. Будет блокироваться доступ в сети, находящиеся за этими интерфейсами.
Фильтрация хостов по Mac-адресам на Bridge-интерфейсе:
Разрешаем только заданные Mac-адреса, все остальные блокируем. Также можно закрепить Mac-адрес за конкретным интерфейсом, указав порт в "In. Interface".
Показать изображение:
- Bridge -> Filters" (LAYER 2)
INPUT - хосты, которых нет в разрешающих правилах, не могут взаимодействовать с [роутером 172.16.10.1/24] и с [другими сегментами сети 172.16.5.227/28, 172.16.11.1/24], но могут взаимодействовать в пределах [своего сегмента 172.16.10.0/24].
FORWARD - хосты, которых нет в разрешающих правилах, не могут взаимодействовать между собой в пределах [своего сегмента сети 172.16.10.0/24], но могут взаимодействовать с [роутером 172.16.10.1/24] и другими [сегментами 172.16.5.227/28, 172.16.11.1/24].
- "Firewall -> Filter" (LAYER 3) - такие хосты могут взаимодействовать с DHCP-сервером, могут пинговаться с другого сегмента, но не могут взаимодействовать с другими сегментами и с самим роутером на сетевом уровне.
Если на bridge включен VLAN Filtering, то вместо (800) ip в mac-protocol= выбираем (8100) vlan.
# Bridge -> Filters
chr-1 | 172.16.10.1/24 - bridge1[ether2-5] + filters | 172.16.11.1/24 bridge2[loopback] | 172.16.5.227/28 ether1
chr-2 | bridge1[ether1-5]
- INPUT
pc1 <---> cgr-1
- FORWARD
pc2 <---> pc3
- Все что не разрешено, запрещено.
- DROP ALL - INPUT, FORWARD
/interface bridge filter
- pc1
add action=accept chain=input in-bridge=bridge1 src-mac-address=MAC/FF:FF:FF:FF:FF:FF
- pc2
add action=accept chain=forward in-bridge=bridge1 src-mac-address=MAC/FF:FF:FF:FF:FF:FF
- pc3
add action=accept chain=forward in-bridge=bridge1 src-mac-address=MAC/FF:FF:FF:FF:FF:FF
- Drop all not allowed
add action=drop chain=input in-bridge=bridge1
add action=drop chain=forward in-bridge=bridge1
# Firewall -> Filter
- Создаем цепочку mac для input и forward:
/ip firewall filter add action=jump chain=input comment=MAC-Filtering in-interface=bridge1 jump-target=mac
/ip firewall filter add action=jump chain=forward in-interface=bridge1 jump-target=mac
- Разрешаем:
/ip firewall filter add action=accept chain=mac src-mac-address=MAC-адрес
- Все что не разрешено, запрещаем:
/ip firewall filter add action=drop chain=mac
Также более просто фильтровать хосты можно с помощью включения на бридж-интерфейсе опции "reply-only". А далее, необходимые хосты добавлять в таблицу "IP/ARP".
Запрет на использование Static-IP на Bridge-интерфейсе:
Важно! Эти настройки работают для L3 трафика. Пакеты через GW роутера в другие сегменты сети передаваться не будут. Следует применять, когда необходимо, чтобы раздачей сетевых настроек занимался только DHCP-сервер. Если в сети есть сервер, у которого заданы статические настройки и нужно его исключить, то можно в "IP/ARP" добавить его IP и MAC адреса а также интерфейс.
Включена опция "Add ARP for Leases":
Хост, у которого в таблице "IP/ARP" нет флагов "С-Complete" и "H-DHCP", не сможет получить доступ в другой сегмент сети, даже если у него на интерфейсе заданы статические настройки сети.
Выключена опция "Add ARP for Leases":
Все тоже самое, только флаг "С-Complete" при ручном добавлении или через Make Static.
Или когда не используется "DHCP-сервер":
Но на бридж интерфейсе включена опция reply-only. В таблице "IP/ARP" хосты, которые с флагом "D-Dynamic", не смогут взаимодействовать GW роутера.
Данные шаги помогут защититься от отравления ARP кеша.
- Не заполнять arp-таблицу динамически, только статические записи:
/interface bridge1 set arp=reply-only
- Добавлять ARP-запись через DHCP-сервер:
/ip dhcp-server set dhcp1 add-arp=yes
Опция "reply-only" - Интерфейс будет отвечать только на запросы, исходящие от совпадающих комбинаций IP-адреса/MAC-адреса, которые введены как статические записи в таблицу IP/ARP. Никакие динамические записи не будут автоматически сохраняться в таблице IP/ARP. Следовательно, для успешного обмена данными уже должна существовать допустимая статическая запись.
Фильтрация Broadcast Flood на Bridge-интерфейсе:
Когда опция отключена, отбрасывает широковещательный трафик для выходных портов.
Широковещательный трафик это трафик, который использует FF:FF:FF:FF:FF:FF в качестве MAC-адреса назначения. Он имеет решающее значение для многих протоколов, таких как DHCP, ARP, NDP, BOOTP (Netinstall) и других.
### Вариант №1:
/interface bridge port
set bridge=bridge1 interface=ether2 broadcast-flood=no
### Вариант №2:
/interface bridge filter
- На выходе из порта,
add action=drop chain=forward dst-port=67 ip-protocol=udp mac-protocol=ip out-bridge=bridge1
- Или на входе в порт,
add action=drop chain=forward dst-port=67 in-bridge=bridge1 ip-protocol=udp mac-protocol=ip
Пример, есть провайдерское оборудование (bras) к которому подключены абонентские устройства (R1,R2,Rn). Чтобы предотвратить ситуацию, когда один из абонентов подключил свой роутер R1 к bras портом LAN и после чего все устройства подключенные к bras начали получать настройки от R1.
Запрет использования сторонних DNS:
Пакеты, с адресом источника: 172.16.5.0/28, по протоколам: tcp/udp, с портом назначения:53, будут перенаправляться на DNS-сервер: 172.17.5.1:53. Представлены два варианта.
- Параметр to-ports=53 можно не указывать, т.к. замены портов назначения производится не будет;
/ip firewall nat
add chain=dstnat src-address=172.17.5.0/28 dst-port=53 in-interface-list=LAN action=dst-nat to-addresses=172.16.5.1
- Заменяет dst-port на указанный параметром to-ports и адрес назначения на один из локальных адресов маршрутизатора;
/ip firewall nat
add chain=dstnat src-address=172.17.5.0/28 dst-port=53 action=redirect to-ports=53
DHCP-Server Address-list:
Позволяет заданные Leases добавлять в необходимые Address-lists.
/ip dhcp-server lease print
/ip dhcp-server lease make-static numbers=1
/ip dhcp-server lease set numbers=1 address-lists=mik
DHCP: Class-ID (VendorID):
Server:
Позволяет устройства определенных производителей добавлять в необходимый address-pool.
- Включаем Debug dhcp и ищем Class-ID нужного устройства,
/system logging add topics=dhcp
- Настраиваем Pool,
/ip pool add name=chr ranges=172.16.10.2-172.16.10.10
- Настройка Class-ID,
/ip dhcp-server vendor-class-id add name=chr server=dhcp1 address-pool=chr vid=chr
- Отключаем Debug dhcp,
/system logging print
/system logging remove numbers=4
Client:
Настройка необходимого значения Class-ID для DHCP-Клиента.
- Добавляем новую DHCP-Option 60 с именем "chr",
/ip dhcp-client option add name=mik_classid code=60 value="'chr'"
- Применяем ее к необходимому dhcp-client,
/ip dhcp-client add interface=ether1 use-peer-dns=yes use-peer-ntp=yes add-default-route=yes dhcp-options=hostname,clientid,mik_classid
Очистка журнала логов:
И истории введенных команд.
- Вывод текущих настроек для логов записывающихся в оперативную память;
/system logging action print where name="memory"
- Устанавливаем новое значение;
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=1000
- Очистка истории введенных команд;
/console clear-history
Блокировка флуда со стороны ISP:
Встречаются ситуации, когда со стороны провайдера, с физического интерфейса приходит много широковещательного трафика. Как с L3, так и с L2 уровней.
Layer 3:
/ip firewall raw add chain=prerouting in-interface=ether1 action=drop comment="Drop ISP"
Layer 2:
С использованием bridge интерфейса на примере PPPoE подключения.
Для начала узнаем "AC MAC Address" и "Active AC Name" для клиентского "PPPoE" интерфейса.
- Будем подключаться только к определенной AC;
/interface pppoe-client set ac-name=bras
- С заданным AC MAC Address. Т.к. на порте входящем в Bridge будет отключен Learn;
/interface bridge host add mac-address="AC MAC Address" interface=ether1 bridge=bridge1 comment=bras
- Создаем Bridge для физ. интерфейса направленного в сторону провайдера и отключаем обнаружение петель;
/interface bridge add name=bridge1 protocol-mode=none comment=ISP
- Добавляем в него интерфейс и запрещаем на выходящем интерфейсе передавать: Unicast, Multicast, Brodcast Flood's, а так же Learn;
/interface bridge port add interface=ether1 bridge=bridge1 learn=no unknown-unicast-flood=no unknown-multicast-flood=no broadcast-flood=no
- Разрешаем только необходимые протоколы (8864+8863), а все остальное drop;
/interface bridge filter add chain=input in-bridge=bridge1 mac-protocol=pppoe action=accept comment="L2 8864+8863"
/interface bridge filter add chain=output out-bridge=bridge1 mac-protocol=pppoe action=accept
/interface bridge filter add chain=input in-bridge=bridge1 mac-protocol=pppoe-discovery action=accept
/interface bridge filter add chain=output out-bridge=bridge1 mac-protocol=pppoe-discovery action=accept
- Все что не разрешено, запрещаем;
/interface bridge filter add chain=input in-bridge=bridge1 action=drop comment="Drop all not allowed"
/interface bridge filter add chain=output out-bridge=bridge1 action=drop
Иммитация плохого соединения:
C помощью опции "random" в L3 Firewall. Данная опция указывает в процентном соотношении количество пакетов для которых будет применяться данное правило. Для примера, создадим правило, которое будет имитировать потерю пинга в 50% на ip-адрес 8.8.8.8. Правило должно быть до "Established, Related".
/ip firewall filter add chain=forward dst-address=8.8.8.8 protocol=icmp random=50 action=drop
Fasttrack между локальными сегментами: [link]
Задача: необходимо увеличить пропускную способность между Пользователями и Файловым сервером: ("VLAN5 <-> VLAN48") и уменьшить нагрузку на CPU.
При включении fasttrack для всего трафика и на все интерфейсы перестанет работать часть функционала, а именно, трафик не будет обрабатываться правилами "Firewall filter; Firewall mangle; IPSec; Queues с parrent=global; Hotspot; VRF".
/ip firewall filter add chain=forward in-interface=ether2.5 out-interface=ether3.48 connectionstate=established,related action=fasttrack-connection
- Также необходимо разрешающее правило (action=accept) из in-interface в out-interface.
Fasttrack для Established, Related:
Обязательно необходимо 2-ое правило. Политика для "forward", все что не разрешено, запрещено. Например, если в новом правиле будет указано, что адрес 1.1.1.1 может форвардить трафик на адрес 2.2.2.2, необходимо будет добавить ответное разрешающее правило, fwd 2.2.2.2 -> 1.1.1.1.
/ip firewall filter
add chain=forward connection-state=established,related action=fasttrack-connection
add chain=forward connection-state=established,related action=accept
Использование световой индикации USR LED:
Может помочь, когда пропало интернет соединение или связь с VPN-сервером.
/system leds add type=interface-status interface=FTTx leds=user-led
После сброса настроек на заводские, выполнить скрипт:
keep-users: не удалять пользователей и их пароли;
no-defaults: не загружать конфигурацию по-умолчанию, выполнить сброс всех настроек;
skip-backup: не выполнять автоматическое резервное копирование конфигурации до сброса;
run-after-reset: указываем имя файла .rsc или .backup, который выполнится после сброса настроек.
/system reset-configuration keep-users=yes skip-backup=yes run-after-reset=file
Чтобы после перезапуска устройства не удалился скрипт, файлик необходимо положить в директорию flash.
Вывести уведомление при входе пользователя:
Уведомление будет выводится при логине с использованием Winbox.
/system note set show-at-login=yes note="We are [G]ROOT!"
Route List - Rules:
При принятии решения о маршрутизации пакета с маркировкой маршрута и отсутствии или недоступности маршрута с маркировкаой, пакет будет обработан в основоной таблице маршрутизации (main).
Управлять этим можно через:
/ip route rule (lookup-only-in-table)
Таким образом, например, мы можем промаркировать в mangle соединениея связанные с sip и в action выбрать (mark routing). Далее создать и привязать к маршруту промаркированные соединения и выбрать в Rules, чтобы пакет обрабатывался только в заданном маршруте и не переходил в основную таблицу (main). Полезно, когда трафик, вместо того чтобы идти в VPN туннель, направляется в сторону провайдера.
Также есть возможность в цепочке "prerouting" задать "action - route" и указать шлюз. После чего, это правило будет обработано до таблицы "IP -> Routes".
NTP Server - AutoUpdate:
NTP-клиент резолвит доменные имена серверов только один раз.
- Создаем скрипт:
/system script add name=ntp_upd policy=read,write,test source="
:local ntpcura [/system ntp client get primary-ntp];
:local ntpcurb [/system ntp client get secondary-ntp];
:local ntpipa [:resolve 0.ru.pool.ntp.org];
:local ntpipb [:resolve 1.ru.pool.ntp.org];
:if ($ntpipa != $ntpcura) do={/system ntp client set primary-ntp="$ntpipa";}
:if ($ntpipb != $ntpcurb) do={/system ntp client set secondary-ntp="$ntpipb";}"
- Добавляем задачу в планировщик на запуск скрипта:
/system scheduler add disabled=no interval=7d start-time=01:00:00 \
name=ntp_upd policy=read,write,test \
on-event="/system script run ntp_upd"
Сбросить питание на USB-шине:
Если имеется несколько USB шин, то используется параметр bus (начинается с 1).
- duration: Время, на которое будет отключено питание;
/system routerboard usb power-reset duration=5 bus=1
Watchdog Timer:
Особенности работы сторожевого таймера служащего для перезагрузки устройства.
- ping-start-after-boot: После включения устройства, время, после которого запустится проверка;
- ping-timeout: Задает интервал времени, в течение которого устройство будет проверяться 6 раз (после "no-ping-delay") 600/6=100s;
/system watchdog set watchdog-timer=yes watch-address=10.0.0.1 ping-start-after-boot=00:05:00 ping-timeout=600
Использование EMOJI:
Позволяет в названии Wi-Fi и паролях использовать UTF-8 кодировку.
Нам понадобятся: Mikrotik Unicode SSID Generator + Emoji List.
/interface wireless set name=wlan1 ssid="\F0\9F\9A\80"
Директория FLASH:
Файлы, которые необходимо сохранить после перезагрузки или выключения, должны находиться в директории "flash", т.к. все что находится за ее пределами, хранится на RAM-диске и будет удалено после перезагрузки. Чтобы создалась директория "flash", необходимо перейти в "IP -> SMB".
- Экспорт конфигурации в файл:
/export compact file=flash/mik
Hairpin NAT: [link]
Позволяет получить доступ к опубликованному в Интернет ресурсу из локальной сети по внешнему адресу.
/ip firewall nat
add chain=dstnat protocol=tcp dst-port=443 in-interface=ISP action=dst-nat to-addresses=172.16.5.5
Проблема заключается в том, что хост, c адресом 172.16.5.4 находящийся в локальной сети 172.16.5.0/28, пытается установить соединение с сервером WAN-IP на 443 порту. Пакет отправляется на маршрутизатор. На маршрутизаторе срабатывает правило dst-nat, в результате чего, адрес назначения меняется на 172.16.5.5 и запрос отправляется на соответствующий сервер. Сервер, получив пакет с адресом источника 172.16.5.4 определяет, что они оба находятся в одной сети и отвечает хосту напрямую, минуя маршрутизатор.
/ip firewall nat
add chain=dstnat dst-address=ISP protocol=tcp dst-port=443 action=dst-nat to-addresses=172.16.5.5 comment="Hairpin NAT"
add chain=srcnat src-address=172.16.5.0/28 dst-address=172.16.5.5 protocol=tcp dst-port=443 action=masquerade
Input / Output ICMP: (Min Set) [link]
Разрешить минимально необходимые ICMP пакеты для внешнего интерфейса.
- PING | (IN) ICMP Type: 8 (Echo Request) - ICMP Code: 0 | (OUT) ICMP Type: 0 (Echo Reply) - ICMP Code: 0;
- Path MTU Discovery (PMTUD) | (IN|OUT|FWD) ICMP Type: 3 (Destination Unreachable) - ICMP Code: 4 (Fragmentation Needed and Don't Fragment was Set);
- Traceroute | (IN) ICMP Type: 11 (Time Exceeded) - ICMP Code: 0 (Time to Live exceeded in Transit);
Packet Size: 0-100, Limit: 1 пакет в сек с всплесками до 3 пакетов в сек. Важно! ICMP 3:4 необходим для PMTU (Path MTU) и PMTUD (Discovery).
/ip/firewall/filter
add chain=input protocol=icmp in-interface-list=ISP icmp-options=8:0 packet-size=0-100 limit=1,3:packet action=accept comment="ICMP 8:0 | 11:0"
add chain=input protocol=icmp in-interface-list=ISP icmp-options=11:0 packet-size=0-100 limit=1,3:packet action=accept
add chain=input protocol=icmp out-interface-list=ISP icmp-options=3:4 packet-size=0-576 limit=1,3:packet action=accept comment="ICMP 3:4 | 0:0"
add chain=input protocol=icmp out-interface-list=ISP icmp-options=0:0 packet-size=0-100 limit=1,3:packet action=accept
Cloud Backup: [link]
В хранилеще можно загрузить только одну резервную копию размером до 15mb. Данный функционал появился с выходом RouterOS v6.44. Перед загрузкой новой, старую необходимо удалить. Адрес хранилища: cloud2.mikrotik.com UDP/15252 и TCP/15252 port.
- Создать резервную копию:
/system backup cloud upload-file action=create-and-upload password="pass"
/system backup cloud print
- Скачать резервную копию:
# Секретный ключ позволяет загружать резервную копию на другие устройства.
/system backup cloud download-file action=download number=0
/system backup cloud download-file action=download secret-download-key=
Connection tracking:
Оптимизация таймаута уже установленного TCP-соединения.
/ip firewall connection tracking set tcp-established-timeout=10m
DHCP-Option82:
Включается на стороне коммутатора на bridge интерфейсе. Позволяет просмотреть на DHCP-Server (запущенного на маршртизаторе) во вкладке Leases - "Agent Circuit ID, (sw201 eth 0/16:128)" и "Agent Remote ID, (ether16)".
/interface bridge set add-dhcp-option82=yes bridge1
RoMON:
Когда включен сервис, то по умолчанию, обнаружение работает на всех интерфейсах. Нам необходимо закрыть подключение к RoMON со стороны провайдерского интерфейса. Достаточно добавить к существующему правилу.
/tool romon port add interface=ether1 forbid=yes comment="Forbid ISP"
Netinstall:
Данная процедура мне помогла, когда устройство во время обновления было отключено от питания.
1. Отключить на Windows все интерфейсы, кроме основного. Отключить брандмауэр, антивирус;
2. Скачать последнюю версию netinstall и в корне диска создать папку netinstall, закинуть в нее прошивку и netinstall;
3. Задать IP на интерфейсе 192.168.100.100/24. Запустить от имени Админимтратора netinstall. Включить bootserver и пропистаь IP 192.168.100.101;
4. Далее подключить порт ether1 роутера к компьютеру, зажать кнопку ресет и подать питание. Держать до появления названия устройства в программе. Обычно хватает от 15 сек;
5. Если устройство не определяется в программе, то можно не подключая к ПК повторить процедуу с зажатой кнопкой ресет.
Downgrade:
Позволяет понизить версию прошивки, но не ниже, чем та, которая указана в "Factory Software". Достаточно поместить файл(ы) прошивки на устройство.
/system package downgrade
SSH-exec: [link]
Позволяет отправлять команды хостам по протоколу ssh. Ssh-exec будет работать в сценариях и планировщике.
### Linux:
- Генерируем пару ключей:
# mkdir mik_exec && ssh-keygen -t rsa -b 2048 -m pem
- Enter file id_rsa: mik_exec/mik_exec
- Enter passphrase: ********
# cd mik_exec ; ls
- Добавляем публичный ключ:
# cat mik_exec.pub >> ../.ssh/authorized_keys
# systemctl restart sshd.service
### MikroTik ROS:
- Указываем пользователя с вкладки Users:
/user ssh-keys private import user=MTv public-key-file=mik_exec.pub private-key-file=mik_exec passphrase="********"
- Удаляем ключи:
/file remove mik_exec.pub,mik_exec
- Проверяем:
Если увидим статус "exit-code: 0", то команда выполнена успешно.
/system ssh-exec address=172.16.5.90 port=22 user=root command="ls"
- Права:
Скрипт: ftp, read, write, test | Планировщик: [startup] ftp, read, write, test
- Скрипт листинг:
:delay 30s;
/system ssh-exec address=172.16.5.90 port=22 user=root command="touch file.1 ; touch file.2"
Изменить MAC-address на интерфейсе:
Может пригодиться, когда провайдер закрепил за клиентским роутером конкретный MAC адрес, а роутер, например, вышел из строя и нужно подключить новый с тем-же MAC адресом.
/interface ethernet set ether1 mac-address=new_mac_address
MTU/MSS/PMTU:
Если не открываются сайты или низкая скорость через провайдерский интерфейс или между VPN туннелями.
На транзитных роутерах не стоит блокировать проходящий и исходящий ICMP-трафик Type:3, Code: 4 т.к. это черевато Path MTU Discovery Black Hole. Также, если транзитный роутер не может передать в один из своих интерфейсов пакет с меткой DF и MSS=1460, то он должен иметь возможность отправить (chain - output) ICMP 3:4 пакет с новым MTU, а клиент иметь возможность получить ICMP 3:4 (chain - input).
Также вместо "new-mss=clamp-to-pmtu" можно задать свое значение.
/ip/firewall/mangle/
add action=change-mss new-mss=clamp-to-pmtu chain=forward in-interface-list=VLANx out-interface-list=VPN passthrough=yes protocol=tcp tcp-flags=syn
add action=change-mss new-mss=clamp-to-pmtu chain=forward in-interface-list=VPN out-interface-list=VLANx passthrough=yes protocol=tcp tcp-flags=syn
- Или, все что начинается с 1361-1500, поменять на 1360;
add action=change-mss new-mss=1360 chain=forward in-interface-list=VLANx out-interface-list=VPN passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1361-1500
add action=change-mss new-mss=1360 chain=forward in-interface-list=VPN out-interface-list=VLANx passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1361-1500
Лучше проверить по отдельности 1-ую и 2-ую пару правил. Мне помогла 2-ая, когда через L2TP/IPsec (Site-to-Site), скорость копирования файлов c/из SMB была низкой. После применения этих правил она поднялась до 100 Мбит/c.
Обнаружить пакеты требующие фрагментацию:
/ip/firewall/raw/
add chain=prerouting fragment=yes action=accept log=yes log-prefix=raw_fragments comment="Log Packet Fragments"
Снять метку DF:
На транзитном роутере можно в Mangle в chain: forward, postrouting, prerouting.
/ip/firewall/mangle/
add chain=prerouting protocol=icmp action=clear-df comment="Clear DF"
Проверка устройства после покупки:
Новое и никогда не включалось?
- После первого включения:
/system resource print
- Нужно, чтобы:
write-sect-since-reboot = write-sect-total
Bonding: + Bridge и hardware offloading
Особенности. Если "switch-chip" поддерживает аппаратную разгрузку "bonding", то bonding-интерфейс можно добавлять в "bridge" к остальным физическим интерфейсам, у которых включен "HW", и, тем самым, будет работать L2,L3 связность между подключенными устройствами. Если нет, то на физических интерфейсах, добавленных в "bridge", необходимо отключить "HW". Иначе будет работать только L2 связность, а L3 - только между адресами, заданными на bridge-интерфейсе на обеих концах.
DHCP: Store Leases on Disk:
Это подменю позволяет настроить, как часто аренда DHCP будет сохраняться на диск. Если бы они сохранялись на диск при каждом изменении аренды, происходило бы много операций записи, что очень плохо для Compact Flash (особенно, если время аренды очень короткое). Чтобы свести к минимуму количество операций записи, все изменения сохраняются на диск каждые секунды аренды диска. Кроме того, аренда всегда сохраняется на диске при корректном завершении работы и перезагрузке.
Изменения для "Leases" будут переданы в хранилище, при:
- Внесении изменений в аренду вручную;
- Добавлении/удалении статической аренды;
- Удалении динамической аренды;
- Можно отключить запись "Leases" на флеш накопитель;
/ip/dhcp-server/config/set store-leases-disk=never
Allocate RAM to folder: [link]
Начиная с версии 7.7 можно добавлять папки, привязанные к оперативной памяти. Папки будут очищены при перезагрузке или отключении питания. Оперативная память будет заполнена до tmpfs-max-size, а если эта переменная не указана - до 1/2 от доступной оперативной памяти.
- Создать директорию "ram-disk" в tmpfs;
/disk/add type=tmpfs tmpfs-max-size=5M slot=ram-disk
- Удалить директорию "ram-disk" из tmpfs;
/disk/remove ram-disk
PTP MikroTik:
Использование /31 маски для PtP линков в соответствии с RFC3021.
- R-1:
/ip/address/add interface=ether5 address=100.64.1.0 network=100.64.1.1
- R-2:
/ip/address/add interface=ether5 address=100.64.1.1 network=100.64.1.0
DNS - При обращению к домену/поддоменам добавить IP в Address List:
- Если включен DNS over HTTPS (DoH) то записи с типом FWD работать не будут;
- Когда запрос соответствует DNS-записи, то IP-адрес динамичнски добавляется в указанный Address List;
- IP-адрес будет удален из Address List по истечении срока TTL;
/ip/dns/static/add name=youtube.com type=FWD match-subdomain=yes address=no_rkn_dst forward-to=172.31.255.1
- Добавить дополнительное время к TTL при создании записи в Address List:
/ip/dns/set address-list-extra-time=1h
Альтернативный способ и более затратный к ресурсам роутера, это в "IP -> Firewall" в разделе "Advanced" использовать параметр content=youtube.com
.
Программируемая кнопка - Reset Button:
При нажатии на физическую кнопку Mode - выполнить заданный Event->Script.
/system/script/add name="no_rkn" policy=read,write,test
---
/ip/firewall/mangle/set [find comment="no_rkn"] disabled=(![get [find comment="no_rkn"] disabled])
---
/system/routerboard/reset-button/set enabled=yes hold-time=0..3 on-event=no_rkn
FQ-Codel - QOS на интерфйесы Wi-Fi/ISP:
Позволяет улучшить задержки и качество соедениния. Можно проверить в тесте на "Bufferbloat"
/queue/type/set wireless-default kind=fq-codel
/queue/type/add name=fq-codel1 kind=fq-codel
/queue/interface/set ether1 queue=fq-codel