All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: ARP Help (was - [LARTC] snooping - plan B)
@ 2003-07-30 16:01 Jim Redman
  2003-07-31  2:37 ` Martin A. Brown
  0 siblings, 1 reply; 2+ messages in thread
From: Jim Redman @ 2003-07-30 16:01 UTC (permalink / raw)
  To: lartc

Thanks for the help from the list so far.  It's now reduced to an ARP 
problem.

host0
192.168.253.1----snoopy(eth0 192.168.253.254)

Now ping 192.168.253.2 and get snoopy to respond.  This can be done 
with netfilter (but not, apparently with ip).

iptables -A PREROUTING -t nat -p icmp -d 192.168.253.2 -j DNAT --to 
192.168.253.254
/sbin/arp -i eth0 -Ds 192.168.253.2 eth0 pub

gets you a "host unreachable" from 192.168.253.1

BUT if on host0 you:

/sbin/arp -s 192.168.253.2  HWADDR

then ping goes through.

Help from ARP experts (or others!) much appreciated.

Jim

On 2003.07.30 00:49, Martin A. Brown wrote:
> Jim,
> 
> First, let me say that I may not have caught all of your plan...but
> here
> goes....
> 
> If you really wish to modify application layer data, shouldn't you be
> looking at divert sockets [1], tun/tap usage [2], or optimally
> home-grown
> code?
> 
>  : OK, assuming this to be impossible.  Let's try the ARP approach.  I
>  : want to set up eth0 with ip 192.168.3.1 nat all packet addressed to
>  : 192.168.1.1 to 192.168.3.1 and ARP the address of 192.168.1.1 into
>  : eth0.  I still have some problems, any suggestions appreciated.
>  : Here's what I've tried (along with many variations):
> 
> Hmmmmm....  I haven't ever tried to do exactly what you seem to
> suggest
> here, but this may be an interesting approach.  If you are going to
> use
> NAT to solve your problem, you can try NATting each host into the
> other.
> 
>  : arp -i eth0 -Ds 192.168.1.1 eth0 pub
>  : ip route add nat 192.168.1.1 via 192.168.3.1
>  : ip rule add from 192.168.3.1 nat 192.168.1.1
> 
>  [ Note: I'm using the IP ranges you suggested in a prior mail. ]
> 
>   host-0                  +--------+               host-1
> 192.168.253.1 <--> eth0 <-- snoopy --> eth1 <--> 192.168.253.2
>                           +--------+
> 
> Assuming that you want host-0 to reach host-1, but only through
> snoopy,
> and you don't want to alter any network addressing on either host-0 or
> host-1:
> 
> # ip route add 192.168.253.1 dev eth0
> # ip route add 192.168.253.2 dev eth1
> # ip route add nat 192.168.253.102 via 192.168.253.2 iif eth0
> # ip rule add nat 192.168.253.102 from 192.168.253.2 iif eth1
> # ip route add nat 192.168.253.101 via 192.168.253.1 iif eth1
> # ip rule add nat 192.168.253.101 from 192.168.253.1 iif eth0
> 
> The nat route entry in the local routing table will take care of the
> ARP
> advertising for you, so any packets from host-0 addressed to
> 192.168.253.102 should end up on 192.168.253.2, but with a source
> address
> of 192.168.253.101.
> 
> So, a packet from host-0 to host-1 will look like this....
> 
>            host-0 side of      snoopy      host-1 side of
> 
>  Source: 192.168.253.1                   192.168.253.101
>    Dest: 192.168.253.102                 192.168.253.2
> 
> To me, this looks terribly convoluted and rather messy, not to mention
> that I have never tried it!  Nonetheless, I think this should work,
> provided that the nat IPs you choose are not in use anywhere else in
> your
> 192.168.253.0/24 network.
> 
>  : this alone is not sufficient, so I've tried adding routes for
>  : 192.168.1.1
>  : ip route add 192.168.1.1 dev eth0
>  : and so forth.  I haven't yet been successful and would apprciate
> any
>  : help.
> 
> Now, if I might make another recommendation....
> 
> Take a look at bridging [3].  This project has been maturing very
> nicely,
> and there have been very happy rumbles from people using the linux
> bridging code.  With the help of IP mode [4], you may get the control
> you
> desire.  Also look at the bridge + firewall documentation [5] and make
> sure to fetch the br+nf patches if you are using a 2.4 kernel [6].
> 
> Good luck,
> 
> -Martin
> 
>   [1]  http://152.45.4.41/~divert/index.shtml
>   [2]  http://vtun.sourceforge.net/tun/
>   [3]  http://bridge.sourceforge.net/
>   [4]  http://www.ssi.bg/~ja/bridging.txt
>   [5]  http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
>   [6]  http://sourceforge.net/projects/ebtables/
> 
> 
> --
> Martin A. Brown --- SecurePipe, Inc. --- mabrown@securepipe.com
> 

-- 

Jim Redman
(505) 662 5156 x85
http://www.ergotech.com
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: ARP Help (was - [LARTC] snooping - plan B)
  2003-07-30 16:01 ARP Help (was - [LARTC] snooping - plan B) Jim Redman
@ 2003-07-31  2:37 ` Martin A. Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Martin A. Brown @ 2003-07-31  2:37 UTC (permalink / raw)
  To: lartc

Jim,

I must be uncommonly dense, because I still haven't a clue what you are
trying to do.  I'll take one last stab at it, though.

 : host0
 : 192.168.253.1----snoopy(eth0 192.168.253.254)
 :
 : Now ping 192.168.253.2 and get snoopy to respond.  This can be done
 : with netfilter (but not, apparently with ip).

Accurate, as far as I know.

 : iptables -A PREROUTING -t nat -p icmp -d 192.168.253.2 -j DNAT --to 192.168.253.254

Sure.

 : /sbin/arp -i eth0 -Ds 192.168.253.2 eth0 pub
 : gets you a "host unreachable" from 192.168.253.1

Have you tried this?

  arp -s 192.168.253.2 -i eth0 -D eth0 pub

Sadly, /sbin/arp (at least on my test boxen) seems to be persnickety about
the order of arguments and options.

 : BUT if on host0 you:
 : /sbin/arp -s 192.168.253.2  HWADDR
 :
 : then ping goes through.
 : Help from ARP experts (or others!) much appreciated.

If you really wish to get your hands dirty with ARP, you can always have
ultimate control with "ip arp", a kernel + iproute2 patch.

  http://www.ssi.bg/~ja/#iparp

Bonne chance,

-Martin

-- 
Martin A. Brown --- SecurePipe, Inc. --- mabrown@securepipe.com

_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-07-31  2:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-07-30 16:01 ARP Help (was - [LARTC] snooping - plan B) Jim Redman
2003-07-31  2:37 ` Martin A. Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.