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.
- Zeros a esquerda em cada bloco podem ser removidos (
0db8paradb8,0000para0) - 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
:: pode ser usado apenas uma vez dentro de um unico endereco. Usa-lo duas vezes, como em 2001:db8::1::1, torna ambiguo o numero de blocos omitidos e o endereco invalido. Este e um padrao frequente de erro no exame.
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".
- Cliente para servidor:
SYN(solicitacao de conexao) - Servidor para cliente:
SYN/ACK(solicitacao aceita mais resposta) - 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
- Verificando e Alterando a Configuracao de Rede
- Configurando o Cliente DNS
- Solucao de Problemas de Rede