Назад | Перейти на главную страницу

Сохранить исходный порт для исходящих пакетов

У меня 2 интерфейса eth0 (192.168.0.1) и eth1 (10.1.1.15). И я так делаю нат для всех пакетов.

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

Теперь я хочу сохранить исходный порт для пакетов natted, например:

192.168.0.1:8080 -> нат -> 10.1.1.15:8080

Можно ли это сделать с помощью iptables?

По умолчанию MASQUERADE (как и SNAT) пытается сохранить исходный порт машины, устанавливающей соединение. Но, конечно, если два хоста используют один и тот же, тогда ему придется выбрать другой для второго хоста.

Вы также можете явно установить диапазон портов для каждого протокола с помощью:

/sbin/iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports <i>[-<n>]