MikroTik Log: connection-limit exceeded — Защита от спама и торрентов
В журнале появляется информационное сообщение: firewall,info forward: in:lan out:wan, proto UDP, connection-limit exceeded, src-ip: 192.168.88.105, action: drop.
- У конкретного пользователя или устройства в сети перестают открываться веб-страницы при работающих мессенджерах.
- Таблица соединений (Connection Tracking) маршрутизатора перегружается сотнями тысяч сессий.
- Сетевые принтеры, камеры или зараженные хосты в LAN генерируют аномальный объем исходящих UDP/SYN-запросов.
- Торрент-клиенты (BitTorrent, uTorrent) монополизируют всю пропускную способность NAT-трансляций.
1. Причины срабатывания лимита соединений
Сообщение генерируется правилом файрвола с параметром connection-limit, когда один локальный IP-адрес превышает заданный порог одновременных активных сетевых соединений.
2. Проверка активных соединений конкретного хоста
Определите, чем занята таблица Conntrack подозрительного устройства:
/ip firewall connection print where src-address~"192.168.88.105"Посчитайте суммарное число открытых сессий хоста:
:put [:len [/ip firewall connection find where src-address~"192.168.88.105"]]3. Корректная настройка правила Connection Limit
Ограничьте максимальное количество одновременных TCP/UDP соединений на одного клиента (например, до 300 сессий на хост, исключая доверенные серверы):
/ip firewall filter
add chain=forward action=drop protocol=tcp connection-state=new connection-limit=300,32 src-address-list=!trusted_servers in-interface-list=LAN out-interface-list=WAN comment="Limit max 300 TCP conns per host"
add chain=forward action=drop protocol=udp connection-state=new connection-limit=300,32 src-address-list=!trusted_servers in-interface-list=LAN out-interface-list=WAN comment="Limit max 300 UDP conns per host"Параметр ,32 означает, что лимит применяется индивидуально к каждому /32 IP-адресу.
4. Тюнинг таймаутов Connection Tracking
Уменьшите время удержания закрытых или неактивных сессий в оперативной памяти:
/ip firewall connection tracking set \
tcp-syn-received-timeout=15s \
tcp-unreplied-timeout=10s \
tcp-close-wait-timeout=10s \
udp-timeout=10s \
udp-stream-timeout=1m Частые вопросы (FAQ)
Какое нормальное количество одновременных соединений для одного ПК?
Для обычного офисного ПК при веб-серфинге нормально иметь от 50 до 150 одновременных соединений. При активной работе P2P/BitTorrent клиентов или открытии сотен вкладок браузера число сессий может легко превышать 1000–3000.
Почему параметр connection-limit нужно использовать только с connection-state=new?
Если не указать connection-state=new, файрвол будет проверять счетчик лимита для каждого отдельного пакета внутри уже установленных сессий, что приведет к блокировке валидных данных и огромной нагрузке на процессор.
Чем отличается connection-limit от connection-rate?
connection-limit считает абсолютное число активных сессий в таблице на текущий момент. connection-rate измеряет скорость передачи данных (байт/сек) внутри конкретного соединения.
Где посмотреть максимальную емкость таблицы Conntrack на моем MikroTik?
Выполните команду /ip firewall connection tracking print. Параметр max-entries показывает максимальное количество записей, которое может вместить RAM устройства.