Introdução à Arquitetura TCP/IP Rubens Queiroz de Almeida queiroz@gnus.com.br contato@gnus.com.br
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 queiroz@gnus.com.br http://www.gnus.com.br