Arquitetura TCP/IP Parte III – Endereçamento IP e roteamento Fabrízzio Alphonsus A. M. N. Soares Tópicos ● Formato do endereço ● Classes de endereços ● Endereços “especiais” ● Sub-rede e máscara – VLSM (Variable Length Subnet Mask) ● CIDR (Classless Inter-Domain Routing) ● Roteamento Endereço IP ● ● Função semelhante ao endereço de hardware, ou seja, identificar uma interface de comunicação Cada interface de comunicação ligada a Internet (pública) contém um endereço IP unicast (de um destino) único ● É usado pelas aplicações distribuídas ● É um valor binário de 32 bits (versão 4) – Valores foram agrupados para tornar o roteamento eficiente Formato do endereço IP ● Endereço dividido em duas partes: – Prefixo de rede (network ID) – identifica a rede a qual o host se conecta ● – Um prefixo de rede atende uma rede física (proposta original do endereçamento IP) Sufixo de host (host ID) – identifica o host naquela rede Prefixo de rede Sufixo de host Propriedades necessárias do endereçamento IP ● Compacto (menor representação possível) ● Universal (endereços suficientes para todos) – ● Implementado em “software”, logo pode ser associado a qualquer hardware Permite tomar decisões eficientemente: – Verificar se o destino pode ser alcançado diretamente (host e roteador) – Decidir qual roteador usar para entrega indireta (host) – Escolher qual o próximo roteador ao longo do caminho para o destino (roteador) Endereços IP com classe ● Esquema original de endereçamento IP ● Explica muitas decisões de projeto ● Novos esquemas mantém compatibilidade retroativa Prefixo e Sufixo: qual o tamanho? ● Prefixo grande: muitas redes, porém pequenas Prefixo de rede ● Prefixo pequeno: poucas redes, porém grandes Prefixo de rede ● Sufixo de host Sufixo de host Solução: acomodar (ou pelo menos tentar) ambas as possibilidades, criando classes de endereços Classes de endereços IP Classe A 0 Net ID B 10 C 110 0.0.0.0 até 127.255.255.255 Host ID Net ID Host ID Net ID Host ID 128.0.0.0 até 191.255.255.255 192.0.0.0 até 223.255.255.255 D 1110 Endereço Multicast 224.0.0.0 até 239.255.255.255 E 1111 Reservado 240.0.0.0 até 255.255.255.255 1.o byte 2.o byte 3.o byte 4.o byte Classes de endereços IP (cont.) ● Uma classe (tamanho de prefixo e sufixo) pode ser encontrada de forma eficiente Início 1.o bit 0 Classe A 1 2.o bit 0 Classe B 1 3.o bit 0 Classe C 1 4.o bit 0 Classe D 1 Classe E Propriedades importantes ● Endereços com classe são “auto-identificados”, logo: – É possível determinar a fronteira entre prefixo e sufixo a partir apenas do endereço IP, portanto: ● ● ● Não é necessário guardar informação adicional sobre o tamanho do prefixo (e do sufixo) Beneficia tanto hosts quanto roteadores Endereço IP identifica uma conexão à rede (ou seja, uma interface de comunicação) e não um equipamento – Ex.: um roteador participa em pelo menos duas redes, logo tem pelo menos duas interfaces de comunicação e, portanto, tem pelo menos dois endereços IP Notação ● ● Decimal com pontos – O endereço é descrito byte-a-byte em notação decimal, separando com pontos: w.x.y.z – Facilita a leitura (e memorização) – Amplamente adotada na Internet e na literatura associada Exemplo: – Notação binária: 10010010 10100100 01000101 00000010 – Notação decimal com pontos: 146.164.69.2 Endereços especiais ● ● ● ● ● Todos os bits com zero (0.0.0.0): este host nessa rede – Pode aparecer como apenas como endereço fonte – É usado no processo de inicialização (boot), antes do equipamento obter seu endereço Todos os bits com um (255.255.255.255): difusão (broadcast) local Sufixo de host com todos os bits zero (ex.: 100.0.0.0): endereço da rede Sufixo de host com todos os bits um (ex.: 200.0.0.255): difusão (broadcast) direcionada Endereço 127.0.0.1 significa loopback, ou seja, não é enviado pela rede – A rede 127.0.0.0 inteira é reservada para loopback Multicast ● ● IP permite multicast (multi-destinatário), porém o suporte não está disponível em toda Internet Endereços da classe D são reservados para multicast – ● IP multicast usa hardware multicast quando este está disponível Cada endereço corresponde a um grupo de equipamentos Atribuição de endereços ● ● Todos os hosts na mesma rede possuem o mesmo prefixo (de rede) nos endereços – Prefixos são atribuídos por uma entidade central – Ou obtidos de um ISP (Internet Service Provider) Cada host em uma rede tem um único sufixo – Sufixos são atribuídos localmente – Administrador é responsável por garantir a unicidade Exemplo de algumas redes 1 Restante da Internet 10M R2 R1 Rede 100.0.0.0 1 100.200.0.0 10K R3 Rede 150.0.0.0 1 150.0.50.0 100 Rede 200.0.0.0 200.0.0.150 Site com 3 redes de classes diferentes Observação importante ● Divisão do endereço IP em prefixo e sufixo significa que cada site pode atribuir e usar seus endereços de formas não convencionais, desde que: – Todos os hosts e roteadores no site respeitem o esquema estabelecido – Outros sites na Internet continuem podendo tratar os endereços desse site da forma convencional (prefixo + sufixo) Restrições do endereços IP com classe ● Apenas três classes para enquadrar as redes ● Classe C muito pequena: apenas 254 hosts – ● Computadores pessoais resultaram em redes com muitos hosts Classe B permite muitos hosts, mas o número de prefixos é insuficiente (pouco mais de 16 mil) – Classe A tem número muito pequeno de prefixos: 126 Problema: como racionalizar a atribuição de prefixos de rede (sobretudo de classe B) sem abandonar o esquema de endereçamento de 32 bits? Endereçamento de sub-rede ● ● Não é parte do esquema de endereçamento IP original, mas ainda mantém compatibilidade Permite que um site use um único prefixo de rede para múltiplas redes físicas – Subdivide o sufixo de host em um par de campos: rede física e host – O novo esquema é tratado apenas por roteadores e hosts do site ● Externamente os endereços são tratados pelo esquema original Exemplo de sub-rede Tráfego em direção a rede 150.0.0.0 R1 sub-rede 150.0.64.0 1 10K 1 Restante da Internet 10K sub-rede 150.0.128.0 Site com 2 redes físicas, mas apenas uma rede IP ● ● As duas redes físicas compartilham o mesmo prefixo de rede: 150.0 Roteador R1 usa o terceiro byte para escolher a rede física Interpretação dos endereços ● ● Endereços com hierárquicos classe tem dois – Rede física é identificada pelo prefixo – Host na rede é identificado pelo sufixo Endereços com hierárquicos sub-rede tem três níveis níveis – Site é identificado pelo prefixo de rede – Rede física (dentro do site) é identificada por parte do sufixo – Host na rede é identificado pelo restante do sufixo Exemplo de interpretação de endereço ● Usando um endereço de classe B Prefixo de rede Sufixo de host Parte “Internet” Parte “local” Prefixo de rede ● Sub-rede Sufixo de host Prefixo do host foi dividido para obter 256 subredes (8 bits) com 256 hosts (8 bits restantes) cada uma – De fato, 254 hosts + end. sub-rede + end. difusão Tamanho da sub-rede ● ● ● Depende da topologia do site e do número de hosts em cada rede física Pode ser qualquer subdivisão de uma rede classe A, B ou C, desde que seja uma potência de dois O tamanho é estabelecido por uma máscara de sub-rede Máscara de sub-rede ● ● ● ● A cada rede física é associado uma máscara de endereço de 32 bits, também chamada máscara de sub-rede Os bits “1” na máscara cobrem todo o prefixo de rede mais zero ou mais bits do sufixo de host Para identificar o prefixo de rede e a sub-rede é feito um “E” lógico (bit-a-bit) entre o endereço IP fornecido e a máscara de sub-rede Dois tipos de máscara: – Máscara de sub-rede de tamanho fixo – Máscara de sub-rede de tamanho variável (Variable Length Subnet Mask – VLSM) Máscara de sub-rede de tamanho fixo – exemplo Tráfego em direção a rede 150.0.0.0 1 R2 10K R1 1 10K R3 1 1 Restante da Internet 10K 10K Site com 4 redes físicas, mas apenas uma rede IP ● 4 sub-redes de uma classe B (ex.: 150.0.0.0) atendem adequadamente, sendo todas as sub-redes do mesmo tamanho Máscara de sub-rede de tamanho fixo – exemplo (cont.) Rede 150.0.0.0 = 10010110 00000000 00000000 00000000 4 sub-redes => 2 bits para a máscara Máscara = 11111111 11111111 11000000 00000000 ou 255.255.192.0 (notação decimal com pontos) 1.a sub-rede = 10010110 00000000 00000000 00000000 ou 150.0.0.0 2.a sub-rede = 10010110 00000000 01000000 00000000 ou 150.0.64.0 3.a sub-rede = 10010110 00000000 10000000 00000000 ou 150.0.128.0 4.a sub-rede = 10010110 00000000 11000000 00000000 ou 150.0.192.0 Máscara de sub-rede de tamanho fixo – exemplo (cont.) Novos endereços de (sub)rede e difusão: 1.a sub-rede = 10010110 00000000 00000000 00000000 ou 150.0.0.0 end. de difusão = 10010110 00000000 00111111 11111111 ou 150.0.63.255 2.a sub-rede = 10010110 00000000 01000000 00000000 ou 150.0.64.0 end. de difusão = 10010110 00000000 01111111 11111111 ou 150.0.127.255 3.a sub-rede = 10010110 00000000 10000000 00000000 ou 150.0.128.0 end. de difusão = 10010110 00000000 10111111 11111111 ou 150.0.191.255 4.a sub-rede = 10010110 00000000 11000000 00000000 ou 150.0.192.0 end. de difusão = 10010110 00000000 11111111 11111111 ou 150.0.255.255 Máscara de sub-rede de tamanho fixo – exemplo Tráfego em direção a rede 150.0.0.0 1 10K R1 R2 Restante da Internet sub-rede 150.0.0.0/255.255.192.0 1 10K R3 sub-rede 150.0.64.0/255.255.192.0 1 10K 10K sub-rede 150.0.128.0/255.255.192.0 sub-rede 150.0.192.0/255.255.192.0 ● 1 Site com 4 redes físicas, mas apenas uma rede IP Resultado da distribuição de endereços IP da rede 150.0.0.0 usando 4 sub-redes de mesmo tamanho Máscara de sub-rede de tamanho fixo ● ● ● Site usa a mesma máscara em todas as redes físicas Vantagens: – Uniformidade – Facilidade depuração de projeto, manutenção Desvantagens: – Número fixo de redes para todo o site – Número fixo de hosts por rede e Máscara de sub-rede de tamanho variável (VLSM) – exemplo Tráfego em direção a rede 150.0.0.0 1 10K R1 R2 1 20K R3 1 Restante da Internet 1 5K 5K Site com 4 redes físicas, mas apenas uma rede IP ● 4 sub-redes de uma classe B (ex.: 150.0.0.0) atendem adequadamente, no entanto, cada sub-rede possui um tamanho diferente Máscara de sub-rede de tamanho variável (VLSM) – exemplo (cont.) Rede 150.0.0.0 = 10010110 00000000 00000000 00000000 ● ● ● ● 4 redes físicas, sendo que a maior necessita de ½ dos endereços IP => 1 bit (resta ½ dos endereços) A segunda maior rede física necessita de ¼ dos endereços => 2 bits (resta ¼ dos endereços) As duas redes físicas menores são atendidas com 1/8 dos endereços (cada uma) => 3 bits Ou seja, as respectivas máscaras atendem: Máscara = 11111111 11111111 10000000 0000000 (255.255.128.0) Máscara = 11111111 11111111 11000000 0000000 (255.255.192.0) Máscara = 11111111 11111111 11100000 0000000 (255.255.224.0) Máscara de sub-rede de tamanho variável (VLSM) – exemplo Tráfego em direção a rede 150.0.0.0 1 10K R1 R2 Restante da Internet sub-rede 150.0.128.0/255.255.192.0 1 20K R3 sub-rede 150.0.0.0/255.255.128.0 1 5K 5K sub-rede 150.0.192.0/255.255.224.0 sub-rede 150.0.224.0/255.255.224.0 ● 1 Site com 4 redes físicas, mas apenas uma rede IP Resultado da distribuição de endereços IP da rede 150.0.0.0 usando 4 sub-redes de tamanhos diferentes Máscara de sub-rede de tamanho variável (VLSM – Variable Length Subnet Mask) ● ● ● ● Administrador pode escolher tamanhos diferentes para cada rede física Máscara é associada com base na rede física, ou seja, cada rede pode ter a sua máscara Vantagens: – Flexibilidade tamanhos para misturar redes físicas – Uso mais racional do espaço de endereçamento de diferentes Desvantagens: – Maior complexidade para atribuir e administrar endereços – Potenciais ambiguidades e inconsistências no endereçamento Máscara de sub-rede de tamanho variável (VLSM) – exemplo de inconsistência Tráfego em direção a rede 150.0.0.0 1 10K R1 R2 1 20K R3 1 Restante da Internet 1 5K 5K Site com 4 redes físicas, mas apenas uma rede IP ● Mesma configuração anterior, porém usando uma distribuição diferente que leva a uma sub-rede que não é endereçada conforme o esperado Máscara de sub-rede de tamanho variável (VLSM) – exemplo de inconsistência (cont.) Rede 150.0.0.0 = 10010110 00000000 00000000 00000000 ● ● ● ● 4 redes físicas, sendo que a primeira (de cima para baixo na figura anterior) necessita de ¼ dos endereços IP => 2 bits (resta ¾ dos endereços) A segunda (e maior) rede física necessita de ½ dos endereços => 1 bit (resta ¼ dos endereços) As duas redes físicas menores são atendidas com 1/8 dos endereços (cada uma) => 3 bits Ou seja, as respectivas máscaras atendem: Máscara = 11111111 11111111 11000000 0000000 (255.255.192.0) Máscara = 11111111 11111111 10000000 0000000 (255.255.128.0) Máscara = 11111111 11111111 11100000 0000000 (255.255.224.0) Máscara de sub-rede de tamanho variável (VLSM) – exemplo de inconsistência (cont.) Tráfego em direção a rede 150.0.0.0 1 10K R1 R2 Restante da Internet sub-rede 150.0.0.0/255.255.192.0 1 20K R3 sub-rede 150.0.64.0/255.255.128.0 1 5K 5K sub-rede 150.0.192.0/255.255.224.0 sub-rede 150.0.224.0/255.255.224.0 ● 1 Site com 4 redes físicas, mas apenas uma rede IP O resultado é semelhante ao obtido anteriormente, porém há uma inconsistência Máscara de sub-rede de tamanho variável (VLSM) – exemplo de inconsistência (cont.) Supondo que a distribuição fosse válida, as tabelas de roteamento dentro do site conteriam as seguintes entradas: 150.0.0.0/255.255.192.0 150.0.64.0/255.255.128.0 150.0.192.0/255.255.224.0 150.0.224.0/255.255.224.0 Se um pacote endereçado ao IP 150.0.128.1 aparecesse, em qual entrada da tabela se enquadraria? Pela distribuição seria na 2.a entrada (150.0.64.0/255.255.128.0), mas veja o resultado do “E” bit-a-bit entre o endereço e a máscara: 150.0.128.1 = 10010110 00000000 10000000 00000001 (E) 255.255.128.0 = 11111111 11111111 10000000 00000000 10010110 00000000 10000000 00000000 = 150.0.128.0 (???) Roteamento com VLSM ● ● Cada entrada na tabela de roteamento tem uma máscara associada – Uma máscara com todos os bits “1” é usada para uma rota específica para um host – Uma máscara de rede (A, B ou C) é usada para rota específica de rede – Uma máscara de sub-rede é usada para rota específica de sub-rede – Uma máscara com todos os bits “0” é usada para especificar a rota padrão As rotas são ordenadas por ordem decrescente de bits “1” nas máscaras Classless Inter-Domain Routing (CIDR) ● ● Problemas: – Crescimento exponencial da Internet – O uso de sub-redes não é suficiente – Endereços IP limitados (sobretudo classe B) Previsão feita em 1993: – ● “Endereços IP (versão 4) esgotados em poucos anos” Devido a várias medidas endereços não se esgotaram – até hoje Novas previsões: 2010, 2011, 2016, 2023, etc. Motivação para CIDR: classe C ● ● Contexto: – Pouco mais de 16 mil prefixos de classe B – Mais de 2 milhões de prefixos de classe C – Classe C é muito pequena para um grande número de redes Com CIDR tornou-se possível, por exemplo: – Agrupar 256 prefixos de classe C em um único prefixo equivalente a uma classe B – Dividir uma classe B em prefixos menores, desde que potências de 2 Notação CIDR ● ● Endereços são escritos no formato: número/M – Número: prefixo de rede – M: quantidade de bits “1” na máscara, ou seja, seu tamanho Exemplo: 214.5.48.0/20 – Prefixo ocupa 20 bits – Sufixo ocupa 12 bits – Essa faixa equivale a 16 prefixos de classe C ou 1/16 de classe B Exemplo em detalhe 214.5.48.0 = 11010110 00000101 00110000 00000000 20 bits = 11111111 11111111 11110000 00000000 prefixo da rede = 11010110 00000101 00110000 00000000 ou 214.5.48.0 end. de difusão = 11010110 00000101 00111111 11111111 ou 214.5.63.255 É equivalente, por exemplo, às seguintes redes classe C agrupadas: 214.5.48.0 214.5.52.0 214.5.56.0 214.5.60.0 214.5.49.0 214.5.53.0 214.5.57.0 214.5.61.0 214.5.50.0 214.5.54.0 214.5.58.0 214.5.62.0 214.5.51.0 214.5.55.0 214.5.59.0 214.5.63.0 Proliferação de rotas ● Se o roteamento usasse o esquema original de classes, os endereços CIDR implicariam em muitas rotas – ● Por exemplo, um site com uma faixa equivalente a 16 redes classe C (como a anterior) precisaria de 16 entradas em uma tabela de rotas CIDR propõem o conceito de super-rede – Uma faixa de endereços pode ser subdividida (sub-rede) e um conjunto de faixas pode ser agrupado (super-rede) Agregação de rotas ● ● ● ● Muda o roteamento, assim como foi mudado o endereçamento Cada rota tem uma máscara associada Sempre que informações de roteamento são trocadas, o par (endereço,máscara) é enviado Também é conhecida como bloco CIDR Roteamento com CIDR ● ● Cada entrada na tabela tem uma máscara associada Busca é organizada do mais específico para o menos específico (ou seja, entrada com maior máscara é testada antes) – ● Conhecida como consulta (ou busca) do prefixo mais longo Enfim, semelhante a VLSM, porém não está restrito a um site Usando CIDR - exemplo 1 1 4K R1 R2 1 Restante da Internet 8K R3 1 1 2K 2K O site pode ser atendido (como exemplo) pela seguinte rede 200.150.64.0/18, evitando: – O desperdício de uma rede classe B – A manipulação de 64 entradas de redes classe C apenas para o site Usando CIDR - exemplo 1 (cont.) Tráfego em direção a rede 200.150.64.0/18 1 4K R1 R2 Restante da Internet sub-rede 200.150.96.0/20 1 8K R3 sub-rede 200.150.64.0/19 1 2K 1 2K sub-rede 200.150.112.0/21 sub-rede 200.150.120.0/21 Uso da rede 200.150.64.0/18, com VLSM para atender as redes físicas de diferentes tamanhos e CIDR para descrever agregações (e portanto, rotas) sem classe Usando CIDR - exemplo 2 1 Restante da Internet 12 R1 R2 28 1 R3 1 13 Alguns ISPs tem clientes com demanda por pequeno número de endereços IP, a qual pode ser atendida por uma fração de classe C. Por exemplo, a rede 200.100.50.128/26, atende o site acima Usando CIDR - exemplo 2 (cont.) Tráfego em direção a rede 200.150.50.128/26 1 Restante da Internet 12 R1 R2 sub-rede 200.150.50.160/28 1 28 R3 sub-rede 200.150.50.128/27 1 13 sub-rede 200.150.50.176.0/28 Uso da rede 200.100.50.128/26, com VLSM para atender as redes físicas de diferentes tamanhos e CIDR para economizar endereços Resumo CIDR ● Atende temporariamente, espera-se que até a versão 6 do IP se estabelecer – ● Foi previsto para ter sucesso durante alguns anos, mas superou muito as expectativas Mantém compatibilidade retroativa com endereços com classe – Basicamente, estende o conceito de máscara de sub-rede de tamanho variável (VLSM) para o prefixo Mais endereços especiais ● Endereços IP privados – Alguns blocos CIDR reservados para uso dentro de um site – Não devem aparecer na Internet pública ● Podem se repetir em diferentes sites – São também chamados “não roteáveis”, pois alguns roteadores (na Internet) os descartam – São eles: Prefixo Início Fim 10/8 10.0.0.0 10.255.255.255 172.16/12 172.16.0.0 172.31.255.255 192.168/16 192.168.0.0 192.168.255.255 169.254/16 169.254.0.0 169.254.255.255 Roteamento ● Regras para o encaminhamento de pacotes – Hosts entregam pacotes para destinos conectados “diretamente” ● – Destino está conectado “diretamente” quando tem o mesmo prefixo de rede da origem, ou seja, exige um teste simples Hosts enviam para um roteador os pacotes que não conseguem entregar “diretamente” ● Hosts também encaminhamento precisam encaminham tomar pacotes decisões para de – Roteadores roteadores outros – Roteador mais próximo do destino faz a entrega “direta” Exemplo ● Tabela do roteador R Encaminhamento eficiente ● ● Decisões são baseadas em consulta à tabela de roteamento ou encaminhamento Tabela de roteamento mantém apenas os prefixos de rede – ● Tabela de rota mantém apenas o endereço para o próximo roteador, ou seja, é um roteamento (ou encaminhamento) de próximo-salto Operações que exigem extrema eficiência: – Consulta à tabela (table lookup) – Atualização de rota Entradas especiais ● ● Rota padrão (default route) – Não é obrigatória, mas é útil, sobretudo para hosts – É usada quando o endereço não casa com nenhuma outra entrada da tabela (máscara: 0.0.0.0) – Normalmente, deve haver apenas uma rota padrão Rota específica para host – Pode ser usado para estabelecer um caminho específico para um host, por exemplo, diferente do caminho de seu prefixo de rede – Máscara: 255.255.255.255