Fundamentos de Protocolos de Internet - TCP/IP, Portas, IPv4/IPv6

Fundamentos de Protocolos de Internet - TCP/IP, Portas, IPv4/IPv6

O Que Voce Vai Conquistar

  • Explicar cada camada do modelo de quatro camadas TCP/IP e seu papel
  • Dividir um endereco IPv4 em partes de rede e host e expressa-lo com mascara de sub-rede / CIDR
  • Identificar faixas de enderecos privados e enderecos de broadcast
  • Aplicar corretamente a notacao hexadecimal com dois-pontos do IPv6 e regras de abreviacao
  • Consultar portas conhecidas em /etc/services
  • Escolher entre TCP (orientado a conexao) e UDP (sem conexao)

Este e o nucleo do objetivo 109.1 do LPIC-1 "Fundamentos de protocolos de internet". Uma vez que voce dominar o calculo de enderecos e a divisao de papeis entre protocolos, tera uma base solida para configuracao e solucao de problemas de rede.

Quais Camadas o TCP/IP Usa?

O TCP/IP divide seu trabalho em quatro camadas. Camadas inferiores transportam camadas superiores em uma estrutura chamada encapsulamento, e cada camada se comunica apenas com suas vizinhas.

Camada Nome Papel Protocolos representativos
4 Aplicacao Representacao e troca de dados entre aplicacoes HTTP, SSH, DNS, SMTP, FTP, DHCP
3 Transporte Controle de comunicacao ponta a ponta TCP, UDP
2 Internet Roteamento e enderecamento entre hosts IP, ICMP
1 Enlace (interface de rede) Transmissao dentro de uma rede fisica Ethernet, ARP

Frequentemente e comparado com o modelo de referencia OSI de sete camadas, mas para o LPIC-1 e suficiente entender os papeis usando o modelo de quatro camadas TCP/IP. O ponto chave e que um numero de porta (camada de transporte) e um endereco IP (camada de internet) juntos identificam o par de comunicacao.

A RFC 1122 (Requirements for Internet Hosts) define este modelo como as camadas de enlace, internet, transporte e aplicacao. Ajuda lembrar que os limites das camadas sao divididos por numeros de porta (camada de transporte) e enderecos IP (camada de internet).

Como Ler um Endereco IPv4?

Um endereco IPv4 divide 32 bits em quatro grupos de 8 bits e escreve cada grupo como um numero decimal (notacao decimal com pontos). Cada octeto varia de 0 a 255.

O endereco e dividido em uma "parte de rede" e uma "parte de host", e a mascara de sub-rede marca esse limite.

ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::5054:ff:fe12:3456/64 scope link

O /24 em inet 192.168.1.10/24 e o comprimento da mascara de sub-rede (notacao CIDR). /24 significa que os 24 bits iniciais sao a parte de rede e os 8 bits restantes sao a parte de host. brd 192.168.1.255 e o endereco de broadcast.

Mapeamento de Mascara de Sub-rede e CIDR

Uma mascara de sub-rede e um valor de 32 bits com os bits da parte de rede definidos como 1 e os bits da parte de host definidos como 0. A notacao CIDR (/n) indica a quantidade de 1s consecutivos iniciais.

CIDR Mascara de sub-rede Bits de host Hosts utilizaveis
/8 255.0.0.0 24 16.777.214
/16 255.255.0.0 16 65.534
/24 255.255.255.0 8 254
/30 255.255.255.252 2 2

Hosts utilizaveis e "2 elevado a potencia dos bits de host, menos 2". Os dois subtraidos sao o "endereco de rede" (todos os bits de host em 0) e o "endereco de broadcast" (todos os bits de host em 1); nenhum pode ser atribuido a um host individual.

Faixas de Enderecos Privados

Separados dos enderecos globalmente unicos na internet, a RFC 1918 reserva faixas que organizacoes podem usar livremente em redes internas.

Faixa CIDR Equivalente de classe
10.0.0.0 a 10.255.255.255 10.0.0.0/8 Classe A
172.16.0.0 a 172.31.255.255 172.16.0.0/12 Classe B
192.168.0.0 a 192.168.255.255 192.168.0.0/16 Classe C

Note que 172.16.0.0/12 cobre de 172.16 ate 172.31 e nao inclui 172.32. O exame frequentemente testa os limites dessa faixa.

127.0.0.0/8 (especialmente 127.0.0.1) e o endereco de loopback IPv4 que aponta para o host local. E uma faixa reservada separada dos enderecos privados.

Notacao e Regras de Abreviacao do IPv6

Um endereco IPv6 tem 128 bits. Ele e dividido em oito blocos de 16 bits, cada um escrito em hexadecimal e separado por dois-pontos (notacao hexadecimal com dois-pontos).

2001:0db8:0000:0000:0000:ff00:0042:8329

Como isso e longo, existem duas regras de abreviacao.

  1. Zeros a esquerda em cada bloco podem ser removidos (0db8 para db8, 0000 para 0)
  2. Uma sequencia de blocos consecutivos totalmente zerados pode ser substituida por ::, apenas uma vez

O endereco acima e abreviado para:

2001:db8::ff00:42:8329

Enderecos IPv6 Importantes

Endereco / faixa Significado
::1 Endereco de loopback (equivalente ao IPv4 127.0.0.1)
:: Endereco nao especificado (todos os bits em 0)
fe80::/10 Endereco link-local (valido apenas no mesmo enlace)
ff00::/8 Endereco multicast

Um endereco link-local que comeca com fe80:: nao cruza roteadores e e valido apenas dentro do mesmo segmento. Na saida do ip addr isso e mostrado como scope link.

Como as Portas Se Relacionam com /etc/services?

Enquanto um endereco IP identifica um host, um numero de porta identifica qual aplicacao naquele host. E um numero de 16 bits (0 a 65535) e e dividido em tres faixas de uso.

Categoria Faixa Uso
Portas conhecidas 0 a 1023 Servicos principais (requerem privilegios root)
Portas registradas 1024 a 49151 Apps registradas na IANA
Portas dinamicas / privadas 49152 a 65535 Portas de origem temporarias do lado cliente

O mapeamento entre nomes de servicos e numeros de porta e definido em /etc/services.

grep -E '^(ssh|http|https|domain|smtp|ftp) ' /etc/services
ftp             21/tcp
ssh             22/tcp
smtp            25/tcp
domain          53/tcp
domain          53/udp
http            80/tcp
https           443/tcp

Cada linha tem o formato "nome-do-servico porta/protocolo". Alguns servicos, como domain (DNS), tem entradas tanto para TCP quanto para UDP.

Protocolos e Numeros de Porta Importantes

Protocolo Porta Transporte Papel
FTP 21 (controle) / 20 (dados) TCP Transferencia de arquivos
SSH 22 TCP Login remoto criptografado
SMTP 25 TCP Envio de email
DNS 53 UDP / TCP Resolucao de nomes
DHCP 67 (servidor) / 68 (cliente) UDP Atribuicao automatica de endereco IP
HTTP 80 TCP Comunicacao web
HTTPS 443 TCP Comunicacao web criptografada

O DNS normalmente usa UDP 53 e muda para TCP 53 quando a resposta e grande (como uma transferencia de zona). O ponto de que "DNS usa tanto UDP quanto TCP" e frequentemente testado.

Como TCP e UDP Diferem?

Os protocolos da camada de transporte TCP e UDP sao escolhidos com base em um trade-off entre confiabilidade e velocidade.

Aspecto TCP UDP
Conexao Orientado a conexao Sem conexao
Confiabilidade Retransmissao e ordenacao garantidas Sem garantia
Overhead Maior Menor
Uso HTTP, SSH, SMTP, FTP DNS, DHCP, streaming

O TCP estabelece uma conexao no inicio com um "three-way handshake".

  1. Cliente para servidor: SYN (solicitacao de conexao)
  2. Servidor para cliente: SYN/ACK (solicitacao aceita mais resposta)
  3. Cliente para servidor: ACK (confirmacao)

A transferencia de dados comeca apenas apos esses tres passos, garantindo entrega e ordenacao de pacotes. O UDP, por outro lado, nao realiza handshake e envia dados imediatamente. Sem confirmacoes, tem baixa latencia mas nao detecta perda de pacotes.

Voce pode verificar as portas em escuta atuais com ss.

ss -tlnp
State    Recv-Q   Send-Q     Local Address:Port      Peer Address:Port
LISTEN   0        128              0.0.0.0:22             0.0.0.0:*
LISTEN   0        128              0.0.0.0:80             0.0.0.0:*

-t e TCP, -l e estado de escuta (LISTEN), -n e saida numerica e -p mostra processos. Para ver UDP, troque -t por -u.

O ICMP (Internet Control Message Protocol) e um protocolo da camada de internet e nao tem numeros de porta como TCP/UDP. Ele transporta mensagens de erro e controle usadas pelo ping para verificacao de alcancabilidade e pelo traceroute para descoberta de caminho.

Erros Comuns e Correcoes

Erro 1: Contar hosts utilizaveis como "2 elevado a potencia dos bits de host"

Esquecer de subtrair os dois enderecos: o endereco de rede (todos 0s) e o endereco de broadcast (todos 1s). Para /24 a resposta e 254, nao 256. Sempre aplique "2 elevado a potencia dos bits de host, menos 2".

Erro 2: Confundir os papeis de TCP e UDP

O principio e "precisa de confiabilidade = TCP, precisa de velocidade/leveza = UDP". E facil confundir o fato de que consultas DNS comuns e DHCP usam UDP com HTTP/SSH (TCP).

Erro 3: Usar :: duas vezes no IPv6

:: pode aparecer apenas uma vez por endereco. Mesmo com multiplos blocos zerados, a abreviacao e limitada a um lugar. Escreva o restante como 0.

Erro 4: Errar os limites de enderecos privados

Em particular, 172.16.0.0/12 cobre de 172.16 ate 172.31. Nao confunda 172.32.x.x como privado.

Erro 5: Esquecer o loopback

IPv4 e 127.0.0.1 e IPv6 e ::1. Lembre-se de que ambos sao enderecos reservados que apontam para o host local.

Solucao de Problemas

Sintoma: ip addr nao mostra endereco IPv4

Causa: A interface esta desligada, ou nao obteve um endereco do DHCP

Verificacao:

ip addr show

Correcao: Se o estado da interface e DOWN, ative-a com ip link set eth0 up. Em um ambiente DHCP, renove a concessao do cliente.

Sintoma: Nao consegue consultar um numero de porta a partir de um nome de servico

Causa: Nao ha entrada para esse nome de servico em /etc/services, ou esta com erro de digitacao

Verificacao:

grep -i ssh /etc/services

Correcao: Pesquise com o nome de servico correto. Um servico customizado pode ser adicionado ao /etc/services para resolucao de nomes, mas a comunicacao tambem funciona especificando o numero de porta diretamente.

Sintoma: Loopback funciona mas hosts externos sao inacessiveis

Causa: O loopback (127.0.0.1 / ::1) e autocontido no host local e nao esta relacionado a conectividade externa

Verificacao:

ip addr show lo
ping -c1 192.168.1.1

Correcao: Para conectividade externa, verifique o endereco de uma interface fisica como eth0 e o gateway padrao, nao o loopback.

Checklist de Conclusao

  • [ ] Nomeou cada camada TCP/IP e seus protocolos representativos
  • [ ] Calculou bits de host e hosts utilizaveis a partir de um CIDR como /24
  • [ ] Confirmou os limites das tres faixas de enderecos privados
  • [ ] Aplicou a abreviacao :: do IPv6 apenas uma vez
  • [ ] Verificou as portas dos principais servicos em /etc/services
  • [ ] Verificou portas TCP / UDP em escuta com ss

Resumo

Item Ponto chave
Modelo de camada Aplicacao / Transporte / Internet / Enlace, quatro camadas
IPv4 Decimal com pontos de 32 bits, CIDR expressa a parte de rede
Contagem de host 2 elevado a potencia dos bits de host, menos 2
Privado 10/8, 172.16/12, 192.168/16
IPv6 Hexadecimal com dois-pontos de 128 bits, :: apenas uma vez
Portas Conhecidas 0-1023, consultar em /etc/services
TCP / UDP Orientado a conexao (confiavel) vs sem conexao (leve)

Os fundamentos de protocolos de internet sustentam igualmente configuracao de rede, DNS e solucao de problemas. Uma vez solidificados o calculo de enderecos e a divisao de papeis entre protocolos, avance para a configuracao e solucao de problemas reais.

Proximas Leituras

Continue Sua Jornada LPIC-1

Hub LPIC-1

  • Hub de Aprendizado LPIC-1 -- Mapa completo de artigos LPIC-1, acompanhamento de progresso e cobertura dos objetivos do exame

Artigos LPIC-1 Relacionados

Pratica