20просмотров
87.0%от подписчиков
27 января 2026 г.
Score: 22
Комментарий к заметке https://bozza.ru/art-379.html Меня тут спросил один человек по поводу настройки hairpin, дополню так, может и другим будет проще понять. 1. Клиент отправляет пакет
Например: 192.168.1.10 → 1.2.3.4:443.
MikroTik получает пакет. 2. Выполняется цепочка dstnat (PREROUTING)
MikroTik переписывает адрес назначения: dst-address: 1.2.3.4 → 192.168.1.100
Но пакет ещё не отправлен — он только прошёл PREROUTING-хуку. 3. Выполняется маршрутизация
Теперь роутер решает, куда отправить пакет:
он видит, что 192.168.1.100 находится в локальной сети (LAN-интерфейс),
выбирает интерфейс LAN как выходной.
Это всё ещё не выход пакета, это лишь принятие решения. 4. Пакет проходит цепочку forward
Это обычная межинтерфейсная передача (если фильтров нет — просто проходит). 5. Попадает в цепочку srcnat (POSTROUTING)
Это последний этап перед отправкой.
Здесь и срабатывает правило:
если источник из LAN,
а назначение внутренняя машина по проброшенному порту,
то делаем masquerade/SNAT.
Вот теперь пакет действительно выходит наружу.
Это и есть ответ: SRC-NAT применяется позже, всегда после маршрутизации, перед самой отправкой, независимо от того, был ли выполнен DST-NAT ранее. Ключевая идея
DST-NAT и SRC-NAT не конкурируют и не блокируют друг друга, потому что работают на разных этапах жизненного цикла пакета.
DST-NAT = изменить адрес назначения до маршрутизации.
SRC-NAT = изменить адрес источника после маршрутизации.
Поэтому пакет всегда может пройти оба правила NAT в одном прохождении — и именно это обеспечивает NAT-hairpin.