On Sat, Jul 16, 2011 at 05:38:45PM -0300, Christiano F. Haesbaert wrote:
> On Sat, Jul 16, 2011 at 04:42:41PM +0200, Martin Pelikan wrote:
> > 2011/7/16 Christiano F. Haesbaert <haesba...@haesbaert.org>:
> > > H,m, I think it would, since bpf can catch the packet, another possible 
> > > option
> > > would be IP_DIVERT to catch the packets and then send it with the raw 
> > > socket,
> > > but would still be a little awkward (IMHO).
> > 
> > What's awkward about bpf/divert(4)? And how hard is to filter the
> > proper replies from the tunnel traffic? It's I think the cleanest
> > solution above all (and portable at least to freebsd, too).
> 
> Nothing awkward about divert(4), I was just thinking, since there's an icmp
> socket, I'd like to use it. divert(4) is a reasonable alternative.
> > 
> > These things would be great to be controlled per-rdomain or
> > per-interface, fwiw. Even ip_forwarding could, if it doesn't clash
> > with the RFCs. But I guess it would be hard to implement, since it's
> > highly AF-specific, struct domain has no place for it and there's no
> > tool doing similar things (would be like "route -T1 set -inet
> > reply_to_icmp 1" ?). And forwarding is used all over the code, which
> > makes changes like this bug-prone.
> 
> Indeed implying no echo for all interfaces may be a bad thing.
> 

Honestly, if you like playing evil things with packets use the bpf socket.
You can use it to recv and send packets and there is a option to not pass
packets intercepted by the bpf handler to the network stack. We don't need
more buttons for a very uncommon use case.

-- 
:wq Claudio


Reply via email to