Roteamento: Introdução

Esse artigo é o primeiro de uma série sobre rede TCP/IP e roteamento. Nele vou introduzir alguns conceitos de rede, de endereçamento e de máscaras.

Para que dois computadores (ou dispositivos) comuniquem-se em rede, usualmente utiliza-se o protocolo TCP/IP. É uma forma que os computadores tem de conversarem entre si. Esse protocolo funciona através de um sistema de endereçamento numérico. Cada computador tem que ter um endereço, ou seja, um número diferente do outro. Esses números são representados no formato de quatro octetos separados por ponto, por exemplo: 192.0.20.1. Esses octetos são números que variam de zero 0 a 255, o que dá 256 números. São chamados de octetos por que 2 elevado a 8 é igual a 256. Como são 4 octetos de 256, temos 256 * 256 * 256 * 256 = 4.294.967.296 (aproximadamente 4 bilhões) de combinações possíveis. Os endereços vão de 0.0.0.0 a 255.255.255.255 em IPv4.

Quando você tem apenas um computador você não tem uma rede, mas já tem serviços de rede, que podem ser rodados localmente. Por padrão os sistemas operacionais já vem com o TCP/IP ativo e com isso já tem capacidades de rede. Uma maneira de testar isso é abrir o console (Prompt do MS-DOS no Windows e console ou terminal no Linux e Mac) e rodar o comando ping para o endereço local (loopback). Esse endereço é o 127.0.0.1. Digite:

 A saída desse comando vai ser algo parecido com isso:

Significa que o endereço está alcançável e que 4 pacotes foram enviados e 4 pacotes foram recebidos, como é de se esperar quando há conectividade. Nesse caso os pacotes foram enviados e recebidos na própria máquina. E qual a utilidade disso? Serve para fazer testes e para que determinados serviços de rede funcionem mesmo que não haja uma interface de rede física configurada. Se você instalar e rodar um servidor de páginas, como o Apache por exemplo e ele estiver ouvindo na porta padrão para o serviço http, que é a porta 80, você vai poder acessar uma página no seu navegador usando o seguinte endereço: http://127.0.0.1.

apache
Página default do Apache do Ubuntu sendo acessado localmente via endereço de loopback

Antes de prosseguirmos vou precisar explicar o conceito de máscaras ou prefixos, que precisa ser bem compreendido para avançarmos. Pense nas máscaras como um limitador do tamanho de uma rede. Caso elas não existissem teríamos uma rede gigante de 4 bilhões de endereços, sem nenhuma divisão. As máscaras servem para subdividir as redes, ou em outras palavras, criar sub-redes. Elas podem ser representadas de duas maneiras: no mesmo formato dos endereços IPs, com quatro octetos separados por pontos, como em 255.255.255.0 ou com um número decimal precedido de uma barra, como em /24. Tanto em um formato como no outro a máscara indica quantos bits, dos 32 disponíveis no IPv4 serão usados para representar a rede e quantos sobrarão para representar os hosts (ou dispositivos) dessa rede. Antes de dar mais exemplos colocarei abaixo uma tabela com a equivalência entre os dois modelos.

Notação CIDR Máscara Quantidade de IPs
/0 0.0.0.0 4.294.967.296
/1 128.0.0.0 2.147.483.648
/2 192.0.0.0 1.073.741.824
/3 224.0.0.0 536.870.912
/4 240.0.0.0 268.435.456
/5 248.0.0.0 134.217.728
/6 252.0.0.0 67.108.864
/7 254.0.0.0 33.554.432
Antiga Classe A /8 255.0.0.0 16.777.216
/9 255.128.0.0 8.388.608
/10 255.192.0.0 4.194.304
/11 255.224.0.0 2.097.152
/12 255.240.0.0 1.048.576
/13 255.248.0.0 524.288
/14 255.252.0.0 262.144
/15 255.254.0.0 131.072
Antiga Classe B /16 255.255.0.0 65.536
/17 255.255.128.0 32.768
/18 255.255.192.0 16.384
/19 255.255.224.0 8.192
/20 255.255.240.0 4.096
/21 255.255.248.0 2.048
/22 255.255.252.0 1.024
/23 255.255.254.0 512
Antiga Classe C /24 255.255.255.0 256
/25 255.255.255.128 128
/26 255.255.255.192 64
/27 255.255.255.224 32
/28 255.255.255.240 16
/29 255.255.255.248 8
/30 255.255.255.252 4
/31 255.255.255.254 2
/32 255.255.255.255 1

Observe que cada bit adicionado à máscara divide pela metade a disponibilidade de endereços IPs para determinada rede. Cada rede perde dois endereços IPs, o primeiro para identificar a própria rede e o último, que é usado para broadcast, a maneira que os computadores usam para se encontrar na rede. Assim, em uma rede /24, que tem 256, só 254 são endereçáveis, ou seja, podem ser atribuídos aos hosts. As únicas exceções são, na rede /31, que é exclusiva para ponto a ponto, onde os pares já sabem quem é quem, e na rede /32, usada para endereços de loopback.

Agora vamos supor que você queira colocar o seu computador em rede com outro computador ligando ambos diretamente com um cabo de rede. Para que os dois se enxerguem é necessário configurar um endereço IP para cada um. Existem três faixas de IP disponíveis para redes locais ou privadas, que não são usadas na internet. São elas 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16. A primeira é uma rede de aproximadamente 16 milhões de hosts, a segunda pode ser dividida em 16 redes de aproximadamente 65 mil hosts e a última pode ser dividida em 256 redes de 256 hosts.

Se você vai configurar uma rede que não passará de 250 máquinas tão cedo, é recomendado usar uma rede de prefixo /24 (254 endereços IPs utilizáveis). Mesmo que só tenha dois computadores, você pode usar uma rede dessas. Então para exemplificar vamos chamar o primeiro computador de PC-A e o segundo de PC-B e vamos designar o endereço IP 192.168.0.1 para o PC-A e 192.168.0.254 para o PC-B. Lembre-se que estamos usando o primeiro e o último endereço permitido de uma rede /24, que tem 254 IPs utilizáveis, já que o 0 e o 255 são reservados. No Windows a máscara é configurada como 255.255.255.0, conforme a tabela. Ao definirmos esta máscara estamos informando ao sistema operacional que ele vai conseguir encontrar qualquer computador que possuam desde o endereço IP 192.168.0.1 até o 192.168.0.254.

Atribua esses IPs para cada um dos computadores e vamos fazer alguns testes. Primeiro vamos pingar do PC-A para ele mesmo, dessa vez no IP atribuído à interface física e não mais ao localhost ou loopback.

A saída desse comando deve ser algo parecido com isso

Verificamos que 4 pacotes de 64 bytes foram enviados e 4 foram recebidos, sem nenhuma perda. Isso significa que o IP foi devidamente configurado na máquina local.

Agora configure o endereço 192.168.0.254 no PC-B e pingue para ele do PC-A

Cenário com prefixo /24
Cenário com prefixo /24

Se o IP estiver configurado corretamente o ping será bem sucedido e retornará a seguinte resposta

Do contrário poderá aparecer o seguinte

indicando que o PC-B está inalcançável e que todos os pacotes foram perdidos. Nesse caso, revise as configurações, o cabeamento e desative o firewall, caso esteja habilitado.

Para fixarmos melhor para que servem as máscaras, vamos alterá-las e ver o que acontece. Vamos mudar a máscara para /25, ou 255.255.255.128. Façamos isso nos dois computadores. Você vai perceber que o segundo computador vai ficar inalcançável, mas por quê?

Cenário com prefixo /25

Ao aumentar a máscara nós restringimos o tamanho da rede. Nesse caso dividimos ela ao meio. O PC-A tem o endereço IP 192.168.0.1/25, que significa que ele faz parte de uma rede com 128 hosts (consulte a tabela), ou seja, os IPs vão de 192.168.0.0 à 192.168.0.127, como 0 e 127 são reservados para rede e broadcast então o PC-A só vai conseguir se comunicar com computadores que tenham IP de 192.168.0.2 à 192.168.0.126. Por sua vez o PC-B, que tem o IP 192.168.0.254/25, agora está em outra rede, que começa em 192.168.0.128 e vai até 192.168.0.255. Como o 128 e o 255 são reservados para rede e broadcast, ele só conseguirá se comunicar com computadores que estejam com IP na faixa de 192.168.0.129 à 192.168.0.253. A única forma deles voltarem a se comunicar é mudando a máscara para uma mais abrangente ou usando roteamento, que é o assunto do próximo artigo.

Roteamento: Introdução

5 respostas para “Roteamento: Introdução”

  1. O texto está realmente muito bom. Acredito que um leigo conseguiria entender perfeitamente os conceitos apresentados e estaria apto para os próximos artigos que provavelmente abordarão protocolos de roteamento. Parabéns pelo trabalho.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *