Professional Documents
Culture Documents
O que o NAT
Tcnica que altera, em trnsito os endereos do cabealho dos datagramas IP
De forma a que a origem sob o ponto de vista do destinatrio no seja a real De forma a que o destino final seja uma mquina com endereo diferente do originalmente indicado pelo remetente
07-04-2011
ISEL/DEETC/SRT
Termos usados
NATBox Router com funcionalidades de NAT Inbound Sentido do trfego da Internet para rede atrs da NATBox Outbound Sentido do trfego da rede atrs da NATBox para a Internet Endereo pr-NAT Endereo antes de sofrer a converso imposta pelo processo de NAT Endereo ps-NAT Endereo resultante da aplicao do processo de NAT
07-04-2011
ISEL/DEETC/SRT
Porqu NAT
Motivao principal Escassez de endereos devido ao desperdcio de endereos na atribuio clssica por classes a cada entidade e do consumo desproporcional praticado por muitas entidades
A limitao de os ISPs fornecerem aos clientes residenciais apenas um endereo IP por ligao e os clientes terem hoje em dia muitos equipamentos com necessidade de conectividade
Mltiplos PCs/MACs, PDAs, Playstations, MediaCenters, telefones IP, etc
07-04-2011
ISEL/DEETC/SRT
Na compatibilizao de redes que necessitem de se juntar apesar de terem planos de endereamento sobrepostos
Double NAT
Permitir o acesso pblico a servios disponibilizados por mquinas com endereamento privado
Mapeamentos estticos de NAT
07-04-2011
ISEL/DEETC/SRT
07-04-2011
ISEL/DEETC/SRT
07-04-2011
ISEL/DEETC/SRT
07-04-2011
ISEL/DEETC/SRT
07-04-2011
ISEL/DEETC/SRT
07-04-2011
ISEL/DEETC/SRT
10
193.0.0.1
193.0.0.1:80->193.137.221.128:1025
IP Ext: 193.137.221.128
NAT Box
IP Int: 192.168.0.254/24
192.168.0.1
192.168.0.1:1024->192.0.0.1:80
192.168.0.2
192.168.0.2:1024->192.0.0.1:80
192.168.0.3
192.168.0.2:1025->193.0.0.1:80
NAT Translations Proto InsideIP:Port -> OutsideIP:Port => LocalPubIP:Port -> OutsideIP:Port Expires TCP 192.168.0.1:1024->192.0.0.1:80 => 193.137.221.128:1024->192.0.0.1:80 00:01:10 TCP 192.168.0.2:1024->192.0.0.1:80 => 193.137.221.128:5001->192.0.0.1:80 00:01:20 TCP 192.168.0.3:1025->193.0.0.1:80 => 193.137.221.128:1025->193.0.0.1:80 00:01:25
07-04-2011
ISEL/DEETC/SRT
11
07-04-2011
ISEL/DEETC/SRT
12
07-04-2011
ISEL/DEETC/SRT
13
Implementao de NAT
Campos dos cabealhos a alterar
Time To Live e Checksum J anteriormente eram ajustados como parte do processo de encaminhamento Endereos Origem e/ou Destino Segundo a aplicao de NAT pretendida Portos Origem e/ou Destino Dependendo da aplicao pretendida e da prpria gesto do sistema
Manter quando possvel, alterar para outro dentro da mesma gama quando necessrio (gamas no NAT Cisco IOS: 0-511, 512-1023 e 1024-65535)
Checksum TCP/UDP Sempre necessrio devido dependncia deste dos endereos origem/destino provocada pelo uso de pseudoheaders no clculo
07-04-2011
ISEL/DEETC/SRT
14
Pseudoheaders TCP/UDP
Source Address (from IP Header) Destination Address (from IP Header) Reserved 0 Protocol (from IP TCP Segment Length (computed) or UDP Length (from IP Header) Header) 8 16 24 TCP/UDP Pseudoheader
O recalculo do checksum realizado sobre o cabealho TCP/UDP, o pseudoheader respectivo e sobre os dados transportados
Impensvel para volumes de trfego elevados pela computao necessria e atraso provocado
07-04-2011 ISEL/DEETC/SRT 15
H que alterar a amostra da mensagem de erro, incluindo endereos, portos e checksums para que se mantenha a total transparncia
07-04-2011
ISEL/DEETC/SRT
16
Comunicaes entre clientes que partilham, a algum nvel dentro do domnio privado da rede, um equipamento realizando NAT
Algumas aplicaes resolvem o problema usando um servio de relay exterior para resolverem o problema Com srios problemas de escalabilidade (ex. MSN Messenger)
O funcionamento em vlvula do NAT impossibilita em muitos casos as comunicaes entre clientes atrs de NAT
X e Y podem fazer ligaes para fora das suas redes (distintas), mas no se conseguem ligar entre si
07-04-2011 ISEL/DEETC/SRT 17
As aplicaes usam tcnicas/protocolos adicionais para se aperceberem da existncia de NAT pelo meio, da forma como este est a ser realizado, de como as suas ligaes so vistas do exterior e manipula na origem os parmetros
No resolve o problema da abertura dos mapeamentos NAT para as ligaes adicionais Mapeamento para aceitar ligaes inbound conseguido custa de datagramas sem contedo (keepalives) enviados de dentro (comum para UDP/VoIP)
07-04-2011 ISEL/DEETC/SRT 18
07-04-2011
ISEL/DEETC/SRT
19
Terminologia comum
Symmetric, Port Restricted Cone, Address Restricted Cone, Full Cone
07-04-2011
ISEL/DEETC/SRT
20
07-04-2011
ISEL/DEETC/SRT
21
07-04-2011
ISEL/DEETC/SRT
22
07-04-2011
ISEL/DEETC/SRT
23
07-04-2011
ISEL/DEETC/SRT
24
Hairpin
definida como uma sesso de NAT com necessidades de Hairpin toda aquela que envolve dois equipamentos que partilham a algum nvel um equipamento realizando NAT
Se no for suportada esta tcnica, no possvel a comunicao directa entre equipamentos nesta situao A NAT Box tem de identificar a situao e realizar virtualmente o duplo processo NAT envolvido, como se se tratasse de dois equipamentos isolados realizando NAT Situao comum quando so encadeados mltiplos equipamentos realizando NAT dentro do domnio privado da rede e se recorre a servidores externos para rendez-vous (ex: Messengers, P2P, STUN/VoIP)
07-04-2011
ISEL/DEETC/SRT
25
Algoritmo STUN
07-04-2011
ISEL/DEETC/SRT
26
07-04-2011
ISEL/DEETC/SRT
27
07-04-2011
ISEL/DEETC/SRT
28
NAT vs DNS
Sem problemas de maior Tende a criar muitas entradas de contexto
Ajustar expirao para tempos razoveis (5s a 10s ?)
Em ambientes com servidores acessveis atravs de IPs internos e externos, via mapeamento estticos
Necessrio o uso de split views ou de modulo helper que ajuste os endereos dados aos clientes exterior
Quando perguntam ao DNS por XPTO.DOMINIO.PT (tipo A), os clientes internos obtm o IP interno, os externos obtm o Ps-NAT seja a diferena feita pelo servidor DNS ou por alterao do contedo das mensagens DNS na NATBox
07-04-2011
ISEL/DEETC/SRT
29
NAT vs SNMP
O SNMP funciona tipicamente sobre UDP com sequncias de pedidos/respostas Pormenores a ter em conta para a coexistncia com NAT
No existindo ligao (UDP) o contexto do pacote enviado mantido durante determinado tempo na tabela de NAT at expirar
Ajustar para um valor consistente com os tempos espectveis entre pedidos e respostas e pedidos seguintes para evitar rejeies indesejadas de respostas e o enchimento da tabela de mapeamento
Para aceitar TRAPs (alarmes assncronos do agente) h que criar um mapeamento esttico aceitando o trfego de volta para o gestor, sendo assim, na maioria dos casos incompatvel esta componente com o uso de mltiplos gestores Como os pedidos chegaro aos agentes com o endereo origem ps-NAT, estes tero de ter includo este endereo na lista de gestores autorizados, com o aspecto negativo adicional de esta permisso ser partilhada com todas as mquinas que reutilizem o endereo ps-NAT
07-04-2011 ISEL/DEETC/SRT 30
NAT vs FTP
FTP modo Activo s suportado com o uso de um mdulo especializado (fixup) na NATBox para alterar o endereo e porto enviados no comando PORT, abrindo em simultneo o canal/mapeamento para a ligao de dados iniciada pelo servidor FTP modo Passivo mais fcil de suportar, no necessita de fixup na NATBox porque ambas as ligaes (controlo e dados) so iniciadas pelo cliente
Se o fixup for dispensado, para funcionar tem de se aceitar ligaes outbound de e para qualquer porto TCP acima de 1024 (inclusive) o que pode implicar abrir acesso a muitas outras aplicaes indesejadas Complica-se quando o servidor que est atrs de NAT
07-04-2011 ISEL/DEETC/SRT 31
07-04-2011
ISEL/DEETC/SRT
32
07-04-2011
ISEL/DEETC/SRT
33
07-04-2011
ISEL/DEETC/SRT
34
O facto do protocolo correr na maioria dos casos sobre UDP facilita o atravessamento de NAT Para coexistncia pacifica os clientes usam STUN para detectar se tm e que forma tm de NAT entre eles e o servidor de referncia
07-04-2011 ISEL/DEETC/SRT 35
NAT vs IPsec
Pouco compatveis devido a dependncias diversas
As NATBox no conseguem actualizar os checksums do UDP/TCP
Esto cifrados dentro do envelope ESP (modo transporte)
O porto de IKE (500) usado por algumas implementaes no pode ser alterado
Algumas implementaes descartam estas mensagens se o porto origem no for o standard
07-04-2011
ISEL/DEETC/SRT
37
NAT vs IPsec
Recentemente definido um modo (NAT-T)
Transporta o ESP sobre UDP Flexibiliza regras (ex. portos vlidos) Cabealho IKE modificado para evitar incompatibilidade O protocolo inclui a deteco de NAT no percurso para coexistncia Menos eficiente j que o overhead cresce substancialmente O modo tunnel foi adaptado para ser possvel a multiplexagem de diversas ligaes sobre NAT
07-04-2011
ISEL/DEETC/SRT
38
NAT vs eDonkey2000
Liga-se a um servidor de rendez-vous por TCP ou UDP Por questes de fairness, o sistema limita em muito as funcionalidades disponibilizadas a clientes aos quais no consegue ligar de volta (para o porto indicado pelo cliente) - (LowID!)
Tenta promover a simetria produtor/consumidor em cada utilizador para evitar o desequilbrio que limita a escalabilidade do protocolo Necessrio fixup na NATBox (no h presso dos grandes compradores de equipamentos para que seja suportado!) para abertura automtica do porto para recepo das ligaes dos outros clientes
Usar mapeamento esttico de portos para encaminhar os pedidos para a mquina interna
Para suporte de mltiplos clientes internos h que usar um porto diferente de entrada para cada com os respectivos mapeamentos estticos de NAT
07-04-2011 ISEL/DEETC/SRT 39
NAT vs BitTorrent
Idntico ao anterior com a diferena de se complicar o mapeamento de portos pois utiliza uma gama deles (default 6881-6889) por aplicao/mquina.
Ilustrao das ligaes TCP possveis quando existe NAT (caixa azul) do lado dos clientes. As ligaes a vermelho no conseguem estabelecer-se, as a verde conseguem
Situaes sem e com mapeamento esttico de portos no sentido inbound
07-04-2011 ISEL/DEETC/SRT 40
Referncias
Operating Principles and General Behavioral Requirements for Network Address Translators (BEH-GEN)
B. Ford - M.I.T., P. Srisuresh - Caymas Systems, S. Sivakumar - Cisco Systems - May 2005
Cisco - NAT Frequently Asked Questions, Document ID: 26704 NAT Classification Test Results
C. Jennings - Cisco Systems - July 16, 2005
http://www.faqs.org/rfcs/rfc1631.html http://www.faqs.org/rfcs/rfc2663.html http://www.ietf.org/rfc/rfc2993.txt http://www.networksorcery.com/enp/rfc/rfc3489.txt http://www.networksorcery.com/enp/protocol/stun.htm http://www.cisco.com/warp/public/556/5.html http://www.cisco.com/en/US/tech/tk648/tk361/tk438/tsd_technology_support_sub-protocol_home.html http://en.wikipedia.org/wiki/Network_address_translation http://en.wikipedia.org/wiki/STUN http://tools.ietf.org/html/rfc3489 http://slacksite.com/other/ftp.html http://www.ncftp.com/ncftpd/doc/misc/ftp_and_firewalls.html http://www.microsoft.com/technet/community/columns/cableguy/cg0802.mspx http://www.kazaa.com/us/help/glossary/p2p.htm http://userpages.umbc.edu/~hamilton/btclientconfig.html http://www.voip-info.org/wiki/view/NAT+and+VOIP http://www.voip-info.org/wiki-Asterisk+SIP+NAT+solutions http://www.snom.com/whitepapers/FAQ-03-10-20-cs.pdf
07-04-2011
ISEL/DEETC/SRT
41