Короткий ответ
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.
Возможные причины
out-interfaceне совпадает с маршрутом default (ether1 vs pppoe vs LTE).- Правило
disabled=yesили стоит вdstnatпо ошибке. src-addressсузили до чужой сети, LAN192.168.88.0/24не попадает.- Filter
forwarddrop до того, как пакет станет кандидатом на NAT (NAT src происходит после routing; forward drop убивает транзит). - Два masquerade с разным
out-interfaceи policy routing: пакет уходит в таблицу, где NAT не срабатывает. action=src-natна старый IP после смены аренды DHCP.- 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 stats1. Совпадает ли out-interface с default route
Если dst-address=0.0.0.0/0 через pppoe-out1, правило должно использовать этот интерфейс или out-interface-list=WAN, куда входит pppoe. Проверка списков:
/interface list member print2. Попадает ли клиент в 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.