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

Переадресация портов IPTABLES портит мои пакеты?

Вот мой сценарий.

У меня РАБОЧИЙ ДЕЙМОН, получающий пакеты по проприетарному протоколу (установлен на порт 5000), который безупречно работает более десяти лет.

Но у меня странная проблема.

У меня есть брандмауэр с нашим общедоступным IP-адресом, который выполняет ПЕРЕНАПРАВЛЕНИЕ ПОРТА с IPTABLES следующим образом:

IPT=iptables
LUISANA=192.168.0.1 
LOCAL_IF=eth0
INET_IF=eth1
$IPT -t nat -A PREROUTING -i $LOCAL_IF -p tcp --dport 5000 -j DNAT --to $LUISANA:5000
$IPT -t nat -A PREROUTING -i $INET_IF -p tcp --dport 5000 -j DNAT --to $LUISANA:5000

Вот, LOCAL_IF и INET_IF два моих сетевых адаптера с локальным и публичным IP-адресами соответственно и LUISANA это IP-адрес машины, которая находится в локальной сети, на которой запущен мой демон на порту 5000.

Когда у меня есть сеть с такой конфигурацией, iptables некоторые входящие пакеты повреждаются при преобразовании, и протокол выходит из строя. Однако, если я сниму этих двоих iptables и использовать ssh туннель для перенаправления портов протокол работает безупречно.

Итак, мой вопрос: что может вызвать повреждение этого пакета? Может быть, это как-то связано с порядком байтов? (обе машины, FIREWALL и LUISANA используют одну и ту же версию LINUX на одном оборудовании x86).