Esse artigo aborda preliminarmente o
conceito de protocolo ARP e mais extensamente como a máscara de sub-rede atua.
Foi visto no artigo sobre protocolo IPv4
que os computadores utilizam endereço IP como credencial para poder se
identificar e se comunicar, foi visto no artigo sobre switches e sobre o que é
a Internet, que os computadores utilizam a rede interna para se comunicar entre
si e até para acessar a Internet.
Mas como um computador saber que
determinado IP destinatário ou remetente pertence ou não à rede interna (seu
escritório ou casa) ou externa (possivelmente a Internet)?
O que o computador faz quando ele sabe que
determinado IP destino faz parte de uma rede externa e ele quer enviar dados
para o computador com esse IP externo?
A resposta está na máscara de sub-rede, um
registro que o computador tem do quanto o endereço do IP destino ou remetente
deve ser parecido com o dele para ser considerado o IP de uma máquina da mesma
rede.
A máscara permite um computador saber que o
IP do site do google.com por exemplo é diferente do dele, fazendo com que ele
envie o pacote para a porta Ethernet interna do roteador para o roteador enviar
o pacote para a porta externa (Internet).
O computador sabe o endereço MAC (descrito
no artigo sobre Switch) da porta Ethernet interna do roteador para poder enviar
um pacote IP para ele, mas como? É nessa hora que o protocolo ARP atua, o
computador que não conhece o endereço MAC (é bom relembrar que o MAC é uma
credencial utilizada para se comunicar na rede interna) envia pacotes ARP para
toda a rede interna perguntando o endereço MAC de quem possui o IP de porta
interna de roteador (essa porta interna é também chamada de Gateway, que
significa portão, no caso um portão para o mundo externo, o mundo da Internet),
quem possuir esse IP, retorna um pacote ARP com destino à máquina que fez o
questionamento, como o ARP estará encapsulado em um quadro Ethernet contendo
endereço MAC como remetente, a questão estará respondida.
E como a máscara de sub-rede funciona
exatamente?
A máscara de sub-rede possui o mesmo
tamanho de um endereço IP, são 4 octetos, ou seja, 4 campos com 8 bits (logo, 2
elevado a 8 ou 256 possibilidades em cada octeto), se um bit de uma determinada
posição for 1 (valor binário um), nesta mesma posição o bit do IP de outro
computador deve ser igual da máquina com esta máscara de sub-rede, é
recomendável uso de calculadora para converter decimal em Binário (o Windows
possuiu uma, é só abrir a calculadora e ativar o modo programador), nos
exemplos abaixo os bits 1 da máscara e os bits iguais dos IPs diferentes de
cada comparação entre dois computadores diferentes está marcada em vermelho e
os que devem ser iguais estão em verde, para facilitar o entendimento:
|
decimal
|
binário
|
Máscara de sub-rede computador do Renato
|
255.255.254.0
|
11111111.11111111.11111110.00000000
|
IP do computador do Renato
|
192.168.0.3
|
10100010.10101000.00000000.00000011
|
IP do computador do Márcio
|
192.168.3.7
|
10100010.10101000.00000011.00000111
|
Computador do Renato considera o do Márcio como
sendo da mesma rede?
|
Não, veja que o sétimo bit do terceiro octeto não é
igual para os dois IPs, como manda a mascara de subrede.
|
|
decimal
|
binário
|
Máscara de sub-rede computador do Jorge
|
255.255.255.0
|
11111111.11111111.11111111.00000000
|
IP do computador do Jorge
|
192.168.0.3
|
10100010.10101000.00000000.00000011
|
IP do computador do Lucas
|
192.168.0.7
|
10100010.10101000.00000000.00000111
|
Computador do Jorge considera o do Márcio como sendo
da mesma rede?
|
Sim, para todas as posições marcadas pelos bits 1 da
máscara os dois IPs são iguais
|
O caso mais comum em que um computador
percebe que outro faz parte de outra rede é quando há diferença entre
localidade das redes, e o caso mais comum pra isso acontecer, é uma rede ser
interna e a outra ser externa voltada para o provedor (que conecta à internet),
como por exemplo:
|
decimal
|
binário
|
Máscara de sub-rede computador do Renato
|
255.255.255.0
|
11111111.11111111.11111111.00000000
|
IP do computador do Renato (Rede Interna)
|
192.168.0.3
|
10100010.10101000.00000000.00000011
|
IP do Google.com
|
216.58.219.100
|
11011000.00111010.11011011.01100100
|
Computador do Renato considera o do Márcio como
sendo da mesma rede?
|
Não, novamente há vários bits diferentes nas
posições marcadas pela máscara, agora perceba também todos os 3 primeiros
octetos pertencem a redes diferentes.
|