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