Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Dec 2001 10:02:35 +1000 (EST)
From:      Colin Campbell <sgcccdc@citec.qld.gov.au>
To:        Jim Weeks <jim@siteplus.net>
Cc:        "Forrest W. Christian" <forrestc@imach.com>, Rowan Crowe <rowan@sensation.net.au>, <freebsd-isp@FreeBSD.ORG>
Subject:   Re: arplookup
Message-ID:  <Pine.BSF.4.33.0112100947210.93856-100000@guru.citec.qld.gov.au>
In-Reply-To: <Pine.BSF.4.21.0112091821530.562-100000@veager.jwweeks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On Sun, 9 Dec 2001, Jim Weeks wrote:

> This is a very well thought out response, and belive I understand your
> example.  However, this isn't representative of the problem I am having.
> This particular network is supposed to be set up on class c boundaries.
> In this case we will say that the ip of my machine is 192.168.2.100 with
> netmask 255.255.255.0, and my default gateway is 192.168.2.1.

Are you sure that's your netmask? The only way a system will ARP for a
machine is if it thinks the destination is on the same network. Without
"real" information we can only assume you are checking your
config thoroughly. A single digit typo could cause the problem you are
describing. I understand your desire top keep addresses "secret" but
without the output from:

ifconfig -a
netstat -rn

we really are flying blind.

For example, if your networks are

	your server 192.168.2.100 and router 192.168.2.1, netmask
	255.255.254.0 (even though you're "sure" it isn't)

	and the unreachable hosts are 192.168.3.x and 192.168.3.y
	then you'll see exactly what you re seeing.

There's only two things that can cause what you are seeing

1) your netmask isn't what you think it is
2) you have some NAT going on

If it helps, here's my understanding of how "routing" works:

o a packet destined for host "X" is created
o the IP stack looks at all the machine's interfaces to see if any is on
  the same network:

	for each interface
		get IP address of interface
		apply netmask to interface
		result is "network" address
		apply the current netmask to the destination
		result is destination "network" address

o if the resulting networks are the same, then the destination is directly
  reachable from that interface

	consult kernel ARP table for destination MAC address, if not
	there, send an ARP request to get the MAC address for the
	destination IP

o if no host interfaces match, consult the routing tables and find the
  most specific matching network, its router and the local intertface

	consult kernel ARP table for MAC address of router, if noth there,
	send ARP request for router

o by now all the needed information is available for the IP and ethernet
  frames:

	source IP - from the interface packet departs
	source MAC - ditto
	destination IP - from the original request
	destination MAC - either from destination machine if on the same
		wire, or the router MAC address

Colin
--
Colin Campbell
Unix Support/Postmaster/Hostmaster
CITEC
+61 7 3006 4710


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.33.0112100947210.93856-100000>