Arquitetura TCP/IP Parte VIII – Interconexão de redes privadas (NAT, VPN) Fabrízzio Alphonsus A. M. N. Soares Tópicos ● ● ● Definições VPN (Virtual Private Network) NAT (Network Address Translation) – Tabela de tradução Definições ● ● Uma inter-rede (internet) é privada para um grupo se seus recursos (sobretudo, roteadores e enlaces) e tráfego não é acessível a outros grupos – Implementação típica envolve enlaces próprios (ou arrendados) para interligar os roteadores – É também conhecida como Intranet, embora esse termo também seja usado para redes menores A Internet global é pública porque seus recursos são compartilhados entre todos Arquitetura híbrida ● ● Parte do tráfego está infraestrutura privada restrito à Parte do tráfego flui através da Internet global Redes privada e pública ● Inter-rede privada é cara ● Internet pública é barata ● Objetivo: combinar a segurança de uma rede privada com o baixo custo da Internet global – Pergunta: como uma organização que usa a Internet global para conectar seus sites mantém seus dados privados? – Resposta: Virtual Private Network (VPN) Virtual Private Network (VPN) ● ● Conecta todos os sites (de uma organização) através da Internet global Protege os dados enquanto eles passam de um site para outro, usando – Criptografia – Encapsulamento IP-em-IP Exemplos de VPN ● VPN com endereços IP privados Endereços privados na Internet pública ● ● Problema: vários equipamentos com endereços IP privados, porém o site tem apenas um (ou poucos) endereços IP públicos (ex.: pequeno ISP) Duas abordagens: – Gateway de aplicação (em geral, um para cada serviço) ● – Exemplo: proxy web Network Address Translation (NAT) Network Address Translation (NAT) ● Economia de endereços IP públicos ● Solução no nível IP ● Transparente para ambas extremidades ● Implementação – Geralmente em software – Normalmente instalado em um roteador – Hardware especializado é usado para obter maior velocidade Operação ● ● ● Substitui o endereço IP de origem no pacote que sai (do site) Substitui o endereço IP de destino no pacote que entra (no site) Também manipula protocolos de camadas superiores, por exemplo – Transporte: pseudo cabeçalho para TCP e UDP – Aplicação: conexão de dados do FTP Tabela de tradução ● ● ● Cada entrada na tabela específica uma extremidade local (privada) e outra global Modelo típico – Cada entrada é criada dinamicamente por um pacote ao sair do site – Cada entrada serve para fazer o mapeamento reverso de endereço para pacotes entrando no site Variante mais comum de NAT usa portas de protocolo (de transporte) na composição do índice da tabela – NAPT (Network Address Port Translation) Tabela de tradução – exemplo IP privado Porta IP público Porta Porta NAT Protocolo 10.0.0.10 1030 200.0.50.25 80 1501 TCP 10.0.0.11 1030 100.0.10.15 25 1520 TCP 10.0.0.11 1031 50.10.15.20 23 1510 TCP 10.0.1.12 1050 30.15.5.10 80 1515 TCP 10.0.1.12 1051 30.15.5.10 80 1517 TCP Exemplo de um pacote saindo por NAT com o IP público 100.0.0.1: Dados 1030 80 ... 10.0.0.10 200.0.50.25 NAT Dados 1501 80 ... 100.0.0.1 200.0.50.25 NAT e protocolos de camadas superiores ● NAT necessita – – – – – ● Mudar cabeçalhos IP Mudar cabeçalho TCP e UDP ● Recalcular checksum Mudar cabeçalho ICMP (ex.: ICMP Echo Request/Redirect) Identificar as mensagens ICMP (ex.: ICMP Redirect não deve ser repassada, mas ICMP Host unreachable deve) Traduzir números de porta em uma sessão FTP Ou seja, NAT afeta TCP, UDP, ICMP e outros protocolos de nível superior – Com exceção de umas poucas aplicações (como o FTP), se houver o envio de endereço IP ou porta de transporte como dados da aplicação, a mesma não funcionará adequadamente através do NAT