Сохранить исходный порт для исходящих пакетов
У меня есть 2 интерфейса eth0(192.168.0.1) и eth1(10.1.1.15). И я делаю nat для всех пакетов таким образом.
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
Теперь я хочу сохранить исходный порт для натированных пакетов, например так:
192.168.0.1:8080 -> nat -> 10.1.1.15:8080
Возможно ли это сделать с помощью iptables?
1 ответ
Решение
По умолчанию MASQUERADE (например, SNAT) пытается сохранить исходный порт компьютера, устанавливающего соединение. Но, конечно, если два хоста используют один и тот же, ему придется выбрать другой для второго хоста.
Вы также можете явно установить диапазон портов для протокола с помощью:
/sbin/iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports <i>[-<n>]