Arquitetura TCP/IP - INF

Propaganda
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
Download