Utiliza durante troubleshooting controlado. Regista primeiro o estado atual e garante que sabes como parar ou reverter a operação.
FortiGate · FortiOS · 7.4
Quando utilizar este conteúdo
Utiliza esta referência quando precisares de inspecionar, validar ou explicar o estado atual de FortiGate durante troubleshooting operacional.
Visão geral
diagnose debug flow é uma das ferramentas de troubleshooting mais úteis do FortiGate quando o tráfego chega à firewall mas não se comporta como esperado.
Permite ver decisões de processamento de pacotes do FortiOS, como route lookup, criação de sessões, correspondência de policies, processamento de NAT e motivos de bloqueio.
É especialmente útil quando um packet capture simples confirma que existe tráfego, mas não explica porque é que o FortiGate tomou uma determinada decisão de encaminhamento.
O que faz
Um debug flow acompanha tráfego selecionado ao longo do processamento de pacotes do FortiOS.
O output pode revelar:
- Interface de entrada
- Endereços de origem e destino
- Resultado do route lookup
- Criação de sessão
- Decisão da firewall policy
- Source NAT ou destination NAT
- Processamento local-in
- Motivo de drop
A família de comandos não corresponde a um único comando. Um debug útil normalmente envolve:
- Limpar o estado de debug anterior.
- Aplicar um ou mais filtros.
- Opcionalmente ativar os nomes das funções.
- Iniciar um número limitado de traces.
- Ativar o output de debug.
- Gerar o tráfego que está a ser investigado.
- Parar e repor o debug.
Quando utilizar
Utiliza debug flow ao investigar situações como:
- Um host chega ao FortiGate mas não ao destino.
- O tráfego parece corresponder à firewall policy errada.
- NAT está a ser aplicado inesperadamente.
- Uma rota não é selecionada como esperado.
- Tráfego inter-VLAN é negado.
- O tráfego VPN chega ao FortiGate mas não é encaminhado corretamente.
- Packet captures mostram tráfego a entrar mas não a sair pela interface esperada.
Não uses debug flow como primeiro passo para qualquer problema. Routing tables, estado das interfaces, configuração de policies, logs e um packet capture filtrado são muitas vezes formas mais rápidas de reduzir o âmbito do problema.
Pré-requisitos
- Acesso CLI com permissões administrativas suficientes.
- Uma origem, destino, porta ou protocolo claros para filtrar.
- Conhecimento do VDOM ativo quando existem VDOMs.
- Um teste controlado capaz de gerar tráfego repetível.
Em firewalls de produção com muito tráfego, evita sessões de debug amplas ou sem filtros.
Procedimento recomendado
Limpa o estado de debug existente:
diagnose debug reset
Filtra por endereço IP:
diagnose debug flow filter addr 10.1.10.20
Para testes mais precisos, utiliza filtros de origem e destino:
diagnose debug flow filter saddr 10.1.10.20
diagnose debug flow filter daddr 10.2.20.10
Opcionalmente, filtra pela porta de destino:
diagnose debug flow filter dport 443
Mostra os nomes das funções no output:
diagnose debug flow show function-name enable
Limita o trace a um número definido de eventos:
diagnose debug flow trace start 100
Ativa o output de debug:
diagnose debug enable
Gera o tráfego necessário para reproduzir o problema.
Quando terminares:
diagnose debug flow trace stop
diagnose debug disable
diagnose debug reset
Filtros comuns
Qualquer tráfego relacionado com um endereço
diagnose debug flow filter addr 10.1.10.20
Endereço de origem
diagnose debug flow filter saddr 10.1.10.20
Endereço de destino
diagnose debug flow filter daddr 10.2.20.10
Porta TCP/UDP de destino
diagnose debug flow filter dport 443
Protocolo
ICMP utiliza o número de protocolo 1:
diagnose debug flow filter proto 1
TCP utiliza o número de protocolo 6 e UDP utiliza 17.
Como interpretar o output
Não leias o debug flow apenas como uma mensagem binária de sucesso/falha. Segue a sequência de processamento do pacote.
Pacote recebido
Uma linha a indicar que foi recebido um pacote confirma que o FortiGate viu efetivamente o tráfego de teste na interface indicada.
Route lookup
Procura output que indique que foi encontrada uma rota e confirma o gateway e a interface de saída.
Se for selecionada a rota errada, verifica:
get router info routing-table all
Criação de sessão
Uma mensagem de nova sessão confirma que o FortiOS está a criar estado de sessão para o fluxo.
Firewall policy
Procura informação sobre policy matching ou deny. Confirma o policy ID face à firewall policy configurada.
NAT
Mensagens referentes a SNAT ou DNAT mostram que está a ser aplicada tradução de endereços. Confirma se isso é intencional para o fluxo testado.
Validação
Uma sessão de diagnóstico bem-sucedida deve permitir responder, pelo menos, a estas perguntas:
- O pacote entrou no FortiGate?
- Em que interface?
- Que rota foi selecionada?
- Que policy processou o tráfego?
- Foi aplicado NAT?
- O fluxo foi aceite ou descartado?
- Se foi descartado, em que fase ocorreu o drop?
Se o debug flow não responder à primeira pergunta, utiliza um packet sniffer para confirmar se o FortiGate vê o tráfego.
Riscos e considerações
Volume elevado de debug
Um debug sem filtros numa firewall com muito tráfego pode gerar muito output e tornar a análise difícil.
Filtra sempre de forma tão restritiva quanto possível e limita o número de traces.
Logging em FortiAnalyzer e FortiCloud
A Fortinet alerta que o output de debug flow pode ser registado como event log e encaminhado para serviços de logging associados. Não deixes o diagnóstico ativo mais tempo do que o necessário.
Tráfego com hardware offload
Tráfego offloaded para processadores NP6 ou NP7 pode não aparecer no output normal de debug flow. Se uma sessão ativa conhecida parecer invisível, considera hardware offload antes de concluir que o tráfego nunca passou pelo FortiGate.
Desativar hardware acceleration é uma ação intrusiva de diagnóstico e não deve ser feita de forma casual em produção.
Rollback / Stop
Utiliza os três comandos após uma sessão de troubleshooting:
diagnose debug flow trace stop
diagnose debug disable
diagnose debug reset
diagnose debug reset é importante porque limpa filtros e estado de debug que poderiam afetar uma sessão posterior.
Troubleshooting do troubleshooting
Não aparece output
Confirma:
diagnose debug enableestá ativo?- O tráfego de teste está realmente a ocorrer?
- Os filtros são demasiado restritivos?
- Estás no VDOM correto?
- A sessão está em hardware offload?
- Um packet sniffer consegue ver o tráfego?
O output é excessivo
Pára o debug e restringe os filtros usando endereço de origem, endereço de destino, protocolo e porta.
O tráfego é permitido, mas a aplicação continua a falhar
Uma decisão de allow na firewall prova apenas que o FortiGate permitiu o fluxo testado. Continua com packet capture, validação do return path, firewall do endpoint, listening ports do servidor e diagnóstico ao nível da aplicação.
Artigos relacionados
- FortiGate packet sniffer
- FortiGate routing table
- FortiGate IPsec tunnel established but no traffic
Fontes
Consulta as referências oficiais da Fortinet indicadas nos metadados do artigo.
Este artigo faz parte de um percurso
Knowledge graph
Relações editoriais explícitas entre pré-requisitos, comandos, troubleshooting, Labs e próximos passos.
Este artigo ajudou-te a resolver o problema?
Cada conta pode votar uma vez por artigo. Podes alterar o voto sem aumentar a contagem total.
0 reports de utilizadores