Introdução à Arquitetura TCP/IP

Propaganda
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
Download