2010-11-26 7 views
2

私はパケットの中にa.k.a tunnelingというパケットを持っています。つまり、[IP HEADER 1] [IP HEADER 2] [PAYLOAD]という形式です。最初のヘッダ(ライブラリによって行われた)を読んだ後、私はiptablesのINPUTチェーンで[IP HEADER 2]でパケットを取得します。私はiptablesの開始、すなわちPREROUTINGチェーンにパケットを再注入したい。究極の目的は、パケットをリモートホストに転送することです(そのため、パケットをPREROUTINGチェーンに入れたいのです)。私はlibipqについて何かを読んだことがありますが、本当にそれが最良の方法であるとは確信していません。パケットをIptablesに再注入するには?

+0

nfnetlink_queueがip_queueを交換していないかを決定するのはあなた次第です。 http://stackoverflow.com/search?q=nfqueue – ephemient

答えて

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テーブルが(代わりにlibipqのlibnetfilter_queueで)

+0

それを試し、有望に見えます。 –

関連する問題