Date: Tue, 29 Apr 2003 13:56:20 -0400 From: Bill Moran <wmoran@potentialtech.com> To: Steve Warwick <ukla@attbi.com> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Netmasks: the truth is out there? Message-ID: <3EAEBCC4.4070606@potentialtech.com> In-Reply-To: <BAD3FE56.49C3%ukla@attbi.com> References: <BAD3FE56.49C3%ukla@attbi.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Steve Warwick wrote: > Hi All, > > I know someone out there knows the truth about netmasks. All the > documentation I can find on the net talks about "masking off" part of the IP > address and how you can tell network from subnet and host ids. > > However, I have knowledgeable friend who is telling me that the netmask is > also dependant on how the hosting company has set up their routing tables > and incorrect netmasking on my part can reduce or halt my connection. > > So the question is, who is right? Is it as simple as just masking off the > first three octets or does the netmask interact with the router? > > Please point me to an authoritative source or if you have the time, a brief > description of if or how the netmask has to match the router, as I am not > sure what questions to ask my hosting company. I don't know of any good primer for IP routing/netmasks, so I'll explain it briefly. First, you need to know how to do a binary "and" operation. (I'll use & to represent and to save typing) Basically, 1 & 1 = 1, 1 & 0 = 0, 0 & 0 = 0 On a larger scale: 255 & 240 = 240, 128 & 64 = 0, 15 & 3 = 3, 3 & 6 = 2 If you don't understand how those work out, you will not understand the rest. Find an explanation of binary operations such as "and" and study it until those examples make sense to you. Most of the people I know who think they understand IP/netmasks and yet screw it up all the time don't understand a basic binary and operation. Now, once you've got that, there's a very simple equation: IP & netmask = network number It's that simple, but the implications are considerable: 1) When you configure a network card, you provide ip, netmask ... the system can calculate the network number, and from network number/ netmask, it can determine whether or not any given IP is on that network or not. This is how routing works. 2) Routers have many interfaces and netmasks. If they're configured wrong, packets go the wrong way and network traffic works poorly (if at all) 3) On a workstation, routing is much simpler. You have two routes of importance: The route to the local network and the default route Using the network number/netmask equation, each packet is checked to see if it's on the local network: if not, it's forwarded to the default gateway. If your netmask is wrong on a workstation, it's possible (depending on how wrong it is) for networking not to work at all, or only fail occasionally. 4) On a gateway, it's still pretty simple: You have two routes based on IP/netmask. The system checks each packet to see if it belongs on one of those, if so, that's the network card the packet is sent out. Othewise, it's forwarded to that gateway's default gateway. Bungled netmasks on a gateway can cause problems from complete failure to a few sites that are inaccessable. Use "netstat -rn" to see your local routing table. This should help some. netstat uses a slightly different notation for netmasks, it uses the /## notation (for example 172.16/16) This means: "the first 16 bits are ones and the rest are zeros". The logic, math, etc is the same as if you said 255.255.0.0, just the notation is shorter. (takes up less space on the screen) Hope this helps. -- Bill Moran Potential Technologies http://www.potentialtech.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3EAEBCC4.4070606>