90
Introdução à Arquitetura TCP/IP Rubens Queiroz de Almeida [email protected] [email protected]

[email protected] - idph.net · OSI Open Systems Interconnection Desenvolvido pela ISO (International Organization for Standardization) Sete camadas Modelo teórico entregue muito

Embed Size (px)

Citation preview

Introduçãoà

ArquiteturaTCP/IP

Rubens Queiroz de [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

Física

Enlace de Dados

Network

Transporte

Seção

Apresentação

Aplicação

Modelo de Camadas

Fluxo de Mensagens

Fluxo de Mensagens

Encapsulamento TCP/IP

EndereçamentoIP

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)

NetworkAddress

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

SubnettingEquaçã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 eSubnetting

● 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

SubnettingExemplos

Máscaras e Subnetting

Classe BSubredes/Computadores

Classe CSubredes/Computadores

CIDRClasslessInternetDomainRouting

● 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”

Classless Internet Domain Routing

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).

● 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/nOOnde n é o número de bits ligados (valor 1) na máscara.

● Exemploa 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.

CIDR: Notação

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

RoteamentoIP

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ãode

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 deProtocolos

TCP/IP

Protocolos da FamíliaTCP/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 ProtocolIP

● 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 deConexões

BA

SYN(A)

ACK(A+1) SYN(B)

ACK(B + 1)

Controle de FluxoJanelas 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● Grande investimento em equipamento

preparado para IPv4● Pode demorar dezenas de anos

● Ilhas IPv6 isoladas● Comunicação por túneis

● Eventualmente estas ilhas se tornarão maiores e se fundirão

ContatoRubens Queiroz de Almeida

[email protected]://www.gnus.com.br