IP TABLES 端口转发破坏了我的数据包?

IP TABLES 端口转发破坏了我的数据包?

这是我的情况。

我有一个工作守护进程,它通过专有协议(安装在端口上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_IFINET_IF是我的两个网卡,分别具有本地和公共 IP 地址, 是LUISANA在端口 上运行我的守护进程的本地网络上的机器的 IP 地址5000

当我的网络处于这种配置下时,iptables一些传入的数据包在转换过程中被破坏,协议失败。但是,如果我关闭这两个iptables并使用SSH 隧道进行端口转发,协议运行完美。

所以我的问题是:是什么原因导致此数据包损坏?可能与字节序有关?(两台机器、防火墙和 LUISANA 都在相同的 x86 硬件上运行相同的 LINUX 版本)。

相关内容