IKE SA estabelecida, CHILD SA ausente: onde os dados param
Uma IKE SA estabelecida não significa que os dados estão fluindo. Leia as entradas child, verifique seletores e contadores e nomeie a camada que realmente falhou.
O cliente diz que se autenticou, o status do IKE parece saudável e os contadores de pacotes continuam em zero. Essa combinação não é contradição: O IKEv2 mantém uma relação de controle e uma relação de dados separadas, e a primeira pode ter sucesso enquanto a segunda nunca sobe. O pai cuida da negociação; o filho cuida do tráfego. Leia as duas camadas separadamente antes de declarar o túnel caído.
O que as duas SAs fazem
A IKE SA é a relação de controle: autentica os pares e carrega as trocas que negociam, substituem e removem a proteção. Ela nunca carrega os pacotes da sua aplicação. Um pai saudável, portanto, prova apenas que as duas pontas conseguem concordar sobre a política de segurança, e nada mais.
A CHILD SA é a relação de dados, criada sob o pai, com seletores de tráfego e material de chave para um conjunto protegido. Ela é direcional, então a saída de status lista uma associação de entrada e uma de saída com identificadores separados e, normalmente, contadores separados para cada direção. Esse par é o motivo de uma direção funcionar enquanto a outra cai, e de a frase o túnel está no ar não dizer nada sobre tráfego. Um pai também pode manter vários filhos, e é assim que um único rótulo de conexão esconde o que você precisa.
Leia as entradas do filho, não o rótulo da conexão
Abra o status do pai e a lista de filhos juntos e encontre o filho cujos seletores correspondem ao fluxo que você está testando. Anote os seletores de tráfego, os algoritmos negociados, o tempo de vida e os contadores nas duas direções. Se houver vários filhos, compare por seletores e não por posição, porque a posição muda depois de uma renovação de chave. Escreva os identificadores antes de mudar qualquer coisa.
Se o pai lista um conjunto de tráfego diferente do que você testa, você está lendo o filho errado. Isso é um problema de seletores, não um túnel quebrado.
Registre também os carimbos de tempo. Uma renovação de chave pode substituir uma camada enquanto a outra continua estabelecida, e um filho que parece novo pode ser o substituto daquele que você observava. Compare os identificadores antes de concluir que um filho desapareceu.
Quando não existe filho algum
A autenticação pode ter sucesso enquanto a proposta de dados ou os seletores falham, e o pai fica sem filho nenhum. A causa usual é uma incompatibilidade de algoritmos ou de seletores de tráfego, e os dois pares registram a proposta recusada. Leia as duas pontas, porque o lado que você alcança pode mostrar apenas a recusa. Corrija a incompatibilidade em vez de reiniciar o pai, que repete a mesma negociação falha e acrescenta uma queda às evidências.
Um pai que se reestabelece sem parar é uma falha diferente de um pai que fica de pé sem filho. No segundo caso, os logs nomeiam a proposta recusada, então colete essa proposta das duas pontas antes de editar uma política.
Quando o filho existe, mas os contadores ficam em zero
Envie uma requisição nova que corresponda aos seletores do filho. Uma requisição para um destino fora dessa política não moverá os contadores, por mais bem-sucedida que pareça.
Verifique a rota que deve empurrar o fluxo para o túnel, porque um filho sem tráfego costuma ser um filho para o qual nada é roteado. Contadores que se movem só numa direção apontam para uma incompatibilidade de seletores ou de política no caminho de volta. Olhe os seletores de retorno do par remoto antes de tocar no lado local. Uma requisição nova também dá um carimbo de tempo para correlacionar com a saída de status das duas pontas.
Nomeie a camada no relatório
Relate a falha como três campos, não como veredito: a camada que falhou, a troca ou o filho que você inspecionou e a evidência que você tem. A camada é uma de três: o pai nunca foi estabelecido, a negociação do filho foi recusada, ou existe um filho e o tráfego não chega até ele. A evidência é o identificador do filho com seus seletores e contadores, ou a proposta recusada citada dos dois logs. Quem lê isso pode ir direto à troca que importa, em vez de perguntar qual VPN você quer dizer.
documentação do strongSwan sobre IKEv2 mostra como essas camadas aparecem na saída de status. Anexe a saída do filho que você testou, não apenas o resumo do pai.