Короткий ответ

Masquerade — это chain=srcnat action=masquerade на фактическом исходящем интерфейсе. Если WAN стал pppoe-out1 или vlan35-wan, правило с out-interface=ether1 молчит: счётчики нулевые, клиенты 192.168.88.0/24 не выходят. Пока /ip firewall nat print и print stats не показывают рост packets, не добавляйте пятое идентичное правило.

FastTrack сам по себе masquerade не «выключает», но обходит mangle и часть policy-routing. Если NAT «то работает, то нет» на VPN или на маркированных коннектах — смотрите FastTrack и connection-mark, не множьте srcnat.

Симптомы и как отличить

С RouterOS ping 1.1.1.1 успешен (output + адрес на WAN). С ПК за bridge ping по IP не идёт. Это классика сломанного srcnat или drop в forward — отличите счётчиками.

НаблюдениеВывод
nat stats = 0 при живом ping с ПКпакет не дошёл до srcnat (filter/route)
nat stats растут, ping с ПК timeoutобратный трафик режется, асимметрия, conntrack
NAT ок для 192.168.88.0/24, нет для 10.10.10.0/24узкий src-address
NAT ок без VPN, с IPsec нетFastTrack и VPN

Не путайте с отсутствием адреса на WAN: без IP на выходе masquerade нечем подменять source.

Возможные причины

  1. out-interface не совпадает с маршрутом default (ether1 vs pppoe vs LTE).
  2. Правило disabled=yes или стоит в dstnat по ошибке.
  3. src-address сузили до чужой сети, LAN 192.168.88.0/24 не попадает.
  4. Filter forward drop до того, как пакет станет кандидатом на NAT (NAT src происходит после routing; forward drop убивает транзит).
  5. Два masquerade с разным out-interface и policy routing: пакет уходит в таблицу, где NAT не срабатывает.
  6. action=src-nat на старый IP после смены аренды DHCP.
  7. FastTrack + маркировка: для диагностики временно исключают VPN, не весь интернет.

Диагностика

/system backup save name=before-nat
/export file=before-nat
/ip address print
/ip route print
/ip firewall nat print
/ip firewall nat print stats
/ip firewall filter print stats

1. Совпадает ли out-interface с default route

Если dst-address=0.0.0.0/0 через pppoe-out1, правило должно использовать этот интерфейс или out-interface-list=WAN, куда входит pppoe. Проверка списков:

/interface list member print

2. Попадает ли клиент в src-address

/ip firewall connection print where src-address~"192.168.88."

Нет записей при попытке ping с ПК — пакеты не трекаются: filter, wrong in-interface, или клиент не через этот роутер.

Есть записи без флага srcnat — NAT не применился.

3. Порядок правил srcnat

Первое совпавшее правило побеждает. masquerade «для всего» выше узкого правила для VPN оставит туннель без нужного src-nat, или наоборот.

4. FastTrack

/ip firewall filter print where action=fasttrack-connection

Если правило есть и counters огромные — это норма для LAN-интернета. Не удаляйте FastTrack, чтобы «починить NAT»: при корректном masquerade FastTrack и NAT совместимы. Удаление имеет смысл только в тесте VPN/mangle.

Решение

Сценарий A. Сменили тип WAN

/ip firewall nat
remove [find comment=lan-out]
add chain=srcnat action=masquerade out-interface-list=WAN src-address=192.168.88.0/24 comment=lan-out

Членство ether1, pppoe-out1, lte1 в list WAN поддерживайте явно.

Сценарий B. Нужен src-nat на фиксированный 203.0.113.10

/ip firewall nat
add chain=srcnat action=src-nat to-addresses=203.0.113.10 out-interface=ether1 src-address=192.168.88.0/24

Не держите одновременно masquerade и src-nat на те же пакеты без dst-address/connection-mark — выигрывает верхнее.

Сценарий C. Несколько LAN

Либо не указывайте src-address (хуже для контроля), либо несколько правил, либо src-address-list=RFC1918. Не NAT'ьте вслепую чужие сети, которые должны идти в site-to-site без подмены.

Сценарий D. Policy routing

Если mangle ставит new-routing-mark, пакет может выйти через ether2, а masquerade висит только на ether1. Нужен srcnat на каждый выход или list. Подробнее: policy routing.

Как проверить, что проблема устранена

С хоста 192.168.88.50:

  • ping 192.168.88.1, затем 1.1.1.1;
  • tracert/traceroute — первый хоп шлюз LAN.

На роутере:

/ip firewall nat print stats
/ip firewall connection print where src-address="192.168.88.50"

Packets на masquerade растут. В connection есть srcnat. Повторите после переключения PPPoE reconnect — адрес WAN сменится, masquerade должен пережить это без правки to-addresses.

Если не помогло

  • Counters NAT растут, TCP не устанавливается: смотрите filter, MSS clamp на PPPoE (/ip firewall mangle action=change-mss).
  • Работает traceroute UDP и не работает HTTPS: DPI провайдера или proxy, не masquerade.
  • Hairpin в LAN (доступ к своему публичному IP изнутри) — отдельное dstnat + srcnat на bridge, не «ещё один masquerade на ether1».

Профилактика

  • NAT и filter только через interface-list.
  • После смены CPE/PPPoE — чеклист: address, route, nat out-interface.
  • Комментарии на правилах NAT, без десятка безымянных masquerade.
  • Export перед правкой NAT: backup/export.

Проверка out-interface в момент исходящего пакета

Маскарад срабатывает после выбора маршрута. Если default смотрит в pppoe-out1, а правило держит out-interface=ether1, пакет уже «вышел» в PPPoE, и NAT на ethernet его не видит. Снимите фактический выход:

/ip route print detail where dst-address=0.0.0.0/0
/ip firewall connection print where src-address~"192.168.88." and dst-address~"1.1.1"

Поле исходящего интерфейса в connection должно совпасть с NAT. Для DHCP WAN 203.0.113.10 это обычно ether1; после смены типа канала пересоберите WAN list и одно правило out-interface-list=WAN. Не плодите masquerade «на каждый порт, который когда-либо был WAN»: первое совпавшее правило выигрывает, и VPN-сети легко попадают под подмену source.

FAQ

masquerade vs src-nat — что выбрать на DHCP WAN?

Masquerade. Он берёт текущий адрес интерфейса. src-nat на вчерашний 203.0.113.10 после смены аренды молча ломается.

Почему рекомендуют out-interface, а не просто chain=srcnat?

Без out-interface подменяются и пакеты в VPN, и форварды в другую LAN. Это частый способ «починить интернет» ценой туннелей.

Нужно ли raw/notrack для NAT?

Нет для обычного SOHO. notrack обходит conntrack и ломает NAT. Не копируйте «оптимизации» с форумов на hEX.

FastTrack нужно выключить для проверки NAT?

На 30 секунд в лаборатории — допустимый тест. На проде сначала смотрите stats. Если NAT stats и так нулевые, FastTrack ни при чём.

Клиенты с серым IP выходят, сервер с белым на ether1 — нужен masquerade для сервера?

Для исходящих с самого роутера NAT не нужен (output). Masquerade — для транзита LAN.