Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

NAT_MEMORY_EXHAUSTED Сетевое оборудование и VPN

MikroTik Log: failed to create NAT translation: memory exhausted — Решение

Обновлено: 24.08.2026 · Официальная документация ↗

В системном журнале фиксируется критическая ошибка firewall,error: failed to create NAT translation: memory exhausted или nat table full.

  • Полная или частичная недоступность интернета для всех локальных пользователей.
  • Новые исходящие соединения (TCP SYN / UDP) отбрасываются маршрутизатором.
  • Текущие установленные сессии (например, работающие звонки или терминалы) могут продолжать функционировать.
  • В меню /ip firewall connection tracking значение total-entries достигает предельного значения max-entries.

1. Причины исчерпания памяти NAT

Сбой происходит в двух ситуациях:

  • Аппаратное исчерпание RAM: в устройстве физически закончилась оперативная память для создания новых структур ip_conntrack.
  • Исчерпание пула портов SNAT: все 64512 динамических исходящих портов (src-port) на одном внешнем IP-адресе заняты активными сессиями.

2. Диагностика таблицы отслеживания соединений

Проверьте текущую заполненность таблицы:

/ip firewall connection tracking print

Проверьте баланс свободной оперативной памяти устройства:

/system resource print

3. Очистка неактивных соединений и снижение таймаутов

Сократите время жизни TCP и UDP сессий по умолчанию, чтобы освободить место в RAM:

/ip firewall connection tracking set enabled=yes \
    tcp-established-timeout=1h \
    tcp-close-timeout=5s \
    tcp-close-wait-timeout=5s \
    tcp-time-wait-timeout=10s \
    udp-timeout=10s \
    udp-stream-timeout=1m \
    generic-timeout=1m

4. Включение механизма FastTrack (Разгрузка Conntrack)

FastTrack обходит глубокую обработку пакетов файрволом для установленных соединений, экономя до 80% ресурсов CPU и памяти:

/ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related comment="FastTrack" place-before=1
/ip firewall filter add chain=forward action=accept connection-state=established,related comment="Accept Established" place-before=2

5. Расширение пула внешних IP-адресов для NAT (CGNAT / Multi-IP)

Если у вас тысячи пользователей выходят через один IP, замените masquerade на пул src-nat с несколькими белыми адресами:

/ip firewall nat add chain=srcnat out-interface-list=WAN action=src-nat to-addresses=198.51.100.10-198.51.100.15
💡 Практика специалистов: Если ошибка возникает регулярно на младших моделях (hEX, hAP lite с 32–64MB RAM), используйте таблицу RAW для исключения тяжелого локального или межсегментного трафика из Conntrack (notrack).

Частые вопросы (FAQ)

Сколько памяти занимает одно соединение в Conntrack RouterOS?

В зависимости от архитектуры CPU (MIPS, ARM, ARM64, TILE, x86) и версии ядра Linux, одна запись таблицы отслеживания соединений занимает от 256 до 512 байт оперативной памяти.

Почему masquerade опаснее, чем src-nat при высокой нагрузке?

Действие masquerade при каждом разрыве линка интерфейса полностью очищает всю таблицу соединений для данного интерфейса, вызывая пиковую нагрузку на CPU. src-nat работает стабильнее и поддерживает пулы из нескольких IP-адресов.

Как принудительно сбросить все текущие соединения?

Выполните команду в терминале: /ip firewall connection remove [find]. Будьте осторожны: это разорвет все активные сессии пользователей.

Можно ли отключить Connection Tracking на MikroTik?

Да, через /ip firewall connection tracking set enabled=no. Но это полностью отключит работу NAT, FastTrack и правил файрвола с connection-state (маршрутизатор превратится в чистый L3/L4 роутер без трансляции адресов).

Полезные материалы
Рекомендуем