Para
que
serve
o
NAT?
Os
provedores
de
acesso
Internet
tem
a
necessidade
de
estar
sempre
expandindo
o
seu
cliente
e
disponibilizando
novos
serviços
para
continuar
a
crescer
nesse
mercado
tão
competitivo.
Um
dos
grandes
mercados
que
o
provedor
pode
investir
é
o
de
conexão
de
pequenas
e
médias
empresas
à
Internet,
ganhando
assim
nos
serviços,
na
consultoria
e
no
acesso.
Essas
pequenas
e
médias
redes
(entre
5
a
25
máquinas)
tem
necessidades
bem
definidas
e
comuns:
permitir
com
que
as
máquinas
da
rede
local
acessem
a
Internet
com
segurança
e,
eventualmente,
permitir
com
que
a
Internet
acesse
um
ou
mais
servidores
(WWW,
FTP,
e-mail,
etc.)
na
rede
local.
Por
outro
lado,
existem
algumas
dessas
pequenas
redes
que
não
estão
dispostas
a
pagarem
o
auto
custo
de
se
conectarem
diretamente
a
Internet,
quer
seja
através
de
um
provedor
Internet,
quer
seja
através
de
uma
conexão
direta
com
algum
"backbone".
Essas
redes
desejam
apenas
permitir
com
que
as
máquinas
da
rede
local
acessem
esporadicamente
a
Internet
porém
não
podem
disponibilizar
modems,
linhas
telefônicas
e
contas
em
provedor
para
cada
máquina.
Esse
tipo
de
rede
necessita
de
algum
meio
de
compartilhar
um
modem,
uma
linha
telefônica
e
uma
conta
de
acesso
no
provedor.
Os
Problemas
O
Provedor
e
o
Fornecimento
de
Conexões
de
Redes
Quando
o
provedor
de
acesso
entra
no
mercado
de
fornecimento
de
conexões
para
pequenas
e
médias
empresas
ele
se
depara
com
um
problema
sério:
a
escassez
de
endereços
IPs.
Cada
provedor,
quando
começa
as
suas
operações
recebe
o
que
se
chama
"Uma
Classe
C".
Uma
classe
C
é
uma
seqüência
de
endereços
que
são
disponibilizados
para
a
rede
desse
provedor
e
cada
máquina
da
rede
deve
ter
um
endereço
dentro
dessa
seqüência,
quer
seja
servidor
de
WWW,
e-mail,
estação
de
trabalho
ou
usuário
discado
(isso
mesmo,
cada
computador
que
acesse
a
Internet
do
provedor
ganha,
no
instante
da
conexão,
um
desses
endereços
IPs).
Uma
classe
C
é
composta
de
256
endereços
IPs
(porém,
por
razões
técnicas,
nem
todos
podem
serutilizados)
e
não
pode
haver
na
rede
duas
máquinas
com
o
mesmo
endereço
IP.
256
endereços
IPs
muitas
vezes
não
é
suficiente
para
um
provedor
de
acesso
Internet,
então
ele
se
vê
forçado
a
pedir
mais
uma
classe
C;
porém
esse
processo
é
burocrático
e
o
provedor
é
obrigado
a
justificar
de
maneira
clara
a
sua
necessidade.
A
coisa
se
torna
pior
quando
o
provedor
tenta
vender
conexões
as
pequenas
e
médias
empresas,
porque
nesse
caso
cada
máquina
da
rede
local
dessas
empresas
deve
receber
1
endereço
IP.
Assim,
uma
rede
com
14
máquinas
deve
receber
14
endereços
IPs
(com
disse
acima,
por
razões
técnicas
alguns
endereços
IP
a
mais
devem
são
desperdiçados,
para
saber
mais
sobre
essas
razões
consulte
algum
texto
sobre
roteamento
e
máscaras
de
rede).
Assim,
o
provedor
necessita
de
alguma
coisa
que
permita
com
que
ele
economize
endereços
IPs
e
que
atenda
as
necessidades
dos
seus
clientes.
Uma
das
soluções
é
o
NAT.
A
Pequena
Empresa
e
o
Compartilhamento
de
Modem/Linha/Conta
Já
no
caso
da
pequena
empresa
tentando
compartilhar
o
modem
e
a
linha
telefônica
o
problema
é
um
pouco
mais
complicado.
Nesse
caso
o
único
meio
de
acesso
com
a
Internet
é
uma
conta
em
um
provedor
de
acesso;
essas
contas
de
acesso
dão
direito
a
apenas
um
endereço
IP,
que
o
computador
recebe
quando
disca
para
o
provedor.
Esse
endereço
IP
muda
a
cada
conexão.
Assim,
a
solução
nesse
caso
é
necessário
algo
que
consiga
compartilhar
esse
endereço
IP
recebido
com
todas
as
máquinas
da
rede
local.
Neste
caso
a
solução
também
é
o
NAT.
O
Que
é
o
NAT?
O
NAT
não
é
um
protocolo
nem
um
padrão.
O
NAT
é
apenas
uma
série
de
tarefas
que
um
roteador
(ou
equipamento
equivalente)
deve
realizar
para
converter
endereços
IPs
entre
redes
distintas.
Um
equipamento
que
tenha
o
recurso
de
NAT
(sigla
em
inglês:
"Network
Address
Translation"
ou
Tradução
de
Endereço
de
Rede)
deve
ser
capaz
de
analisar
todos
os
pacotes
de
dados
que
passam
por
ele
e
trocar
os
endereços
desses
pacotes
de
maneira
adequada.
Para
facilitar
o
entendimento
do
NAT
vamos
ver
dois
exemplos:
Exemplo
1
Suponha
que
nós
queremos
conectar
uma
rede
de
três
computadores
na
Internet
através
de
uma
única
linha
telefônica,
um
modem
e
apenas
uma
conta
de
acesso
ao
provedor,
conforme
a
figura
1
(nessa
figura
o
modem
conectado
ao
roteador
não
foi
desenhado
para
simplificar
o
desenho).
Nesta
figura
temos
os
computadores
com
endereços
IPs
de
10.0.0.2
até
10.0.0.4
(note
que
esses
endereços
IPs
não
são
válidos
na
Internet,
assim
os
pacotes
de
dados
enviados
por
essas
máquinas
não
podem
ser
roteados
na
Internet),
um
roteador
(representado
por
um
círculo
com
setas)
com
2
endereços
IPs:
10.0.0.1
na
rede
local
e
200.231.107.41
que
ele
recebeu
ao
se
conectar
ao
provedor.
Repare
que
o
endereço
que
o
roteador
recebeu
pode
mudar
a
cada
conexão.
Vamos
agora
entender
como
essa
conexão
funciona:
o
roteador
deve
ter
o
recurso
de
NAT,
como
por
exemplo
o
a
linha
Office-Router
ou
Pipeline
da
Lucent.
Esses
roteadores
tem
uma
porta
Ethernet
conectada
ao
hub
da
rede
local
e
uma
porta
serial
conectada
a
um
modem
ou
linha
ISDN.
Enquanto
ninguém
esta
acessando
a
Internet
a
conexão
com
o
provedor
não
esta
ativa
e
a
linha
telefônica
esta
disponível.
Quando
alguma
máquina
da
rede
acessa
a
Internet
ela
manda
o
pacote
de
dados
para
o
roteador
(que
é
o
default
gateway
da
rede),
este
então
envia
os
comando
de
discagem
para
o
modem,
que
se
conecta
com
o
modem
do
provedor;
após
a
conexão
dos
modems
o
roteador
passa
um
nome
de
usuário
e
uma
senha
para
o
servidor
de
comunicações
do
provedor
e
recebe
um
endereço
IP.
Se
os
computadores
da
rede
tivessem
endereços
IPs
válidos
estaria
tudo
pronto
e
o
roteador
só
passaria
o
pacote
de
dados
para
o
provedor,
porém,
como
vimos
acima,
os
endereços
IPs
são
escassos
e
por
isso
não
podemos
nos
dar
ao
luxo
de
utilizarmos
endereços
IPs
válidos
na
rede
local.
Assim,
o
roteador
deve,
antes
de
enviar
o
pacote
de
dados
para
o
provedor,
trocar
o
endereço
de
origem
do
pacote
de
dados
para
o
endereço
que
ele
recebeu
do
provedor
e
só
depois
jogar
o
pacote
para
o
provedor;
quando
o
pacote
voltar
o
roteador
deve
trocar
o
endereço
de
destino
do
pacote
novamente
para
o
endereço
não
válido
da
máquina
na
rede
local
e
só
depois
jogar
o
pacote
para
essa
máquina.
Esse
processo
de
trocade
endereços
IPs
é
o
chamado
NAT.
Como
sabemos
a
vida
nunca
é
tão
simples
assim.
Esse
processo
funcionaria
muito
bem
se
apenas
um
computador
acessasse
a
Internet
a
cada
instante,
porém
nós
queremos
que
todas
as
máquinas
possam
acessar
a
Internet
ao
mesmo
tempo.
Assim
é
possível
que
em
um
determinado
instante
pacotes
de
dados
de
duas
máquinas
distintas
cheguem
ao
roteador,
ele
deve
então
trocar
o
endereço
de
origem
dos
pacotes
e
enviar
para
a
Internet
e,
ao
receber
a
resposta,
trocar
os
endereços
IP
de
destino
dos
pacotes
adequadamente
para
os
respectivos
computadores.
Para
que
o
roteador
possa
encaminhar
a
resposta
corretamente
a
cada
um
dos
computadores
de
destino
o
roteador
tem
que
"lembrar"
para
onde
cada
máquina
enviou
os
pacotes,
de
forma
que
quando
os
pacotes
de
resposta
chegarem
ele
possa
identifica-los
corretamente.
Assim,
o
roteador
deve
armazenar
em
sua
memória
os
pacotes
que
passaram
por
ele
até
que
as
respostas
cheguem.
Devido
ao
fato
de
que
os
pacotes
de
dados
só
entrem
se
houve
um
pacote
correspondente
que
saiu
a
segurança
da
rede
fica
muito
forte.
Um
pacote
enviado
por
alguém
na
Internet
tentando
invadir
a
rede
irá
chegar
até
o
roteador,
porém
como
ele
não
vai
encontrar
em
sua
memória
um
endereço
da
rede
local
para
enviar
esse
pacote
o
roteador
irá
simplesmente
jogar
o
pacote
fora.
Exemplo
2
No
exemplos
anterior
vimos
como
ligar
a
Internet
uma
pequena
rede
utilizando
um
roteador
com
NAT,
uma
linha
telefônica,
um
modem
e
uma
conta
de
acesso
no
provedor.
Naquele
exemplo
a
rede
local
acessa
a
Internet,
porem
a
Internet
não
consegue
acessar
nenhum
serviços
da
rede
local.
Neste
exemplo
vamos
analisar
um
outro
caso:
uma
rede
que
deseja
com
que
as
máquinas
da
rede
local
acessem
a
Internet,
porém
também
deseja
com
que
a
Internet
seja
capaz
de
enxergar
um
servidor
WWW
e
um
servidor
de
DNS
na
rede
local,
conforme
a
figura
2.
Neste
exemplo
temos
dois
computadores
na
rede
local:
o
10.0.0.2
e
o
10.0.0.3,
dois
servidores:
o
10.0.0.4
que
é
servidor
de
WWW
e
o
10.0.0.5
que
é
servidor
de
DNS
e
por
último
o
roteador
do
exemplo
anterior.
Algumas
diferenças
básicas
entre
este
exemplo
e
o
anterior:
1.Neste
exemplo
a
Internet
deve
ser
capaz
de
endereçar
o
roteador,
ou
seja,
o
endereço
do
lado
válido
do
roteador
deve
ser
fixo.
Para
que
os
computadores
na
Internet
acessem
essa
rede
eles
devem
conhecer
o
endereço
IP
dela,
e
isso
fica
muito
difícil
se
o
endereço
muda
a
cada
instante.
Isso
implica
que
um
acordo
deve
ser
firmado
entre
o
provedor
e
o
administrador
da
rede
de
forma
que
o
provedor
configure
os
seus
servidores
de
comunicação
para
passarem
para
o
roteador
dessa
rede
sempre
o
mesmo
endereço
IP.
2.O
roteador
deve
ser
capaz
de
identificar
cada
pacote
de
dados
que
chega
e
definir
se
ele
deve
ser
encaminhado
para
os
servidores
ou
para
os
outros
computadores
da
rede
(este
último
caso,
ospacotes
seriam
resposta
às
requisições
desses
computadores).
3.Para
que
a
Internet
enxergue
os
servidores
é
necessário
que
a
conexão
entre
a
rede
e
o
provedor
esteja
estabelecida.
Assim,
é
recomendável
neste
exemplo
2
que
a
ligação
entre
a
rede
local
e
o
provedor
seja
feita
através
de
uma
linha
privativa
dedicada.
Utilizar
uma
conexão
discada
para
este
caso
seria
possível,
porém
nenhuma
máquina
na
Internet
conseguirá
acessar
esta
rede
quando
a
roteador
não
estiver
conectado
ao
provedor.
Para
que
este
exemplo
funcione
o
roteador
tem
que
fazer
mais
do
que
NAT,
ele
deve
ser
capaz
de
implementar
o
conceito
de
servidor
virtual.
Vamos
relembrar:
o
roteador
com
NAT
joga
os
pacotes
de
dados
para
a
Internet
trocando
o
endereço
IP
de
origem
pelo
endereço
que
ele
ganhou
do
provedor
e
pega
as
respostas
que
chegam
da
Internet
e
jogam
de
volta
para
a
rede
local
trocando
o
endereço
de
destino
(que
é
o
seu
endereço
válido)
pelo
endereço
apropriado
da
rede
local.
Muito
bem,
agora
vamos
pensar
no
caso
de
um
computador
na
Internet
tentando
acessar
o
servidor
de
WWW:
o
computador
da
Internet
manda
o
pacote
de
dados
para
o
endereço
que
o
roteador
recebeu
do
provedor
(200.231.107.42),
esse
pacote
chega
para
o
roteador
e
o
roteador
deve
então
trocar
o
endereço
IP
de
destino
do
pacote
para
10.0.0.4
(endereço
do
servidor
WWW
da
rede
local)
e
pegar
pacote
com
a
reposta
gerada
pelo
servidor
e
trocar
o
endereço
de
destino
desse
pacote
pelo
endereço
válido
e
jogar
para
a
Internet.
Para
isso,
o
roteador
tem
que
ser
informado
sobre
quais
computadores
da
rede
local
atendem
a
quais
serviços;
esse
trabalho
é
feito
pelo
administrador
da
rede
local.
Essa
capacidade
de
rotear
adequada
os
pacotes
de
acordo
com
o
serviço
é
chamada
de
Servidor
Virtual,
pois
permite
com
que
o
roteador
se
comporte,
do
ponto
da
vista
da
Internet,
como
um
servidor;
porém
o
servidor
real
esta
na
rede
local
atrás
do
roteador.
Repare
que
o
recurso
de
servidor
virtual
trás
uma
segurança
muito
grande
para
a
rede,
pois
apenas
os
serviços
configurados
no
roteador
são
passados
para
a
rede,
qualquer
tentativa
de
acessar
a
rede
local
ou
servidores
locais
em
qualquer
outro
serviço
não
irá
obter
sucesso.
NAT
Avançado
O
NAT
define
algumas
outras
tarefas
mais
complexas
que
devem
ser
realizadas
pelo
roteador
para
que
ele
funcione
corretamente,
entre
elas
(se
você
não
entender
alguns
ou
mesmo
todos
estes
itens
que
vem
a
seguir
não
se
preocupe,
eles
tratam
de
conceitos
que
exigem
conhecimentos
avançados
sobre
TCP/IP):
1.Os
pacotes
de
dados
TCP/IP
tem
um
campo
para
verificação
de
erro:
o
"checksum
IP".
Como
esse
campo
é
dependente
dos
dados
contidos
no
cabeçalho
do
pacote
de
dados
(que
inclui
os
endereços
IP
de
origem
e
destino)
ele
deve
então
ser
modificado
corretamente
pelo
roteador.
2.Como
vimos
no
exemplo
1,
o
roteador
com
NAT
deve
armazenar
a
informação
sobre
qual
servidor
na
Internet
os
computadores
locais
estão
acessando
para
poder
encaminhar
as
respostas
que
chegarem.
Porém
pode
haver
instantes
onde
duas
máquinas
da
rede
local
podem
estar
acessando
o
mesmo
servidor
na
Internet.
Nesse
caso,
não
basta
armazenar
os
endereços
IPs
das
máquinas
que
estão
sendo
acessadas,
deve-se
também
armazenar
o
"socket"
de
origem
de
cada
máquina
local
para
que
o
roteador
possa
encaminhar
corretamente
as
respostas.
3.A
solução
apresentada
no
item
anterior
também
tem
um
problema:
o
"socket"
de
origem
de
cada
máquina
é
definido
por
cada
uma
dessas
máquina
e
é
aleatório,
então
existe
a
possibilidade
de
duas
máquinas
na
rede
local
acessarem
o
mesmo
servidor
e
escolherem
o
mesmo
"socket"
de
origem.
Neste
caso
o
roteador
é
obrigado
a
modificar
também
o
"socket"
de
origem
em
uma
das
conexões,
manter
essa
informação
na
memória
e
modificar
o
"socket"
de
destino
da
resposta.
Repare
que
esse
procedimento
também
obriga
ao
roteador
trocar
o
"checksum"
do
IP
e
do
TCP.
4.Alguns
protocolos
como
o
ICMP,
protocolos
de
roteamento,
etc.
carregam
dentro
do
campo
de
dados
informações
sobre
o
endereço
da
máquina
de
origem.
O
roteador
com
NAT
deve
então
observar
esses
pacotes
e
modificar
essas
informações
adequadamente.
Como
cada
protocolo
utiliza
essa
informação
de
maneira
diferente
o
roteador
deve
ter
conhecimento
específicos
sobre
o
protocolo,
caso
contrário
o
protocolo
não
irá
funcionar.
Conclusão
Este
texto
trouxe
alguns
conceitos
básicos
sobre
o
NAT
e
mostrou
como
esses
conceitos
podem
ser
aplicados,
porém
o
NAT
possui
algumas
complicações
e
aplicações
a
mais
que
não
foram
abordadas
neste
texto.
Para
maiores
detalhes
recomendamos
a
leitura
do
RFC-1631
que
detalha
o
modo
de
operação
do
NAT.
Voltar
ao
topo
da
página