PJI3-Subredes IPv4

De MediaWiki do Campus São José
Revisão de 17h24min de 14 de maio de 2021 por Msobral (discussão | contribs) (Criou página com '__notoc__ * [https://www.cisco.com/c/en/us/support/docs/ip/routing-information-protocol-rip/13788-3.html IP Addressing (Cisco)] * [https://study-ccna.com/subnetting-explained...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar



A Internet é uma grande rede formada pela interligação de redes menores, denominadas subredes. Cada subrede está associada a uma faixa de endereços IP. Os equipamentos (hosts) contidos em uma subrede possuem endereços IP dentro dessa faixa. Esse esquema facilita o roteamento na Internet, pois, para enviar um pacote para um determinado host, basta saber que caminho seguir para chegar até sua subrede. Com isso, não é necessário (nem seria viável !) que os roteadores saibam como chegar até cada possível host existente na Internet. Para que isso funcione, deve haver uma forma simples de relacionar os endereços IP de hosts às faixas de endereços das subredes que os contêm.

IER-Subnet1.png
Uma rede formada por subredes interligadas por roteadores


Uma subrede IP é representada por um prefixo de rede e uma máscara. O prefixo são os N bits mais significativos comuns a todos os endereços IP contidos em uma subrede (lembre que um endereço IP tem 32 bits). A máscara informa quantos bits tem o prefixo. A combinação de prefixo de rede e máscara funciona da seguinte forma:

Imagine que exista uma subrede contendo os endereços de 192.168.2.0 até 192.168.2.255. Se representarmos esses endereços em binário, podemos ver que os 24 bits mais significativos são os mesmos para todos os endereços:


Pji-prefixo1.png


A máscara de rede tem a forma de um endereço IP, porém com bits 1 na parte correspondente ao prefixo, e 0 no resto. Assim, para o exemplo acima a máscara de rede é 255.255.255.0. Outra forma de representar a máscara é simplesmente informar o tamanho em bits do prefixo, e no exemplo a máscara seria 24. Juntando o prefixo e a máscara, a subrede pode ser representada de uma destas duas formas:

  • 192.168.2.0/255.255.255.0
  • 192.168.2.0/24


Agora imagine que o prefixo tenha 28 bits, como mostrado nesta figura:


Pji-prefixo2.png


Por ter um prefixo mais longo, o tamanho dessa subrede é menor. Isso significa que ela contém menos endereços IP, tanto que o primeiro endereço é 192.168.2.0 e o último é 192.168.2.15. Essa subrede poderia ser representada por:

  • 192.168.2.0/255.255.255.240
  • 192.168.2.0/28


Aproveitando esse exemplo, pode-se mostrar uma outra subrede que, apesar de não parecer, é diferente da anterior:


Pji-prefixo3.png


Essa outra subrede contém endereços entre 192.168.2.16 e 192.168.2.31. Essa subrede poderia ser representada por:

  • 192.168.2.16/255.255.255.240
  • 192.168.2.16/28


Como se pode notar, uma consequência dessa forma de definir subredes é que seus tamanhos sempre serão potências de 2. Em outras palavras, as quantidades de endereços IP de qualquer subrede IP imaginável sempre serão potências de 2.

Encaminhamento IP

Todo host é capaz de realizar uma função da camada de rede chamada de encaminhamento IP (IP forwarding). O encaminhamento é feito quando um host recebe um datagrama IP, e precisa decidir o que fazer com ele. O destino do datagrama depende do endereço de destino contido em seu cabeçalho IP.

  1. Se o endereço IP for o do próprio host: o conteúdo do datagrama é desencapsulado e entregue à camada superior.
  2. Se o endereço IP NÃO for o do próprio host: a tabela de rotas do host é consultada para buscar uma rota que satisfaça o endereço de destino. Caso ela exista, o datagrama é transmitido para o próximo roteador indicado nessa rota.


Os dois videos a seguir ilustram o encaminhamento de um datagrama IP ao longo de uma rede:


Exemplo 1



Exemplo 2

Uma rota serve para informar como se chega a um determinado destino. Um destino pode ser um único endereço IP, ou uma subrede (que contém um conjunto de endereços IP). Para que um pacote IP chegue a um destino, deve-se transmiti-lo para o próximo roteador em direção a esse destino. Esse próximo roteador também deve conhecer uma rota para tal destino, repetindo o mesmo procedimento. Ao menos duas informações compõem cada rota:

  • O destino, que é expressado como uma subrede: Uma subrede é representada por um prefixo de rede e uma máscara.
  • O próximo roteador, expressado por um endereço IP: o endereço IP do próximo roteador (também chamado de gateway, que significa portal em inglês), o qual deve pertencer à mesma subrede do equipamento que o especifica em uma rota.


No caso em que o endereço de destino não for o do próprio host, esse endereço é comparado com cada rota existente na tabela de rotas. Rotas com máscaras de rede maiores são testadas primeiro (o tamanho de uma máscara é definido pela quantidade de bits 1 que ela possui), pois são rotas para subredes menores e, portanto, mais específicas. Se nenhuma rota servir, o datagrama é silenciosamente descartado.

A tabela de rotas a seguir foi obtida em um computador com sistema operacional Linux.

aluno@M1:~$ route -n
Tabela de Roteamento IP do Kernel
Destino         Roteador        MáscaraGen.    Opções Métrica Ref   Uso Iface
0.0.0.0         191.36.9.254    0.0.0.0         UG    0      0        0 enp0s25
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp0s25
191.36.9.0      0.0.0.0         255.255.255.0   U     0      0        0 enp0s25
192.168.2.64    191.36.9.1      255.255.255.192 U     0      0        0 enp0s25

Supondo que esse host tenha que encaminhar um datagrama com endereço de destino 8.8.8.8, a busca por uma rota adequada seria esta:

  1. Rota para 192.168.2.64/26: ao aplicar a máscara /26 (255.255.255.192) ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.8.0. Como ele é diferente de 192.168.2.64, esta rota não serve.
  2. Rota para 191.36.9.0/24: ao aplicar a máscara /24 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.8.0. Como ele é diferente de 191.36.9.0, esta rota não serve.
  3. Rota para 169.254.0.0/16: ao aplicar a máscara /16 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.0.0. Como ele é diferente de 169.254.0.0, esta rota não serve.
  4. Rota para 0.0.0.0/0: ao aplicar a máscara /0 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 0.0.0.0. Como ele é igual a 0.0.0.0 (prefixo da rota), esta rota será usada.


Se outro datagrama tiver endereço de destino 191.36.9.140, a busca pela rota seria:

  1. Rota para 192.168.2.64/26: ao aplicar a máscara /26 ao endereço de destino 191.36.9.140, obtêm-se o prefixo 191.36.9.128. Como ele é diferente de 192.168.2.64, esta rota não serve.
  2. Rota para 191.36.9.0/24: ao aplicar a máscara /24 ao endereço de destino 191.36.9.140, obtêm-se o prefixo 191.36.9.0. Como ele é igual a 191.36.9.0 (prefixo da rota), esta rota será usada.