LINUX.ORG.RU

История изменений

Исправление zaz, (текущая версия) :

Для такого случая нужен дополнительный SNAT. Получается ситуация следующая (например 192.168.11.100 - клиент, 192.168.11.1 - роутер)

192.168.11.100 - посылает SYN пакет через роутер (192.168.11.1) на 11.11.11.11
192.168.11.1 делает DNAT и перенаправляет пакет на 192.168.11.142
192.168.11.142 - видит син пакет от 192.168.11.100 и отвечает ACK на 192.168.11.100 (на прямую мимо роутера).
192.168.11.100 - видит ACK от 192.168.11.142 и не знает что с ним делать так как SYN пакетов туда никто не посылал (конектились к 11.11.11.11 а не 192.168.11.142)

Я обычно такие ситуации лечу так:

iptables -A POSTROUTING -t nat -o ${LAN_IF} -s 192.168.0.0/16 -m conntrack --ctorigdst ${WAN_IP} -j SNAT --to-source ${LAN_IP}

Исходная версия zaz, :

Для такого случая нужен дополнительный SNAT. Получается ситуация следующая (например 192.168.11.100 - клиент, 192.168.11.1 - роутер)

192.168.11.100 - посылает SYN пакет через роутер (192.168.11.1) на 11.11.11.11
192.168.11.1 делает DNAT и перенаправляет пакет на 192.168.11.142
192.168.11.142 - видит син пакет от 192.168.11.100 и отвечает ACK на 192.168.11.100 (на прямую мимо роутера).
192.168.11.100 - видит ACK от 192.168.11.142 и не знает что с ним делать так как SYN пакетов туда никто не посылал (конектились к 11.11.11.11 а не 192.168.11.142)