Professional Documents
Culture Documents
Endereçamento IP
• Endereços IP possuem 32 bits, o que possibilita 232 = 4.294.967.296 endereços
n bits 32 − n bits
endereço de rede endereço de host
– A divisão (quantos bits são usados para rede e quantos são usados para host) depende de
cada rede; no total, a soma deve ser sempre 32
(14 bits de rede, 16 bits de host) 10111111 11111111 11111111 11111111 191.255.255.255
(21 bits de rede, 8 bits de host) 11011111 11111111 11111111 11111111 223.255.255.255
1
Endereçamento IP, Sub-redes e Roteamento 2
• Um endereço IP possui uma máscara de rede, que é determinada pela classe do endereço:
– Para um endereço classe C, a máscara default (ou natural) tem os 24 bits iniciais ligados ⇒
255.255.255.0
– Para um endereço classe B, a máscara default tem os 16 bits iniciais ligados ⇒ 255.255.0.0
– Para um endereço classe A, a máscara default tem os 8 bits iniciais ligados ⇒ 255.0.0.0
• Os bits iniciais ligados da máscara determinam quais bits pertencem ao endereço de rede:
Sub-redes
• As classes de endereços possuem uma certa inflexibilidade
– Muitas redes precisam de uma quantidade de endereços bem menor do que o tamanho da
classe
∗ classe C com 2 hosts: 0,79% (= 2/254) dos endereços são aproveitados
∗ classe B com 256 hosts: 0,39% (= 256/65534) dos endereços são aproveitados
– Em muitos casos uma mesma organização possui várias redes internas que precisam ser
roteadas separadamente
• A solução para isso foi subdividir a faixa de endereços de uma rede em um número de sub-
redes
. &
n bits s bits 32 − (n + s) bits
endereço de rede endereço de sub-rede endereço de host
– Topológicas
∗ Contornar limitações da rede fı́sica → tamanho máximo do segmento Ethernet, por
exemplo
∗ Interligar redes fı́sicas distintas
∗ Reduzir ou isolar tráfego → se alguns hosts trocam muito tráfego entre si, eles podem
ser colocados em uma sub-rede separada para diminuir o impacto sobre os demais
hosts, por exemplo
– Administrativas
∗ Facilitar a administração da rede → delegação da responsabilidade sobre cada sub-
rede
∗ Refletir a estrutura organizacional → cada departamento tem sua própria sub-rede,
por exemplo
∗ Segregar ou isolar tráfego → colocar o departamento financeiro em uma sub-rede
separada para dificultar possı́veis vazamentos de informação, por exemplo
∗ Isolar segmentos ou usuários “problemáticos” → laboratórios de ensino ou pesquisa
que podem comprometer a estabilidade da rede, por exemplo
CIDR
• O esquema de endereçamento IP com classes ameaçou esgotar os endereços disponı́veis (espe-
cialmente da classe B)
– Além disso, as tabelas de roteamento estavam ficando muito grandes devido à forma como
os blocos de endereços eram alocados (seqüencialmente)
• A solução foi mudar a forma de alocação (que passou a ser hierárquica) e flexibilizar as classes
de endereços, que deixaram de ser fixas (CIDR, Classless Inter-Domain Routing)
– Cada provedor recebe um grande bloco contı́nuo de endereços, que é subdividido entre
seus clientes
– Permite a agregação de rotas
• A porção de rede de um endereço IP passa a ser determinada não mais pela sua classe mas pela
sua máscara:
192 . 0 . 2 . 0
↓ ↓ ↓ ↓
11000000.00000000.00000010.00000000
2. Exprimir a máscara de rede em binário. No caso, o “/24” nos diz que os 24 bits iniciais são
ligados, e os demais desligados. Portanto, a máscara desta rede é dada por:
3. Uma vez determinado o endereço de rede, é possı́vel determinar o endereço de broadcast. Para
isso, basta pegar o endereço de rede e ligar todos os bits correspondentes ao endereço de host;
o endereço resultante é o endereço de broadcast.
No exemplo dado, como 24 bits iniciais são usados para o endereço de rede (de acordo com a
máscara), sobram os últimos 8 bits para o endereço de host; ligando esses bits, obtemos então o
endereço de broadcast:
Máscara: 255.255.255.0
Endereço de rede: 192.0.2.0
Endereço de broadcast: 192.0.2.255
Faixa de end. válidos: 192.0.2.1 – 192.0.2.254 (254 endereços)
172 . 16 . 0 . 0
↓ ↓ ↓ ↓
10101100.00010000.00000000.00000000
11111111.11111111.11100000.00000000
↓ ↓ ↓ ↓
255 . 255 . 224 . 0
5. Em resumo:
Máscara: 255.255.224.0
Endereço de rede: 172.16.0.0
Endereço de broadcast: 172.16.31.255
Faixa de end. válidos: 172.16.0.1 – 172.16.31.254 (8.190 endereços)
Esse processo será demonstrado através de um exemplo: dividir a rede 192.168.10.0/24 em quatro
sub-redes.
1. Para obter quatro sub-redes, são necessários 2 bits de sub-rede (pois 22 = 4).
2. A máscara de sub-rede é obtida somando os 2 bits determinados no item anterior aos 24 bits já
existentes na máscara de rede (/24); portanto, a máscara de sub-rede é /26, ou 255.255.255.192:
11111111.11111111.11111111.11000000
↓ ↓ ↓ ↓
255 . 255 . 255 . 192
3. Os dois bits de sub-rede podem representar quatro valores: 00, 01, 10 e 11. Esses valores cor-
respondem aos endereços da primeira (00), da segunda (01), da terceira (10) e da quarta (11)
sub-redes.
Para obter os parâmetros dos blocos de endereços correspondentes a cada uma dessas sub-
redes, basta variar os bits de sub-rede de acordo com as combinações possı́veis e usar o método
de caracterização de um bloco CIDR (pág. 5) para cada um dos endereços de sub-rede (usando a
máscara de sub-rede obtida acima). Uma exceção é feita para a obtenção do endereço inicial (de
sub-rede) do primeiro bloco, que usa a máscara de rede (sem os bits de sub-rede) para garantir
que a primeira sub-rede coincida com o inı́cio do bloco original.
Então, para a primeira sub-rede:
(a) A segunda sub-rede utiliza um endereço de rede similar ao da primeira, mas com os bits
de sub-rede em 01:
Endereço: 11000000 10101000 00001010 01000000 = 192.168.10.64
(b) Obtendo o endereço de broadcast:
26 bits de rede+sub-rede 6b de host
11000000.10101000.00001010.01111111
↓ ↓ ↓ ↓
192 . 168 . 10 . 127
(a) A terceira sub-rede utiliza um endereço de rede similar ao da primeira, mas com os bits
de sub-rede em 10:
Endereço: 11000000 10101000 00001010 10000000 = 192.168.10.128
(b) Obtendo o endereço de broadcast:
26 bits de rede+sub-rede 6b de host
11000000.10101000.00001010.10111111
↓ ↓ ↓ ↓
192 . 168 . 10 . 191
(a) A quarta sub-rede utiliza um endereço de rede similar ao da primeira, mas com os bits de
sub-rede em 11:
Endereço: 11000000 10101000 00001010 11000000 = 192.168.10.192
(b) Obtendo o endereço de broadcast:
26 bits de rede+sub-rede 6b de host
11000000.10101000.00001010.11111111
↓ ↓ ↓ ↓
192 . 168 . 10 . 255
1. Para dividir o bloco em 8 sub-redes, são necessários 3 bits de sub-rede (23 = 8).
11111111.11111111.11000000.00000000
↓ ↓ ↓ ↓
255 . 255 . 192 . 0
3. O endereço da primeira sub-rede é o próprio endereço inicial do bloco (os bits em negrito são
os bits de sub-rede):
Endereço: 192.224.0.0 = 11000000 111000000 00000000 00000000
O broadcast é calculado em cima do endereço de sub-rede obtido:
Roteamento IP
• Cada nó possui uma tabela de roteamento que é consultada a cada vez que um datagrama
precisa ser enviado
• Quando a camada IP recebe um datagrama de uma interface de rede, ela verifica se o endereço
de destino é um dos seus próprios endereços ou um endereço de broadcast
– Endereço IP de destino: pode ser um endereço de host ou um endereço de rede, com uma
máscara associada;
– Endereço IP do próximo hop (salto): o próximo hop é para onde pacotes endereçados ao
destino devem ser enviados;
– Flags: indicam, entre outras coisas, se o endereço de destino refere-se a um host ou uma
rede, e se o endereço de próximo hop refere-se a um roteador ou a uma rede diretamente
conectada;
– Interface de saı́da: por qual interface de rede os datagramas para este destino devem ser
transmitidos.
A tabela de roteamento não tem rotas completas para todos os destinos, só o endereço do rote-
ador “mais próximo” de cada destino.
1. Se existir uma rota para o host de destino, o datagrama é enviado para o roteador no
próximo hop ou para a rede localmente conectada, dependendo do valor das flags → caso
tı́pico de enlaces ponto a ponto
2. Se existir uma rota para a rede de destino, o datagrama é enviado para o roteador no
próximo hop ou para a rede localmente conectada, dependendo do valor das flags → caso
tı́pico de enlaces multiponto, como Ethernet
Neste caso, a máscara de sub-rede entra em consideração.
3. Se existir uma rota default, o datagrama é enviado para o roteador indicado.
4. Caso contrário, o datagrama é descartado, e uma mensagem ICMP indicando o erro é
normalmente enviada ao endereço IP de origem.
Rede 172.18.224.0/20
Internet
226.9 mov3
rot1 224.193
est1 225.129
225.140
224.194
Ethernet
est2
172.18.225.0/26
225.141 GigEthernet srv3
172.18.224.192/26 225.20
Ethernet
224.195 172.18.227.64/26 224.196
srv4
rot3
225.1 225.40
227.65 rot4
srv5
225.60
• A primeira rota é para a sub-rede local, diretamente conectada através de um enlace Ethernet;
por convenção, o endereço do gateway é o endereço da própria est1 nesta sub-rede. A interface
Ethernet do host é representada, no último campo, por eth0.
• A segunda rota é a rota default: quando nenhuma rota mais especı́fica for encontrada, os data-
gramas devem ser enviados (pela interface eth0) para o roteador rot1 (172.18.225.129), que se
encarregará de fazer com o que eles cheguem até seu destino.
ATENÇÃO: a interface contida na tabela de rotas é a interface de saı́da da rota (i.e., a interface
por onde os pacotes para o destino especificado são transmitidos), e não a interface de entrada
do roteador usado como gateway (mesmo porque uma estação não tem como saber em qual
interface do roteador está conectada).
• A primeira e a segunda rotas são para as sub-redes localmente conectadas. É importante notar
que o endereço de próximo hop nos dois casos é o endereço da interface do próprio rot1 em cada
uma dessas sub-redes, e que cada rota usa uma interface de saı́da diferente.
• A terceira e a quarta rotas são rotas para sub-redes acessı́veis por outros roteadores. É interes-
sante observar que, neste caso, a sub-rede 172.18.226.0/26 (rede Wi-Fi) não precisa de uma
rota especı́fica, pois o roteador que dá acesso a ela é o mesmo da rota default (quinta rota na
tabela).
eth0
eth3 eth1
eth2
NAT
• A escassez de endereços IP levou ao desenvolvimento de um mecanismo chamado NAT (Network
Address Translation)
• A premissa básica do NAT é que hosts não precisam ter endereços “públicos”, eles podem ter
endereços “privados”
– Endereços privados não precisam ser únicos na rede como um todo, mas apenas na rede
local
– A RFC 1918 define as seguintes redes para atribuição de endereços privados: 10/8, 172.16/19
e 192.168/16
– Endereços privados podem ser livremente alocados pelo administrador de uma determi-
nada rede
• Quando um host com endereço privado precisa se comunicar com o exterior, ele faz isso através
de um “NAT box”
Internet
Rede privada
172.18.227.0/24
– O NAT box possui um endereço IP público (geralmente chamado IP válido), que é único
na Internet e alocado da forma usual
– O NAT box realiza a tradução entre o endereço válido e os endereços privados, modifi-
cando o cabeçalho dos pacotes na transmissão e na recepção
– Externamente, os pacotes originados pelo host com endereço privado têm como endereço
IP de origem o IP válido do NAT box
– Para saber qual endereço privado usar, ele mantém uma tabela que associa os hosts inter-
nos aos endereços externos que eles acessaram
• Dificuldades:
– Em geral, não é possı́vel estabelecer conexões de fora para dentro de uma rede com NAT
– Diversos protocolos de camadas superiores (transporte ou aplicação) carregam o endereço
IP do host no seu conteúdo, o que causa problemas em muitas aplicações