* nfqueue vs. tproxy
@ 2011-12-08 0:25 msk
2011-12-08 1:43 ` Susan Hinrichs
2011-12-08 2:21 ` Jan Engelhardt
0 siblings, 2 replies; 5+ messages in thread
From: msk @ 2011-12-08 0:25 UTC (permalink / raw)
To: netfilter
I've been reading up on tproxy and nfqueue. Just to confirm my understanding
of the two:
Could one write a layer of code that uses the nfq_*() functions to basically
implement what tproxy can do by simply adjusting the destination information
and checksum, and then returning NF_REPEAT verdicts for each?
Thanks,
-MSK
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: nfqueue vs. tproxy
2011-12-08 0:25 nfqueue vs. tproxy msk
@ 2011-12-08 1:43 ` Susan Hinrichs
2011-12-08 4:21 ` Jan Engelhardt
2011-12-08 2:21 ` Jan Engelhardt
1 sibling, 1 reply; 5+ messages in thread
From: Susan Hinrichs @ 2011-12-08 1:43 UTC (permalink / raw)
To: msk; +Cc: netfilter
You could do that, but the second recipient of the code would lose the
original destination address and port information.
This would be more like the REDIRECT target in iptables.
On Wed, 2011-12-07 at 16:25 -0800, msk@cloudmark.com wrote:
> I've been reading up on tproxy and nfqueue. Just to confirm my understanding
> of the two:
>
> Could one write a layer of code that uses the nfq_*() functions to basically
> implement what tproxy can do by simply adjusting the destination information
> and checksum, and then returning NF_REPEAT verdicts for each?
>
> Thanks,
> -MSK
> --
> To unsubscribe from this list: send the line "unsubscribe netfilter" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: nfqueue vs. tproxy
2011-12-08 0:25 nfqueue vs. tproxy msk
2011-12-08 1:43 ` Susan Hinrichs
@ 2011-12-08 2:21 ` Jan Engelhardt
1 sibling, 0 replies; 5+ messages in thread
From: Jan Engelhardt @ 2011-12-08 2:21 UTC (permalink / raw)
To: msk; +Cc: netfilter
On Thursday 2011-12-08 01:25, msk@cloudmark.com wrote:
>I've been reading up on tproxy and nfqueue. Just to confirm my understanding
>of the two:
>
>Could one write a layer of code that uses the nfq_*() functions to basically
>implement what tproxy can do by simply adjusting the destination information
>and checksum, and then returning NF_REPEAT verdicts for each?
That would be really cumbersome, because with nf_queue, you end up
just having the bare packet. With tproxy, you get the full benefits of
a socket and TCP handling.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: nfqueue vs. tproxy
2011-12-08 1:43 ` Susan Hinrichs
@ 2011-12-08 4:21 ` Jan Engelhardt
2011-12-08 10:49 ` Susan Hinrichs
0 siblings, 1 reply; 5+ messages in thread
From: Jan Engelhardt @ 2011-12-08 4:21 UTC (permalink / raw)
To: Susan Hinrichs; +Cc: msk, netfilter
On Thursday 2011-12-08 02:43, Susan Hinrichs wrote:
>You could do that, but the second recipient of the code would lose the
>original destination address and port information.
Um, no.
The second recipient of the packet (code? no.) is either
(a) intentionally the same as the original destination, therefore the
daddr-dport tuple is already known (obviously)
(b) intentionally not the same as the original destination, i.e. not
meant to know the original daddr-dport tuple.
And if you need, you can add extra bytes into the stream to tell the new
peer (in case of (b)) the original address within the stream, provided
the protocol can carry that information. If the protocol does not allow
for it, it is not going to be interesting for the recipient anyway.
Oh and don't top-post.
>On Wed, 2011-12-07 at 16:25 -0800, msk@cloudmark.com wrote:
>> I've been reading up on tproxy and nfqueue. Just to confirm my understanding
>> of the two:
>>
>> Could one write a layer of code that uses the nfq_*() functions to basically
>> implement what tproxy can do by simply adjusting the destination information
>> and checksum, and then returning NF_REPEAT verdicts for each?
>>
>> Thanks,
>> -MSK
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: nfqueue vs. tproxy
2011-12-08 4:21 ` Jan Engelhardt
@ 2011-12-08 10:49 ` Susan Hinrichs
0 siblings, 0 replies; 5+ messages in thread
From: Susan Hinrichs @ 2011-12-08 10:49 UTC (permalink / raw)
To: Jan Engelhardt; +Cc: msk, netfilter
On Thu, 2011-12-08 at 05:21 +0100, Jan Engelhardt wrote:
> On Thursday 2011-12-08 02:43, Susan Hinrichs wrote:
>
> >You could do that, but the second recipient of the code would lose the
> >original destination address and port information.
>
> Um, no.
> The second recipient of the packet (code? no.) is either
>
> (a) intentionally the same as the original destination, therefore the
> daddr-dport tuple is already known (obviously)
>
> (b) intentionally not the same as the original destination, i.e. not
> meant to know the original daddr-dport tuple.
>
> And if you need, you can add extra bytes into the stream to tell the new
> peer (in case of (b)) the original address within the stream, provided
> the protocol can carry that information. If the protocol does not allow
> for it, it is not going to be interesting for the recipient anyway.
>
> Oh and don't top-post.
>
> >On Wed, 2011-12-07 at 16:25 -0800, msk@cloudmark.com wrote:
> >> I've been reading up on tproxy and nfqueue. Just to confirm my understanding
> >> of the two:
> >>
> >> Could one write a layer of code that uses the nfq_*() functions to basically
> >> implement what tproxy can do by simply adjusting the destination information
> >> and checksum, and then returning NF_REPEAT verdicts for each?
> >>
> >> Thanks,
> >> -MSK
Thanks for the clarification. I see now. And sorry for the breach of
etiquette.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-12-08 10:49 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-08 0:25 nfqueue vs. tproxy msk
2011-12-08 1:43 ` Susan Hinrichs
2011-12-08 4:21 ` Jan Engelhardt
2011-12-08 10:49 ` Susan Hinrichs
2011-12-08 2:21 ` Jan Engelhardt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox