Capítulo 7.2 - Roteamento e Tabelas de Roteamento
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender o roteamento no Linux
- Visualizar e modificar as tabelas de roteamento
- Configurar a rota padrão
- Entender rotas estáticas
- Solucionar problemas de roteamento
O que é Roteamento?
O roteamento determina como os pacotes de rede são enviados de uma origem para um destino.
Função:
- Decidir para onde enviar os pacotes
- Baseado nas tabelas de roteamento
- Rota padrão para destinos desconhecidos
Tabelas de Roteamento
Visualizar Rotas
# Ver todas as rotas
ip route show
ip route
route -n # Com net-tools
# Ver rota específica
ip route get 8.8.8.8
Estrutura de uma Rota
destination via gateway dev interface
Exemplo:
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
Rota Padrão
Visualizar a Rota Padrão
# Com ip
ip route show default
ip route | grep default
# Com route
route -n | grep "^0.0.0.0"
Adicionar uma Rota Padrão
# Com ip
sudo ip route add default via 192.168.1.1 dev eth0
# Com route
sudo route add default gw 192.168.1.1 eth0
Remover a Rota Padrão
# Com ip
sudo ip route del default
# Com route
sudo route del default
Rotas Estáticas
Adicionar uma Rota
# Rota para rede específica
sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0
# Rota para host específico
sudo ip route add 10.0.0.50 via 192.168.1.1 dev eth0
# Rota via interface local
sudo ip route add 172.16.0.0/16 dev eth1
Remover uma Rota
# Remover rota
sudo ip route del 10.0.0.0/24
# Ou especificar completamente
sudo ip route del 10.0.0.0/24 via 192.168.1.1 dev eth0
Exemplos
# Rota para rede privada via VPN
sudo ip route add 192.168.100.0/24 via 10.8.0.1 dev tun0
# Rota para servidor específico
sudo ip route add 203.0.113.50 via 192.168.1.1 dev eth0
Múltiplas Tabelas de Roteamento
Visualizar as Tabelas
# Lista de tabelas
ip route show table all
# Tabela específica
ip route show table main
ip route show table local
Tabelas Especiais
- main: Tabela principal (padrão)
- local: Rotas locais (127.0.0.0/8, etc.)
- default: Rotas padrão
Adicionar Rota em Tabela Específica
# Rota em tabela personalizada
sudo ip route add 10.0.0.0/24 via 192.168.1.1 table 100
# Visualizar tabela
ip route show table 100
Configuração Permanente
Ubuntu/Debian (Netplan)
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
routes:
- to: 10.0.0.0/24
via: 192.168.1.1
- to: 0.0.0.0/0
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
Aplicar:
sudo netplan apply
Red Hat/CentOS
# Arquivo: /etc/sysconfig/network-scripts/route-eth0
10.0.0.0/24 via 192.168.1.1 dev eth0
default via 192.168.1.1 dev eth0
Troubleshooting
Traceroute
# Traçar o caminho
traceroute 8.8.8.8
tracepath 8.8.8.8 # Com iputils
# Com mtr (instale se necessário)
sudo apt install mtr
mtr 8.8.8.8
Verificar Conexão
# Ping
ping -c 4 8.8.8.8
ping -c 4 google.com
# Ver rota utilizada
ip route get 8.8.8.8
Verificar Rota Padrão
# Rota padrão
ip route show default
# Gateway acessível?
ping -c 2 $(ip route | grep default | awk '{print $3}')
Exemplos Práticos
Script de Configuração de Roteamento
#!/bin/bash
# Configuração de roteamento
INTERFACE="eth0"
GATEWAY="192.168.1.1"
# Rota padrão
sudo ip route add default via $GATEWAY dev $INTERFACE
# Rota para rede privada
sudo ip route add 10.0.0.0/24 via $GATEWAY dev $INTERFACE
# Verificar
ip route show
Verificação de Roteamento
#!/bin/bash
# Verificar configuração de roteamento
echo "=== Rotas ==="
ip route show
echo "=== Rota padrão ==="
ip route show default
echo "=== Teste de conectividade ==="
ping -c 2 8.8.8.8
Resumo
Neste capítulo, você aprendeu:
Roteamento: Decisão de envio dos pacotes de rede
Tabelas: main, local, tabelas personalizadas
Rota padrão: Gateway para destinos desconhecidos
Rotas estáticas: Rotas específicas para redes/hosts
Configuração: Netplan, arquivos route-*
Troubleshooting: traceroute, ping, ip route get
Próximos Passos
Capítulo 7.3: DNS e Resolução de Nomes
Capítulo 7.4: Ferramentas de Rede
Capítulo criado em: Dezembro de 2024