CIDR (Classless Inter-Domain Routing)
From this information, the Operating System can determine the most useful router to choose for a particular destination. On Solaris, the /etc/netmasks file tells the OS about particular netmasks for given networks; otherwise, the old, pre-CIDR standard is followed, whereby the IP address itself suggests its netmask:
| From |
To |
Class / Comments |
Netmask |
| 0.0.0.0 |
9.255.255.255 |
Class A |
255.0.0.0 |
| 10.0.0.0 |
10.255.255.255 |
Class A Private |
255.0.0.0 |
| 11.0.0.0 |
126.255.255.255 |
Class A |
255.0.0.0 |
| 127.0.0.0 |
127.255.255.255 |
Loopback |
255.0.0.0 |
| 128.0.0.0 |
172.15.255.255 |
Class B |
255.255.0.0 |
| 172.16.0.0 |
172.31.255.255 |
Class B Private |
255.255.0.0 |
| 172.32.0.0 |
191.255.255.255 |
Class B |
255.255.0.0 |
| 192.0.0.0 |
192.167.255.255 |
Class C |
255.255.255.0 |
| 192.168.0.0 |
192.168.255.255 |
Class C Private |
255.255.255.0 |
| 192.169.0.0 |
223.255.255.255 |
Class C |
255.255.255.0 |
| 224.0.0.0 |
239.255.255.255 |
Multicast |
... |
| 240.0.0.0 |
255.255.255.255 |
Reserved |
... |
You can see that each class (A,B,C) has a "Private" segment in the middle, which is
non-routable. Other than that, their netmasks are 255.0.0.0, 255.255.0.0. and 255.255.255.0 (ff000000, ffff0000, ffffff00 respectively, in Hex). That turned out to be a little too simplistic as internet usage grew, so we now have Classless Inter-Domain Routing (CIDR), which forgets about classes, and just says that a network can have any netmask. The closer you get to such a network, the more likely you are to need to know about how it is configured (hence /etc/netmasks, and CIDR in DNS, etc).