如何在Iptables中重新注入数据包?

时间:2010-11-26 16:00:15

标签: c routing iptables

我在数据包a.k.a隧道中有一个数据包。所以它的形式是[IP HEADER 1] [IP HEADER 2] [PAYLOAD]。在读完第一个标题(由库完成)之后,我将在iptables的INPUT链中获得带有[IP HEADER 2]的数据包。我想重新将数据包注入iptables的开头,即在PREROUTING链中。最终目标是将数据包转发到远程主机(这就是我希望数据包在PREROUTING链中的原因)。我已经阅读了关于libipq的一些内容,但我不确定这是最好的方法。

1 个答案:

答案 0 :(得分:1)

尽管可能会有一些附加目标来执行此操作。我的直觉是,您可以使用MARK目标来标记此数据包,然后使用iproute2设置您希望它前往的路由。

类似的东西:

iptables -t mangle -A INPUT -s 192.168.1.2 -j MARK --set-mark 0xAA

ip rule add fwmark 0xAA table Reroute_Tunnel

然后您可以添加并决定Reroute_Tunnel表的作用