Re: Layer jump in Linux?

Julian Anastasov
2002-04-24T22:24:20Z

Hello,

On Wed, 24 Apr 2002, Jose Celestino wrote:

> I noticed a while ago that I can ping a machine on a diferent network, with
no
> IP on that network, if I have a network interface on the same broadcast
domain
> as that machine''s interface if I add a route to that IP through
the local IP in
> the same broadcast domain.

	Yes, if you are using a gateway for some network the gateway
can send you ICMP redirect to tell you that this network is directly
reachable and you better to talk directly instead of using me (the
gateway).

> Linux1 should not be able to ping Linux2 except through a gw, right?

	Only if:

1. You stop the ICMP redirects in your gateway

2. You stop accepting these redirects in your host

	But for the hosts and networks that you use route via
local IP on interface you don''t use gateway, so no ICMP redirects
should be received. You are probing these IPs via ARP.

> (They''re not on the same network so the packet should go through
the
> default gw if a less generic route isn''t defined, of course)

	Until you are redirected from the gateway

> And the packet should go on until it reached a router/gw with a IP
> on the eee.fff.ggg.0/24 net and it would then be delivered to
> eee.fff.ggg.hhh.

	If your host does not believe to these ICMP redirects.

> The problem is that the linux stack seems to completely "short
circuit"
> from layer 3 to layer 2 if I add a gw to eee.fff.ggg.hhh through
> aaa.bbb.ccc.ddd (route add -host eee.fff.ggg.hhh gw aaa.bbb.ccc.ddd);
> it issues an arp request regardless if the destination
> IP is on the local network or not.

	In this case your host will probe via ARP only .hhh but the
packets to the other hosts from eee.fff.ggg/24 net should go
to gateway until redirected.

> Is this a correct behaviour? Am I missing something?

	Looks correct.

> Note: this only happens between 2 linuxes, I tried between 2 FreeBSDs
> but the IP stack behaves diferently.

	May be different settings. It is completely valid one
host to be able to talk with networks without using IP from them.
You need the help from routes or from gateway.

> TIA.

Regards

--
Julian Anastasov <ja@ssi.bg>