# Máscara de rede

Uma máscara de sub-rede, também conhecida como subnet mask ou netmask, é um número de 32 bits usado em um IP para separar a parte correspondente à rede pública, à sub-rede e aos hosts.
Uma sub-rede é uma divisão de uma rede de computadores. A divisão de uma rede grande em menores resulta num tráfego de rede reduzido, administração simplificada e melhor performance de rede. No IPv4 uma sub-rede é identificada por seu endereço base e sua máscara de sub-rede.

## Endereços de Rede e Endereços Lógicos

O termo endereço de rede pode tanto significar o endereço lógico, ou seja, o endereço da camada de rede – tal como o endereço IP, como o primeiro endereço (endereço base), de uma faixa de endereços reservada a uma organização.
Os computadores e dispositivos que compõem uma rede (tal como a Internet) possuem um endereço lógico. O endereço de rede é único e pode ser dinâmico ou estático. Este endereço permite ao dispositivo se comunicar com outros dispositivos conectados à rede. Para facilitar o roteamento os endereços são divididos em duas partes:
* O endereço (número) da rede que identifica toda a rede/sub-rede: o endereço de todos os nós de uma sub-rede começam com a mesma sequência.
* O endereço (número) do host que identifica uma ligação a uma máquina em particular ou uma interface desta rede.
Isto funciona de maneira semelhante a um endereço postal onde o endereço de rede representa a cidade e o endereço do host representa a rua. A máscara de sub-rede é usada para determinar que parte do IP é o endereço da rede e qual parte é o endereço do host.

### Classes IPv4

Os endereços IPv4 consistem de endereços de 32 bits divididos em 4 octetos e uma máscara de sub-rede do mesmo tamanho. Há três tipos de redes "classful"
| Classe | Bits iniciais | Início | Fim | Máscara de sub-rede padrão | Notação CIDR |
| A | 0 | 1.0.0.1 | 126.255.255.254 | 255.0.0.0 | /8 |
| B | 10 | 128.0.0.1 | 191.255.255.254 | 255.255.0.0 | /16 |
| C | 110 | 192.0.0.1 | 223.255.255.254 | 255.255.255.0 | /24 |
O primeiro octeto 127 não pertence à Classe A, pois é utilizado para LOOPBACK, quando ajustado o localhost para 127.0.0.0 e feito a operação do loopback realizando um ping em 127.0.0.1, que será o espelho da máquina que está gerando este ping.
Utiliza-se o loopback para testes de placas de rede e cabeamento entre o host e o switch. Portanto, a classe A vai de 1 a 126 no primeiro octeto. No primeiro octeto quando se define 127, é LOOPBACK para o endereço 127.0.0.1, com o localhost definido como 127.0.0.0 a classe B vai de 128 a 191 no primeiro octeto, a classe C vai de 192 a 223 no primeiro octeto; a classe D vai de 224 a 239 no primeiro octeto - classe restrita, reservada para Multicast; a classe E vai de 240 a 255 no primeiro octeto - classe restrita, reservada para pesquisas.
Uma rede "classful" é uma rede que possui uma máscara de rede 255.0.0.0 (classe A), 255.255.0.0 (classe B) ou 255.255.255.0 (classe C).

## Máscaras de rede

A máscara de rede padrão acompanha a classe do endereço IP: num endereço de classe A, a máscara será 255.0.0.0, indicando que o primeiro octeto se refere à rede e os três últimos ao host. Num endereço classe B, a máscara padrão será 255.255.0.0, onde os dois primeiros octetos referem-se à rede e os dois últimos ao host, e num endereço classe C, a máscara padrão será 255.255.255.0 onde apenas o último octeto refere-se ao host.
Os 32 bits das máscaras de sub-rede são divididos em duas partes: um primeiro bloco de 1s, indicando a parte do endereço IP que pertence à rede, seguido por um bloco de 0s, indicando a parte que pertence ao host.
Normalmente, as máscaras de sub-rede são representadas com quatro números de 0 a 255 separados por pontos. A máscara 255.255.255.0 (ou, em binário, 11111111.11111111.11111111.00000000).
Embora normalmente as máscaras de sub-rede sejam representadas em notação decimal, é mais fácil entender seu funcionamento usando a notação binária. Para determinar qual parte de um endereço é o da rede e qual é o do host, um dispositivo deve realizar a operação AND.
Exemplo classfull
| | Endereço Decimal | Binário |
| Endereço completo | 192.168.5.10 | 11000000.10101000.00000101.00001010 |
| Máscara da sub-rede | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| Porção da rede | 192.168.5.0 | 11000000.10101000.00000101.00000000 |
A porção da rede é o resultado de um AND entre o endereço da rede e a máscara.
As máscaras de sub-rede não precisam preencher um octeto ("byte"). Isto permite que uma rede “classfull” seja subdividida em sub-redes. Para criar uma sub-rede reserva-se alguns bits do host para a rede. O exemplo a seguir mostra como os bits podem ser "emprestados" para converter uma rede classfull em uma sub-rede.
Exemplo CIDR
| | Endereço Decimal | Binário |
| Endereço completo | 192.168.5.130 | 11000000.10101000.00000101.10000010 |
| Máscara de sub-rede | 255.255.255.192 | 11111111.11111111.11111111.11000000 |
| Porção da sub-rede | 192.168.5.128 | 11000000.10101000.00000101.10000000 |
No exemplo dois bits foram emprestados da porção do host e usados para identificar a sub-rede.
| IP | Prefixo da Rede | Número da sub-rede | Número do Host |
| 11000000.10101000.00000101.10000010 | 11000000.10101000.00000101 | 10 | 000010 |
Para determinar o número de hosts/sub-redes disponíveis a partir de certa máscara de sub-rede devemos verificar o número de bits emprestados. No exemplo anterior, por exemplo, há 2 bits emprestados, logo há:
* $2^{2}=4$ sub-redes disponíveis RFC 1812, já pela antiga RFC 950 o número de sub-redes seria 2. Isto se deve ao fato de que a RFC 950 (seção 2.1, página 5) não permite sub-redes com todos os bits em 1 ou em 0.
As quatro sub-redes são:
* 11000000.10101000.00000101.00000000 = 192.168.5.0
* 11000000.10101000.00000101.01000000 = 192.168.5.64
* 11000000.10101000.00000101.10000000 = 192.168.5.128, sendo que o endereço IP 192.168.5.130 encontra-se nessa sub-rede;
* 11000000.10101000.00000101.11000000 = 192.168.5.192