Basicamente, uma máscara de sub-rede válida, quando escrita em binário, deve consistir em apenas 1's consecutivos e depois em 0s, mas nenhuma mistura intermitente. Ou seja:
255.255.255.128 -> 11111111.11111111.11111111.10000000 is valid
255.255.255.0 -> 11111111.11111111.11111111.00000000 is valid
255.255.255.144 -> 11111111.11111111.11111111.10010000 is not valid
Editar: Os primeiros bits (os bits não nulos) também podem ser configurados para corresponder ao endereço de rede, o importante é que, se você executar uma operação AND lógica em um IP com a máscara de sub-rede, obtenha o endereço de rede.
Host: 10.40.225.164 -> 0000 1010 . 0010 1000 . 1110 0001 . 1010 0100
Subnet M: 255.255.225.128 -> 1111 1111 . 1111 1111 . 1110 0001 . 1000 0000
Network: 10.40.225.128 -> 0000 1010 . 0010 1000 . 1110 0001 . 1000 0000