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