Para saber se um pc de origem esta na mesma rede que um pc de destino é necessário fazer um And bit a bit( coloca-se o ip em cima da máscara e onde for 1 no ip e na mascara o bit da rede é 1, qualquer outra combinação o bit da rede é 0). Para quem não sabe o que é isso não precisa se assustar, é algo fácil de se fazer vamos ao primeiro exemplo:
Exemplo A: origem e destino estão na mesma rede. Maquina A com IP 10.1.0.5/25 deseja conversar com 10.1.0.120 (ela não sabe a máscara do destino).
Máquina A primeiro determina a sua rede aplicando um AND do seu IP com sua máscara, sendo que ela agora é 255.255.255.128, pois um /25 significa 25 bits em 1, para quem não entendeu, no total são 32 bits, sendo que os primeiros 25 vc preenche com o número 1, ficando assim:
11111111 11111111 11111111 10000000
(255) (255) (255) (128)
Fazendo and bit a bit:
(10) (1) (0) (5)
00001010 00000001 00000000 00000101 = ip de origem
(255) (255) (255) (128)
11111111 11111111 11111111 10000000 = sua mascara
00001010 00000001 00000000 00000000 = ip da rede (10.1.0.0)
Ela chega a conclusão que pertence a rede 10.1.0.0. Ela faz o mesmo com o IP de destino, aplicando um AND do IP de destino COM A SUA MÁSCARA (única que ela tem):
(10) (1) (0) (120)
00001010 00000001 00000000 01111000
11111111 11111111 11111111 10000000 (25 bits em 1)
00001010 00000001 00000000 00000000 = ip da rede (10.1.0.0)
Como resultado deste AND, chega-se ao cálculo de 10.1.0.0. Como o número calculado para rede é o mesmo, a conclusão é que o destino está aqui, local, basta realizar um ARP e endereçar diretamente o MAC do destino. Nada de gateway.
Exemplo B: origem e destino não estão na mesma rede. Maquina A com IP 10.1.0.5/25 deseja conversar com 10.1.0.129. Já sabemos que a rede que a máquina A pertence é 10.1.0.0 (veja, pode não ser se a máquina A estiver com a máscara errada).
Ela faz o mesmo com o IP de destino, aplicando um AND do IP de destino COM A SUA MÁSCARA (única que ela tem):
(10) (1) (0) (129)
00001010 00000001 00000000 10000001 = ip de destino
11111111 11111111 11111111 10000000 (25 bits em 1, é a sua mascara)
00001010 00000001 00000000 10000000 (RESULTADO AND)
Como resultado deste AND, chega-se ao cálculo de 10.1.0.128, que não é mesma rede da máquina A. A conclusão é que o destino não está aqui e preciso repassar o pacote para outro roteador até chegar a rede onde esta a máquina de destino.
Bônus: se for dado uma máscara de ip 200.15.144/22 para saber qual é o o ip inicial e o ip final, basta fazer 24(total de bits q vc conhece) - 22(mascara), ficando assim 2²=4. Desse modo o último octeto conhecido irá variar 4 vezes (na verdade 3 porque o 144 conta, fazendo a soma fica 144+3=147.
ficando assim: ip inicial200.15.144.01 -> ip final 200.15.147.255
Detlhe que o 255 sempre é o broadcast.
E para saber o total de hosts, se faz 32 (total de bits no ip) - 22(mascara), ficando 2¹º = 1024 hosts.
Nenhum comentário:
Postar um comentário