Introdução à Arquitetura TCP/IP Rubens Queiroz de Almeida [email protected] [email protected] Histórico ● Criado pelo DARPA em meados de 1970 ● Surgimento da ARPANET e MILNET ● Integração ao Unix/BSD ● Surgimento da NFSNET ● Comitê Organizador – IAB (Internet Activities Board) ● Documentação – RFCs e IENs ● SRI – NIC OSI ● ● ● ● ● Open Systems Interconnection Desenvolvido pela ISO (International Organization for Standardization) Sete camadas Modelo teórico entregue muito tarde! TCP/IP é o padrão de fato O Modelo de Sete Camadas Aplicação Apresentação Seção Transporte Network Enlace de Dados Física Modelo de Camadas Fluxo de Mensagens Fluxo de Mensagens Encapsulamento TCP/IP Endereçamento IP Endereçamento IP ● Endereços distribuídos pelo SRI-NIC ● Representados em notação decimal ● Intervalo de 0.0.0.0 a 255.255.255.255 ● [End. IP]=[n° Rede] + [n° Computador] ● Número IP: ● Atribuído pelo Internic Número computador ● ● Atribuído localmente, pelo administrador de redes Classes de Redes IP Classes de Redes IP Endereços Especiais Todos 0s: Este computador nesta rede ● ● 0.0.0.0 Todos 1s: Todas as redes ou todos os computadores ● ● 255.255.255.255 Loopback: processamento de dados no sistema local ● ● 127.0.0.1 Classes IP Reservadas ● Parte do espaço de endereçamento reservada para uso interno, sem conectividade direta com a internet global ● 10.0.0.0 ● 172.16 a 172.31 (16 classes B) ● 192.168.0 a 192.168.255 (256 classes C contíguas) Network Address Translation O que é NAT? Programas ou hardware que convertem o endereço IP de um endereço privado para um endereço público em tempo real. ● Permite que diversos usuários compartilhem um único endereço IP público. ● Aumenta a segurança pois cada pacote que sai ou entra precisa passar por um processo de tradução, que também possibilita a oportunidade de se qualificar ou autenticar pedidos feitos ● ● ● PROBLEMA: lentidão e limitação no número de conexões O que é NAT? Reduz o número de endereços necessários para que uma empresa se conecte plenamente à Internet, pois tudo que é necessário é um único endereço global para conectividade plena ● Exemplos de uso: ● ● Redes residenciais ● Corporações em geral ● Balanceamento de tráfego ● Segurança através da filtragem de pacotes IPTables Criar uma regra antes do roteamento (-A PREROUTING), para a tabela NAT (-t nat), especificando que pacotes TCP (-p tcp) com destino à 1.2.3.4 (-d 1.2.3.4), porta 80, tenham seu destino mapeado (-j DNAT) para 192.168.1.1, porta 80: iptables ­A PREROUTING ­t nat ­p tcp ­d 1.2.3.4 \ ­­dport 8080 ­j DNAT ­­to 192.168.1.1:80 Subnetting Subnetting ● ● ● ● ● ● ● Permitem a configuração de redes de complexidade variada dentro de uma organização Isolam a Internet global do crescimento dos números de rede internos A rede local se apresenta ao restante da internet como uma única rede Roteamento simplificado A parte do host é particionada entre o número da subnet e o número do computador A máscara de subrede indica quais bits são a subrede e quais bits são o host Os roteadores locais fazem o roteamento dentro da rede subdividida. Tipos de subredes Estáticas – máscara fixa ● ● Fácil de se implementar e manter ● Desperdício de endereços Variáveis – máscara variável (Variable Lenght Subnetting) ● ● Roteadores com suporte a máscaras variáveis Subnetting Equação Genérica Equação Genérica: ● Número de máquinas/subredes na rede ● ● 2 ** n-2 onde n é igual ao número de bits para subnet ou número de bits de máquina Máscaras e Subnetting Dado o endereço IP 143.106.1.45 e a máscara 255.255.0.0 ● ● Endereço de rede: 143.106.0.0 ● Broadcast: 143.106.255.255 Dada o endereço IP 143.106.1.45 e a máscara 255.255.255.192: ● ● Endereço de rede: 143.106.1.0 ● Broadcast: 143.106.20.63 Subnetting Exemplos Máscaras e Subnetting Classe B Subredes/Computadores Classe C Subredes/Computadores CIDR Classless Internet Domain Routing Classless Internet Domain Routing Desenvolvido nos anos 90 como um esquema padrão para roteamento IP ● Antes da existência do CIDR os roteadores gerenciavam o tráfico IP baseando-se exclusivamente nas classes IP e subredes associadas ● Routing table explosion problem ● ● ● ● ● Uma rede Classe B de 3000 computadores requer apenas uma rota, ao passo que se a mesma rede fosse representada como uma faixa de classes C seriam necessárias 16 rotas. Utilização ineficiente do espaço de endereçamento Permite uma forma mais flexível de associar grupos de endereços IP sem se prender ao sistema de classes original Também conhecido como “supernetting” Exemplo ● ● ● Aplicando-se a máscara 255.255.0.0 ao endereço 195.4.0.0 criamos, efetivamente, uma rede tão grande quanto uma classe B pela agregação de múltiplas classes C. Esta rede compreende os endereços 195.4.0.0 até 195.4.255.255. O uso de máscaras de bits para criar redes maiores do que sua máscara natural se chama supernetting. O uso de uma máscara para determinar o endereço de destino de uma rede ao invés do endereço de classe se chama CIDR. Roteamento ● ● Requer modificações nos roteadores e protocolos de roteamento Os protocolos precisam propagar, junto com os endereços de destino, máscaras de endereçamento que definem como os endereços devem ser interpretados. Exemplo de Funcionamento Pela política CIDR, o mundo foi dividido em quatro zonas, a saber: ● ● Endereços 194.0.0.0 a 195.255.255.255 - Europa ● Endereços 198.0.0.0 a 199.255.255.255 - América do Norte ● Endereços 200.0.0.0 a 201.255.255.255 - América do Sol ● Endereços 202.0.0.0 a 203.255.255.255 - Ásia e Pacífico CIDR O protocolo IP tem sido largamente utilizado por mais de uma década. Apesar de estar funcionando muito bem, dois problemas surgiram: ● ● ● ● a exaustão dos endereços IP ● explosão das tabelas de roteamento CIDR: alocar o restante das redes classe C em blocos de tamanho variável. Exemplo, se uma organização precisa de 2000 endereços, é destinada a ela 2048 endereços (oito redes classe C contíguas) e não uma rede classe B inteira (65536 endereços). CIDR: Notação ● Uma faixa de endereços IP é especificada através da combinação de um endereço IP e sua máscara de rede associada: xxx.xxx.xxx.xxx/nO Onde n é o número de bits ligados (valor 1) na máscara. ● Exemplo a notação 192.168.12.0/23 aplica a máscara de rede 255.255.254.0 à rede 192.168 começando em 192.168.12.0. Esta notação representa a faixa de endereços compreendida entre 192.168.12.0 e 192.168.13.255. Comparativamente ao endereçamento tradicional, 192.168.12.0/23 representa uma agregação de duas classes C, 192.168.12.0 e 192.168.13.0, cada uma delas usando a máscara default 255.255.255.0. Referências ● ● ● ● ● RFC 1467 - Status of CIDR Deployment in the Internet RFC 1517 - Applicability Statement for the Implementation of Classless Inter-Domain Routing (CIDR) RFC 1518 - An Architecture for IP Address Allocation with CIDR RFC 1519 - Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy RFC 1520 - Exchanging Routing Information Across Provider Boundaries in the CIDR Environment Roteamento IP Endereços Ethernet Endereço único no mundo, estabelecido pelo IEEE ● ● 6 bytes ● Codificado por hardware ● Ex. 00-00-1D-00-26-A3 ● 00-00-1D: identifica o fabricante ● 00-26-A3: identifica o número de série netstat -nr Autonomous System ● ● Conjunto de redes com a mesma política e protocolo de roteamento Normalmente pertencem a uma mesma entidade administrativa Autonomous Systems Protocolos de Roteamento Exteriores (EGP: Exterior Gateway Protocol) ● Protocolos de roteamento exteriores são usados para trocar informações de roteamento entre sistemas autônomos. A informação trocada entre os sistemas é chamada de informação de alcance (reachability information). Esta informação consiste em dados que indicam quais redes podem ser alcançadas através de um determinado sistema autônomo. ● Exemplo: ● BGP: Border Gateway Protocol ● Interiores (EGP: Interior Gateway Protocol) ● ● ● Protocolos de roteamento interiores são aqueles usados dentro de uma rede independente. Exemplo: ● RIP: Routing Information Protocol Anúncios Anúncios Broadcast Unicast Modo de comunicação entre um único remetente e um único destinatário Multicast Modo de comunicação entre um único remetente e vários destinatários Interconexão de Redes Elementos de Interconexão e o Modelo OSI Repetidores ● ● ● ● Nível 1 camada OSI Estende um segmento de rede Regenera os sinais recebidos Máximo dois repetidores (4 em IRLs) Bridges ● Nível 2 camada OSI ● Armazena os frames ● ● ● Analisa o endereço de destino Transmite apenas se necessário Transparente a protocolo de rede Lan Switching Switch É uma tecnologia de rede que simula uma LAN segmentada em diversos domínios de colisão pequenos. ● Oferecem: ● ● ● Densidade de portas maior que a oferecida por bridges a um custo menor Podem acomodar menos usuários por segmento, aumentando a largura de banda disponível por usuário (microsegmentação) ● Melhor performance ● Fácil configuração Switch Características ● ● Opera na camada 2 ● Faz controle de fluxo ● Trata erros independentemente de protocolo ● Suporta protocolos não roteáveis ● Lida com endereçamento físico ● ● ● O tratamento do pacote é feito pelo hardware, com maior rapidez Reduz colisões pois oferece banda dedicada a cada segmento Propaga broadcasts Lan Switches e o Modelo OSI ● LAN switches podem ser classificados de acordo com a camada OSI em que atuam: ● Camada 2 ● Camada 2 com características da camada 3 ● Multicamadas (multilayer) Switches Layer 2 ● Operacionalmente semelhante a uma bridge ● Maior capacidade ● Operação full-duplex ● Transparente aos protocolos de rede ● Opera na camada 2 (endereços MAC) Switches Layer 2 com características da camada 3 ● ● Decisões de chaveamento (switching) baseadas em mais informações que aquelas oferecidas pela camada 2 (endereços físicos). Incorporam alguma caracterísiticas de controle de tráfego da camada 3: ● Broacdast ● Multicast ● Segurança por meio de listas de acesso ● Fragmentação de pacotes IP Switches Multicamadas ● ● Toma decisões de chaveamento e filtragem baseando-se em informações das camadas 2 e 3. Decide dinamicamente se deve chavear (camada 2) ou rotear (camada 3) Roteadores ● ● ● Nível 3 camada OSI Recebe somente frames a ele endereçados Toma decisão baseado no endereço de rede do pacote Família de Protocolos TCP/IP Protocolos da Família TCP/IP tcpdump Ferramenta para captura e análise de tráfego de rede ● Exemplos: ● ● tcpdump ● tcpdump -i eth0 ● tcpdump -i eth0 [ip|tcp|udp|icmp|arp|rarp] ● tcpdump -i eth0 dst port 23 ● tcpdump -i eth0 src port 23 Internet Protocol IP ● ● ● ● ● Não confiável: entrega não garantida, sem controle de sequenciamento, não detecta erros nem informa ao transmissor Connectionless: cada pacote é tratado independentemente dos outros Bem intencionado: os pacotes só são descartados quando todos os recursos são exauridos Unidade básica: datagrama, que é quebrado em fragmentos para se adequar ao MTU do hardware RFC 791 Cabeçalho IP TTL: Time To Live ● ● Campo que indica que após determinado tempo o datagrama pode ser descartado Cada gateway decrementa 1 ao recebê-lo ou a cada segundo ● TTL=0: datagrama é descartado ● Traceroute UDP e TCP UDP: User Datagram Protocol ● ● DNS, SNMP, NFS, TFTP, BOOTP ● Não estabelece conexão (connectionless) TCP: Transmission Control Protocol ● ● ● HTTP, SMTP, POP3, IMAP ● Estabelece conexão (connection oriented) Nível de Transporte (sobre a camada IP) TCP ● Transmission Control Protocol ● Transferência de dados contínua (stream) ● Confiável ● Controle de fluxo: janelas deslizantes, temporização ● Multiplexação: uso de portas de protocolo ● Conexões lógicas ● Full duplex Cabeçalho TCP Estabelecimento de Conexões B A SYN (A) (B) N Y 1) S + A ( ACK ACK (B + 1) Controle de Fluxo Janelas Deslizantes Cabeçalho UDP Demultiplexação Processo 1 Processo 2 Processo n ...... Porta A Porta B ...... Porta n UDP: Demultiplexação de Portas IP ICMP ● ● ● ● Internet Control Message Protocol Permite que gateways enviem mensagens de erro ou de controle para outros gateways ou máquinas Provê comunicação entre o protocolo Internet em uma máquina e em outra Muitas vezes não ajuda a localizar onde está o erro, pois ele responde apenas à máquina que originou o pacote errôneo e o erro pode estar em algum gateway no caminho ● Pode ser perdido como qualquer pacote IP ● Ping: pacote ICMP do tipo “echo request” e “echo reply” ● RFC 777 ICMP Controle de fluxo ● ● Quando os datagramas chegam muito rápido para serem processados, o computador de destino ou um gateway intermediário envia um pacote do tipo “ICMP Source Quench” para o remetente, para que cesse as transmissões temporariamente. Identificar destinos não alcançáveis ● ● Quando não se consegue alcançar um destino, o sistema que detecta o erro envia um pacote do tipo “Destination Unreachable” ao remetente do pacote. Este destino pode ser um computador ou então uma porta, que não se consegue alcançar. Redirecionamento de rotas ● ● Uma mensagem do tipo “ICMP Redirect” para informar um roteador de rotas alternativas supostamente mais eficazes. Verificação de hosts remotos ● ● Envio de pacotes do tipo “ICMP Echo Request” para verificar se sistemas remotos estão operacionais. ICMP - Traceroute Determinação da rota que datagramas IP seguem de um computador para outro ● ● Baseado sobre os protocolos UDP e ICMP ● Modificação do campo TTL ● Pontos intermediários: ● ICMP Time Exceeded Destino: ● ● ICMP Port Unreachable Aplicações de Rede ● ● ● Processos Clientes e Servidores Servidores estão sempre ativos aguardando conexões Clientes são criados assincronamente, conforme a necessidade Portas ● ● ● Cada processo que deseja se comunicar com outro se identifica aos protocolos TCP/IP por meio de uma ou mais portas Portas são números de 16 bits para identificar a qual aplicação ou protocolo de alto nível as mensagens devem ser entregues Dois tipos: bem conhecidas (well known) e efêmeras Sockets Tipo especial de arquivo utilizado para solicitar serviços de rede do sistema operacional ● Exemplo: ● ● [prot:end. Local:proc. Local] ● TCP/IP: [tcp:143.106.20.10:12345] Associação: ● ● ● [tcp:143.106.20.10:12345:200.200.20.1:25] Dois processos se comunicam através de sockets TCP netstat ● Exibe conexões de rede ● Tabelas de roteamento ● Estatísticas das interfaces de rede ● Conexões mascaradas netstat -s netstat -a netstat -an Configuração de Aplicações TCP/IP ● Porta destino: Well known ports ● Porta origem: alocação dinâmica ● Arquivos ● /etc/services ● /etc/inetd.conf ARP ● Address Resolution Protocol ● Envia Requisição Broadcast ● Obtém endereço físico de B, F(B) ● Guarda F(B) em cache ● Envia mensagem para F(B) ARP RARP ● ● ● ● ● ● Reverse Address Resolution Protocol Máquinas diskless precisam saber seu número IP Servidores RARP possuem banco de dados com mapeamento IP x Ethernet Enviam requisição broadcast Recebe endereço IP fornecido por um servidor RARP Armazena em memória até o próximo reboot /etc/services /etc/inetd.conf IPv6 IPv6 Projeto iniciado no começo dos anos 90 ● Maior preocupação: endereçamento ● ● ● ● Endereços de 128 bits (IPv4: 32 bits) 6*1023 endereços por metro quadrado da superfície terrestre Delimitadores de endereços passam a ser “:” Migração Ipv4 -> IPv6 Operação complexa e demorada ● ● ● Pode demorar dezenas de anos Ilhas IPv6 isoladas ● ● ● Grande investimento em equipamento preparado para IPv4 Comunicação por túneis Eventualmente estas ilhas se tornarão maiores e se fundirão Contato Rubens Queiroz de Almeida [email protected] http://www.gnus.com.br