Definições punchy do Nebula: qual corrige o seu NAT
punch mantém viva uma associação NAT existente; respond tenta um handshake inverso. Nenhum dos dois garante um caminho direto, e as definições de atraso mudam apenas o momento.
Dois pares encontram-se através do farol e depois não conseguem construir um caminho direto, e o primeiro instinto é ativar todas as opções punchy. Esse instinto produz uma configuração com três alterações e nenhuma ideia de qual importava. As definições respondem a perguntas diferentes: uma mantém uma associação que já existe, e outra tenta um handshake na direção inversa. Decida qual pergunta você tem antes de tocar em qualquer uma delas.
Confirme o extremo antes do tempo
Um par que nunca aparece no endereço esperado não será salvo pelo ajuste de punch. Verifique o que o farol sabe sobre o par e o que a configuração dele anuncia, porque um endereço bootstrap desatualizado ou um endereço privado publicado por engano anula qualquer truque de atravessamento. Confirme também que o certificado é confiável, pois uma identidade não confiável trava a conversa muito antes de o NAT importar. Depois verifique se o UDP chega sequer ao farol. Os valores de tempo são a última coisa a observar, não a primeira.
Anote o par de extremos com que você testa, para que comparações posteriores usem os mesmos pares e não outras duas máquinas.
punch mantém uma associação, respond abre uma direção
A opção punch envia periodicamente pacotes vazios para o endereço de camada inferior de um par que já tem um túnel. O propósito não é glamoroso: impede que um NAT com estado ou um firewall expire a associação da qual o caminho direto depende. A opção respond muda o que acontece numa notificação do farol, fazendo o host tentar um handshake de volta para o par que tenta alcançá-lo. São mecanismos diferentes com modos de falha diferentes.
Escolha punch quando o caminho direto funciona e depois decai. Escolha respond quando o caminho nunca se forma numa direção. Ativar os dois e esperar é como uma correção de cinco minutos vira uma semana de ajustes.
Os atrasos decidem quando, não se
Os valores de atraso deslocam o momento: um aplica-se ao pacote enviado após uma notificação, o outro à tentativa de handshake inverso. Nenhum faz funcionar uma direção bloqueada. Mudar os dois ao mesmo tempo destrói a comparação que você estava prestes a fazer.
Deixe-os em paz até o mecanismo estar correto. Depois ajuste um, e anote o valor antigo.
Quando um relé é a resposta honesta
Algumas combinações de NAT não conseguem suportar um caminho direto, por muito que o tempo seja organizado. NAT simétrico dos dois lados, ou um firewall que descarta por completo o tráfego de entrada não solicitado, não deixam nada para perfurar.
Um nó de relé com um endereço alcançável dá a esses pares um caminho que não depende do sucesso do atravessamento. Custa largura de banda através desse nó, portanto é uma decisão sobre capacidade e não um contorno. Configure o relé deliberadamente e verifique que os pares conseguem alcançá-lo, porque um relé que está ele próprio atrás de um NAT difícil não muda nada. Depois pare de ajustar as definições punch para esse par, já que o caminho direto nunca ia aparecer.
Teste o par que falhou, após inatividade
Reproduza a condição que quebrou: deixe o par inativo pelo mesmo intervalo, ou repita a sequência de handshakes que antes falhava. Depois exercite a aplicação entre esses dois pares, não um pedido ao farol. Uma resposta do farol prova o caminho de controle e nada sobre o caminho de dados.
Anote qual definição mudou, a hora, e se apareceu um caminho direto ou o tráfego ficou no relé. Se ficou, a resposta é um relé e uma nota de capacidade, e é um resultado perfeitamente bom. Se apareceu, a pergunta seguinte é se sobrevive a uma hora de inatividade, porque uma associação que decai é exatamente o problema para o qual o punch existe.