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).