I'm confused.
From RFC 1918:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
The prefix 172.16/12 seems strange to me for the range 16-31. Masks are supposed to use contiguous binary 1s.
A prefix of /12 for contiguous 1s should indicate:
11111111.11110000
Only 172.16 (10101100.00010000) is masked by that range. All non-16 bits for oclets 17-31 are not protected by the mask.
But, the binary mask to cover 172.16 - 172.31 is
11111111.00011111
List of 172.16 - 172.31:
10101100.00010000
10101100.00011111
10101100.00011110
10101100.00011101
10101100.00011100
10101100.00011011
10101100.00011010
10101100.00011001
10101100.00011000
10101100.00010111
10101100.00010110
10101100.00010101
10101100.00010100
10101100.00010011
10101100.00010010
10101100.00010001
So, a prefix of 172.16/16 (11111111.11111111) to mask all these makes more sense to me.
Is this RFC 1918 range of 172.16.0.0 - 172.31.255.255 not contiguous?
Or does a /12 prefix actually indicate:
11111111.00001111
But, that number range only goes to 15, in which case we need:
11111111.00011111
And, that should be 172.16/13, if it is not contiguous.