O problema é que seus segundo e terceiro intervalos se sobrepõem. A maneira de fazer isso é converter os endereços IP e as máscaras em binários (todos os endereços IP são simplesmente números binários de 32 bits) e mascarar os endereços com a máscara executando uma% lógica AND
. Se algum deles tiver o mesmo resultado, eles estão se sobrepondo às redes.
192.168.1.16 is 11000110101010000000000100010000
255.255.255.252 is 11111111111111111111111111111100
AND ===================================
11000110101010000000000100010000 = 192.168.1.16
192.168.1.20 is 11000110101010000000000100010100
255.255.255.240 is 11111111111111111111111111110000
AND ===================================
11000110101010000000000100010000 = 192.168.1.16
Como você pode ver, as redes desses dois endereços são da mesma rede. Existe uma excelente resposta no Engenharia de Redes SE site que explica tudo isso.