Mapa da aula
Aula 13 publicada. Mapa, exemplo, EX037.
flowchart TD
N0["13.1 Método"]
N1["13.2 Atividade prática — Laboratório H"]
N2["13.3 Correções típicas"]
N3["13.4 Registro"]
N4["13.5 Caso resolvido"]
N5["13.6 Atividade prática"]
N6["13.7 Pedindo ajuda"]
N7["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX037"]
Desenho lógico
flowchart LR
N0["13.1 Método"]
N1["13.2 Atividade prática — Laboratório H"]
N2["13.3 Correções típicas"]
N3["13.4 Registro"]
N4["13.5 Caso resolvido"]
N5["13.6 Atividade prática"]
N6["13.7 Pedindo ajuda"]
N7["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX037"]
[13.1 Método]
|
v
[13.2 Atividade prática — Laboratório H]
|
v
[13.3 Correções típicas]
|
v
[13.4 Registro]
|
v
[13.5 Caso resolvido]
|
v
[13.6 Atividade prática]
|
v
[13.7 Pedindo ajuda]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX037]
Objetivos de aprendizagem
Você vai (1) seguir um método de diagnóstico passo a passo; (2) fazer a triagem de logs de falha em causas prováveis; (3) corrigir problemas comuns sem remover a proteção de forma ampla; e (4) registrar a causa e a correção.
13.1 Método
Reproduzir → isolar → formular hipótese → testar → corrigir → verificar → registrar. Reproduza com o mesmo cliente e o mesmo caminho no laboratório, se possível. Isole tentando um caminho direto, um cliente diferente ou o híbrido desligado numa única conexão de teste. Mude uma coisa de cada vez.
No HHG, o timeout do Summit foi reproduzido no laboratório com o mesmo firmware de firewall antes que qualquer correção fosse escolhida. Anote cada hipótese e o teste que a confirmou ou descartou, para que o registro mostre como a causa foi encontrada.
13.2 Atividade prática — Laboratório H
# Lab H (ch 13): triage synthetic handshake failure logs into likely causes.
import re, collections
logs = """2026-10-01T10:00Z client=10.0.4.7 err=handshake_timeout size_clienthello=1530 path=proxy-b
2026-10-01T10:01Z client=10.0.4.9 err=handshake_timeout size_clienthello=1530 path=proxy-b
2026-10-01T10:02Z client=10.0.7.2 err=no_shared_group offered=x25519mlkem768
2026-10-01T10:03Z client=10.0.4.8 err=handshake_timeout size_clienthello=1530 path=proxy-b
2026-10-01T10:04Z client=10.0.9.1 err=bad_certificate alg=mldsa65
2026-10-01T10:05Z client=10.0.4.3 err=handshake_timeout size_clienthello=300 path=direct""".splitlines()
causes = collections.Counter()
for line in logs:
f = dict(re.findall(r"(\w+)=(\S+)", line))
if f["err"] == "handshake_timeout" and int(f.get("size_clienthello", 0)) > 1400: c = "large ClientHello dropped (" + f["path"] + ")"
elif f["err"] == "no_shared_group": c = "client/server group mismatch"
elif f["err"] == "bad_certificate": c = "client cannot verify PQ certificate"
else: c = "other / investigate"
causes[c] += 1
for c, n in causes.most_common(): print(f"{n} {c}")
Saída esperada:
3 large ClientHello dropped (proxy-b)
1 client/server group mismatch
1 client cannot verify PQ certificate
1 other / investigate
Três timeouts compartilham um proxy e uma primeira mensagem grande: o proxy é a causa provável. A incompatibilidade de grupos e o erro de certificado precisam de tickets separados.
O script lê seis linhas de log sintéticas e atribui cada uma a uma causa provável usando regras simples: um timeout com primeira mensagem acima de 1.400 bytes aponta para uma mensagem grande sendo descartada, enquanto os erros de grupo e de certificado se associam diretamente. O último timeout teve uma mensagem pequena num caminho direto, então fica para investigação. Repare como agrupar pelo caminho mostra que o proxy-b é o fator comum. Acrescente uma linha sua e confira o resultado.
13.3 Correções típicas
Proxy ou firewall descarta mensagens grandes → atualização de firmware ou correção de configuração nesse dispositivo; enquanto isso, encaminhe os usuários afetados para um listener compatível. Nenhum grupo compartilhado → restaure o fallback clássico no servidor ou atualize o cliente. Falha na verificação do certificado → acrescente a nova raiz ao repositório de confiança do cliente ou mantenha o certificado clássico para esse grupo de clientes. Fallback silencioso → corrija a ordem dos grupos e acrescente um alerta.
Escolha a correção mais estreita que restaure o serviço e registre qualquer passo provisório como exceção com data de término. No HHG, o encaminhamento do Summit para um listener sem híbrido foi removido assim que o firmware do firewall foi atualizado.
13.4 Registro
Escreva os sintomas, as evidências, a causa, a correção, a verificação e o que ficar pendente. Vincule os tickets relacionados, para que os padrões fiquem visíveis: três unidades com o mesmo modelo de firewall devem virar um único caso com o fornecedor.
No HHG, o ticket do Summit registrou os timeouts, a reprodução no laboratório, o encaminhamento provisório, a correção de firmware e a confirmação. Se outra unidade relatar os mesmos sintomas, os tickets vinculados mostram o padrão de imediato, e o caso com o fornecedor pode cobrir todos os sites afetados. Feche-o somente após a verificação.
13.5 Caso resolvido
Ticket: "A recepção do Summit não consegue carregar o portal do hóspede desde segunda-feira." Evidências: timeouts apenas a partir do Summit; uma triagem no estilo do Laboratório H mostra ClientHello grande através do firewall da unidade. Um teste de laboratório com o mesmo firmware de firewall a reproduz. Provisório: uma política encaminha a sub-rede da recepção do Summit para um listener sem o grupo híbrido, registrada como exceção. Correção: atualização do firmware do firewall na quinta-feira; exceção removida; negociações híbridas a partir do Summit confirmadas.
O operador reproduziu a falha antes de corrigi-la e manteve a medida provisória estreita e registrada.
13.6 Atividade prática
Usando a saída do Laboratório H, escreva três tickets — um por causa distinta — com as primeiras verificações.
Escreva um ticket para os timeouts do proxy-b, um para a incompatibilidade de grupos e um para o erro de certificado. Para cada um, informe os sintomas com as linhas de log, uma causa provável marcada como tal, as primeiras verificações para confirmá-la, a medida provisória estreita, se necessária, e o responsável. Anote separadamente o único timeout de caminho direto como item a investigar. Vincule os tickets se suspeitar de uma causa comum.
13.7 Pedindo ajuda
Escale quando a causa estiver fora do seu controle ou a correção exigir uma mudança que você não está autorizado a fazer. Inclua as evidências, o que você tentou e o que precisa. Bons escalonamentos são curtos, específicos e reproduzíveis; eles são respondidos mais rápido.
No HHG, a correção do firewall do Summit precisava do Network Ops e do fornecedor do firewall, então o operador escalou com a reprodução de laboratório e a versão do firmware anexadas. Diga o que você já descartou, para que quem ajuda não repita as suas verificações. Combine quando você terá retorno.
13.8 Erros comuns e limites
- Desligar o híbrido em todos os lugares.
- Mudar várias configurações de uma vez.
- Correções sem verificação.
Cada erro piora o diagnóstico. Desligar o híbrido em todos os lugares por causa de um caminho, como o firewall do Summit, remove a proteção de todas as outras unidades. Mudar várias configurações de uma vez significa que ninguém sabe qual mudança resolveu o problema ou causou um novo. Uma correção sem verificação pode não funcionar, e o ticket será reaberto. Confira todo ticket de diagnóstico quanto aos três antes de fechá-lo. Corrija o que encontrar.
Exercícios
- EX037 — Triagem. No Laboratório H, qual causa você investigaria primeiro, e por quê? Rubrica: 3 = os timeouts do proxy, mais frequentes e com padrão comum.
- EX038 — Correção provisória. Descreva uma correção provisória estreita para o problema do Summit. Rubrica: 3 = encaminhar a sub-rede para um listener compatível, com exceção e expiração.
- EX039 — Escalonamento. Escreva um escalonamento de três linhas para o fornecedor do firewall. Rubrica: 3 = produto/versão, evidências, pedido.
Síntese
O diagnóstico metódico, a triagem de logs e as correções provisórias estreitas resolvem problemas pós-quânticos mantendo a proteção para todos os demais.