(Classes, CIDR, Sub-Redes, Máscara etc)
Todo equipamento de rede precisa de uma identificação única para conversar (trocar informações) com outros computadores. Essa identificação se dá através de números chamados endereço IP. O endereço IP é um número de 32bit separados por um ponto a cada 8 bits, ou seja, ele varia de 00000000.00000000.00000000.00000000 a 11111111.11111111.11111111.11111111. Veja que cada sequência de 8 bits é chamado de octeto. Passando para decimal, forma que o ser humano entende, um endereço IP pode variar de 0.0.0.0 a 255.255.255.255.
Classes de endereço IP
- Classe A
- Máscara: 255.0.0.0
- CIDR: /8
- Range de endereços (decimal): 0.0.0.0 até 127.255.255.255
- Range de endereços (binário): 00000000.00000000.00000000.00000000 até 01111111.11111111.11111111.11111111 (o primeiro bit sempre é 0)
- Reservado: 127.0.0.0 até 127.255.255.255 (endereços de loopback usados para teste local de rede)
- Range de endereços usados efetivamente: 1.0.0.0 até 126.255.255.255 (o endereço iniciado por 0 não deve ser usado e o 127 é reservado)
- Qtde de redes disponíveis: 126
- Qtde de hosts por rede: 24 bits - 2 = 224 - 2 = 16.777.216 - 2 = 16.777.214 (ex: a rede 1.0.0.0 pode endereçar equipamentos de 1.0.0.1 até 1.255.255.254. A subtração por "-2" é devido ao endereço de rede que é 1.0.0.0 e o de broadcast 1.255.255.255 que não podem ser usados, pois têm funções especiais)
- Classe B
- Máscara: 255.255.0.0
- CIDR: /16
- Range de endereços (decimal): 128.0.0.0 até 191.255.255.255
- Range de endereços (binário): 10000000.00000000.00000000.00000000 até 10111111.11111111.11111111.11111111 (os dois primeiros bits sempre são 10)
- Qtde de redes disponíveis: 64 x 256 = 16.384 (o número 64 foi retirado da qtde de redes que se pode ter entre 128 e 191 no primeiro octeto. Já o número 256 são as redes entre 0 e 255 do segundo octeto)
- Qtde de hosts por rede: 16 bits - 2 = 216 - 2 = 65.536 - 2 = 65.534 (ex: a rede 130.0.0.0 pode endereçar equipamentos de 130.0.0.1 até 130.0.255.254. A subtração por "-2" é devido ao endereço de rede que é 130.0.0.0 e o de broadcast 130.0.255.255 que não podem ser usados, pois têm funções especiais)
- Classe C
- Máscara: 255.255.255.0 (última classe comercial de endereços)
- CIDR: /24
- Range de endereços (decimal): 192.0.0.0 até 223.255.255.255
- Range de endereços (binário): 11000000.00000000.00000000.00000000 até 11011111.11111111.11111111.11111111 (os três primeiros bits sempre são 110)
- Qtde de redes disponíveis: 32 x 256 x 256 = 2.097.152 (o número 32 foi retirado da qtde de redes que se pode ter entre 192 e 223 no primeiro octeto. Já os números 256 são as redes entre 0 e 255 do segundo e do terceiro octeto)
- Qtde de hosts por rede: 8 bits - 2 = 28 - 2 = 256 - 2 = 254 (ex: a rede 201.0.0.0 pode endereçar equipamentos de 201.0.0.1 até 201.0.0.254. A subtração por "-2" é devido ao endereço de rede que é 201.0.0.0 e o de broadcast 201.0.0.255 que não podem ser usados, pois têm funções especiais)
- Classe D
- Máscara: 240.0.0.0
- CIDR: /4
- Range de endereços (decimal): 224.0.0.0 até 239.255.255.255
- Range de endereços (binário): 11100000.00000000.00000000.00000000 até 11101111.11111111.11111111.11111111 (os quatro primeiros bits sempre são 1110)
- Qtde de redes disponíveis: não usado (os endereços da classe D são usados para multicast, ou seja, para enviar pacotes para um grupo específico de equipamentos)
- Qtde de hosts por rede: não usado (idem)
- Classe E
- Máscara: 240.0.0.0
- CIDR: /4
- Range de endereços (decimal): 240.0.0.0 até 255.255.255.255
- Range de endereços (binário): 11110000.00000000.00000000.00000000 até 11111111.11111111.11111111.11111111 (os cinco primeiros bits sempre são 11111)
- Qtde de redes disponíveis: não usado (os endereços da classe E são reservados para uso futuro [novas tecnologias])
- Qtde de hosts por rede: não usado (idem)
Endereços IP Privado
Como todos sabem, o endereço IP é um número de 32 bits (232). Isso quer dizer que só pode endereçar 4 bilhões de equipamentos de rede. Como a Internet usa o endereçamento IP para identificar seus equipamentos, então, no mundo só poderão existir no máximo 4 bilhões de IPs. Para evitar a escassez desses endereços na Internet, os endereços da LAN são mascarados/escondidos através de uma técnica chamada NAT (Network Address Translator). O NAT faz com que todo o tráfego da LAN em direção a Internet fique com o IP do equipamento que faz o NAT. Normalmente o NAT é implementado em um equipamento que está conectado diretamente na Internet, ou seja, o Firewall. O conceito de NAT visto até aqui vale também para o Proxy HTTP, pois para cliente a Internet é o Proxy e para a Internet o cliente é o Proxy.
Para evitar que existam endereços IP iguais na LAN e na Internet, uma parte do endereçamento IP foi reservado para a LAN, evitando assim que o roteador de borda (geralmente o Firewall) envie pacotes para locais errados. A seguir é mostrada a padronização dos endereços que devem ser usados na LAN:
- Classe A (privado)
- Máscara: 255.0.0.0
- Range de endereços (decimal): 10.0.0.0 até 10.255.255.255 (esse range "10.0.0.0 até 10.255.255.255" é equivalente à "10.0.0.0/8")
- Range de endereços (binário): 00001010.00000000.00000000.00000000 até 00001010.11111111.11111111.11111111
- Qtde de redes disponíveis: 1 (rede 10.0.0.0)
- Qtde de hosts por rede: 24 bits - 2 = 224 - 2 = 16.777.216 - 2 = 16.777.214 (a rede 10.0.0.0 pode endereçar equipamentos de 10.0.0.1 até 10.255.255.254. A subtração por "-2" é devido ao endereço de rede que é 10.0.0.0 e o de broadcast 10.255.255.255 que não podem ser usados, pois têm funções especiais)
- Classe B (privado)
- Máscara: 255.255.0.0
- Range de endereços (decimal): 172.16.0.0 até 172.31.255.255 (esse range "172.16.0.0 até 172.31.255.255" é equivalente à 172.16.0.0/12)
- Range de endereços (binário): 10101100.00010000.00000000.00000000 até 10101100.00011111.11111111.11111111
- Qtde de redes disponíveis: 16 (172.16.0.0 até 172.31.0.0)
- Qtde de hosts por rede: 16 bits - 2 = 216 - 2 = 65.536 - 2 = 65.534 (ex: a rede 172.16.0.0 pode endereçar equipamentos de 172.16.0.1 até 172.16.255.254. A subtração por "-2" é devido ao endereço de rede que é 172.16.0.0 e o de broadcast 172.16.255.255 que não podem ser usados, pois têm funções especiais)
- Classe C (privado)
- Máscara: 255.255.255.0 (última classe comercial de endereços)
- Range de endereços (decimal): 192.168.0.0 até 192.168.255.255 (esse range "192.168.0.0 até 192.168.255.255" é equivalente à 192.168.0.0/16)
- Range de endereços (binário): 11000000.10101000.00000000.00000000 até 11000000.10101000.11111111.11111111
- Qtde de redes disponíveis: 256 (192.168.0.0 até 192.168.255.0)
- Qtde de hosts por rede: 8 bits - 2 = 28 - 2 = 256 - 2 = 254 (ex: a rede 192.168.0.0 pode endereçar equipamentos de 192.168.0.1 até 192.168.0.254. A subtração por "-2" é devido ao endereço de rede que é 192.168.0.0 e o de broadcast 192.168.0.255 que não podem ser usados, pois têm funções especiais)
Essa reserva de endereços IPs privados é muito importante, pois imagine que um endereço IP da LAN fosse "200.16.202.1" que é, na verdade, o endereço do servidor web do projeto Debian (www.debian.org). A página do Debian nunca seria acessada pelos equipamentos da LAN, pois o roteador da LAN não iria rotear tal tráfego para Internet, pois o endereço existe na LAN e o roteador iria enviar de volta esse tráfego para a LAN (esse caso só aconteceria se o roteador [default gateway] também fosse o proxy e os pacotes fossem HTTP ;-). Se os pacotes não fossem HTTP, tal tráfego seria enviado direto para o equipamento que tem esse IP na LAN, pois todas as máquinas da LAN saberiam que é um endereço interno e nem mandaria tais pacotes para o roteador (default gateway).
Vale ressaltar também que os roteadores da Internet são programados para não rotear e descartar pacotes que tenham endereços IPs privados. Eles são tecnicamente conhecidos com IPs não roteáveis. Só para conhecimento, se uma empresa não acessa a Internet, ele pode usar qualquer endereço IP que não haverá problemas.
SubRede
Um grande problema de usar a classe padrão A, B ou C é o desperdício de IPs. Image que a sua empresa tenha 300 equipamentos de rede, você vai ter que usar a classe B inteira para acomodar tais equipamentos. Uma classe B privada pode endereçar 65.534 equipamentos. Também, image que os provedores de acesso a Internet tivesse que usar a classe C pública para conceder IPs a uma empresa que precisasse somente de 10 IPs públicos. Um classe C pública pode endereçar 254 IPs por rede. Seria um disperdício muito grande e não poderia acomodar toda a Internet. Além disso, o broadcast (pacotes que são enviados para todos como o ARP, DHCP etc) seria muito intenso e poderia gerar problemas de rede. Para solucionar isso, foi padronizado um esquema de subrede que não prática visa pegar emprestado bits da parte de host do endereço IP para formar pequenas redes.
Vamos supor que uma empressa tenha 300 equipamentos de rede na sua LAN e precise escolher um endereço de rede para acomodar tais equipamentos. Primeira tarefa a ser feita é escolher a classe de endereços. Somente a classe A e B poderia ser utilizadas, pois eles podem endereçar 16.777.214 e 65.534 hosts, respectivamente. Vamos analizar primeiramente a classe B.
A classe B privada contém 16 redes que vai de 172.16.0.0 até 172.31.0.0. Escolheremos a 172.16.0.0. A máscara padrão usada na classe B é 255.255.0.0 em decimail e 11111111.11111111.00000000.00000000 em binário. Agora vamos colocar bits 1 na parte de host até achar um número próximo e maior que 300. Então, ficaria assim, 11111111.11111111.11111110.00000000, sendo subnetado 9 bits. 9 bits = 29 = 512. A máscara ficaria agora assim 255.255.254.0 e a rede ficaria 172.16.0.0/23. Veja nos dados a seguir como ficaria o endereço 172.16.0.8 com a mascara 255.255.254.0:
- Endereço: 172.16.0.8
- Máscara: 255.255.254.0
- Wildcard: 0.0.1.255 (esse número é achado subtraindo 255.255.255.255 com 255.255.254.0)
- Endereço de rede: 172.16.0.0/23
- Endereço de broadcast: 172.16.1.255 (esse número é achado com a definição do wildcard)
- Endereços disponíveis: 172.16.0.1 a 172.16.1.254
- Hosts por rede: 9 bits - 2 = 2 9 - 2 = 512 - 2 = 510 (A subtração por "-2" é devido ao endereço de rede que é 172.16.0.0 e o de broadcast 172.16.1.255 que não podem ser usados, pois têm funções especiais)
Exercícios
Calcule todos os dados de rede para o IP 200.163.19.44 com a máscara 255.255.255.192:
- Endereço: 200.163.19.44
- Máscara: 255.255.255.192
- Classe do endereço: C
- Endereço público ou privado: público
- Bits subnetados/emprestados: 2
- Wildcard: 0.0.0.63 (esse número foi achado subtraindo 255.255.255.255 com 255.255.255.192)
- Endereço de rede: 200.163.19.0/26
- Endereço de broadcast: 200.163.19.63 (esse número é achado com a definição do wildcard)
- Endereços disponíveis: 200.163.19.1 a 200.163.19.63
- Bits para endereçamento: 6 bits
- Bits para Host ou Hosts por rede: 6 bits - 2 = 2 6 - 2 = 64 - 2 = 62 (A subtração por "-2" é devido ao endereço de rede que é 200.163.19.0 e o de broadcast 200.163.19.63 que não podem ser usados, pois têm funções especiais)
Calcule todos os dados de rede para o IP 172.30.0.222 com a máscara 255.255.255.0:
- Endereço: 172.30.0.222
- Máscara: 255.255.255.0
- Classe do endereço: B
- Endereço público ou privado: privado
- Bits subnetados/emprestados: 8
- Wildcard: 0.0.0.255 (esse número foi achado subtraindo 255.255.255.255 com 255.255.255.0)
- Endereço de rede: 172.30.0.0/24
- Endereço de broadcast: 172.30.0.255 (esse número é achado com a definição do wildcard)
- Endereços disponíveis: 172.30.0.1 a 172.30.0.254
- Hosts por rede: 8 bits - 2 = 2 8 - 2 = 256 - 2 = 254 (A subtração por "-2" é devido ao endereço de rede que é 172.16.30.0 e o de broadcast 172.16.30.255 que não podem ser usados, pois têm funções especiais)
Calcule todos os dados de rede para o IP 150.99.178.25 com a máscara 255.255.224.0:
- Endereço: 150.99.178.25
- Máscara: 255.255.224.0
- Classe do endereço: B
- Endereço público ou privado: público
- Bits subnetados/emprestados: 3
- Wildcard: 0.0.31.255
- Endereço de rede: 150.99.160.0/19 (255.255.224.0 and 150.99.178.25. Melhor: 11111111.11111111.11100000.00000000 and 10010110.01100011.10110010.00011001)
- Endereço de broadcast: 150.99.191.255 (esse número é achado com a definição do wildcard. A próxima rede seria x.x.32.0, então é só somar os 32 até chegar no número desejado)
- Endereços disponíveis: 150.99.160.1 a 150.99.191.254
- Hosts por rede: 13 bits - 2 = 2 13 - 2 = 8192 - 2 = 8190
Calcule todos os dados de rede para o IP 202.40.0.19 com a máscara 255.255.255.192:
- Endereço: 202.40.0.19
- Máscara: 255.255.255.192
- Classe do endereço: C
- Endereço público ou privado: público
- Bits subnetados/emprestados: 2
- Wildcard: 0.0.0.63 (esse número foi achado subtraindo 255.255.255.255 com 255.255.255.192)
- Endereço de rede: 202.40.0.0/26
- Endereço de broadcast: 202.40.0.63 (esse número é achado com a definição do wildcard)
- Endereços disponíveis: 202.40.0.1 a 202.40.0.62
- Hosts por rede: 6 bits - 2 = 2 6 - 2 = 64 - 2 = 62 (A subtração por "-2" é devido ao endereço de rede e o de broadcast não podem ser usados, pois têm funções especiais)
Calcule todos os dados de rede para o IP 10.198.123.251 com a máscara 255.255.240.0:
- Endereço: 10.198.123.251
- Máscara: 255.255.240.0
- Classe do endereço: A
- Endereço público ou privado: privado
- Bits subnetados/emprestados: 12
- Wildcard: 0.0.15.255 (esse número foi achado subtraindo 255.255.255.255 com 255.255.240.0)
- Endereço de rede: 10.198.112.0/20 (255.255.240.0 and 10.198.123.251. Mais fácil 240 and 123 que em binário fica 11110000 and 01111011 = 01110000 = 112)
- Endereço de broadcast: 10.198.127.255 (esse número é achado com a definição do wildcard e do endereço de rede. Soma-se 112 + 15 = 127)
- Endereços disponíveis: 10.198.112.1 à 10.198.127.254
- Hosts por rede: 12 bits - 2 = 212 - 2 = 4094 (A subtração por "-2" é devido ao endereço de rede que é 10.198.112.0 e o de broadcast 10.198.127.255 que não podem ser usados, pois têm funções especiais)
Dado um endereço classe B, segmentar a rede em 6 subredes:
- Endereço: 172.16.x.y
- Máscara: 255.255.224.0 (esse número foi achado, subnetando 3 bits da parte de host, ou seja, 11111111.11111111.11100000.00000000. Esses 3 bits suportam até 8 redes que irá dividir a rede 172.16.x.y)
- Classe do endereço: B
- Endereço público ou privado: privado
- Bits subnetados/emprestados: 3
- Wildcard: 0.0.31.255 ()
- Endereços de rede: 172.16.0.0/19 (reservado), 172.16.32.0/19, 172.16.64.0/19, 172.16.92.0/19, 172.16.128.0/19, 172.16.160.0/19, 172.16.192.0/19 e 172.16.224.0/19 (end subnet)
- Hosts por rede: 13 bits - 2 = 213 - 2 = 8192 -2 = 8190
Dado um endereço classe A, segmentar a rede em 2 subredes:
- Endereço: 75.0.0.0
- Máscara: 255.192.0.0 (esse número foi achado, subnetando 2 bits da parte de host, ou seja, 11111111.11000000.00000000.00000000. Esses 2 bits suportam até 4 redes que irá dividir a rede 75.0.0.0)
- Classe do endereço: A
- Endereço público ou privado: público
- Bits subnetados/emprestados: 2
- Wildcard: 0.63.255.255 ()
- Endereços de rede: 75.0.0.0/10 (reservado), 75.64.0.0/10, 75.128.0.0/10 e 75.192.0.0/10 (end subnet)
- Hosts por rede: 22 bits - 2 = 222 - 2 = 4.194.304 -2 = 4.194.302
Um comando muito utilizado para calcular subredes IPv4 é o ipcalc
# apt-get update ; apt-get install ipcalc ()
# ipcalc 172.16.0.0/24 ()
Um comando muito utilizado para calcular subredes IPv6 é o ipv6calc
# apt-get update ; apt-get install ipv6calc ()
# ()
Um outro comando muito utilizado para calcular subredes IPv4 e IPv6 é o sipcalc
# apt-get update ; apt-get install sipcalc ()
# sipcalc 189.80.3.99/26 ()
Comando muito utilizado conhecer a origem de um determinado IP ou hostname
# apt-get update ; apt-get install geoip-bin ()
# geoiplookup 203.50.0.0 ()
# geoiplookup www.hugoazevedo.eti.br ()