A saída de traceroute que se completa nunha dirección e imprime filas de asteriscos na outra parece un reenvío asimétrico, e normalmente non o é. Cada salto mostrado necesita que a sonda chegue, que un router decida responder e que a resposta volva e se emparexe coa sonda. Rompa calquera deses elos e a fila convértese nun asterisco mentres o túnel segue transportando datos.

O rastro é evidencia sobre o diagnóstico antes que evidencia sobre o transporte. A pregunta que paga a pena facerse é cal dos tres elos fallou, e a resposta vén dos paquetes, non da forma da saída.

Un asterisco é unha resposta que falta, non un salto que falta

Traceroute avanza cara a fóra enviando sondas cuxo TTL expira un router máis aló en cada rolda. Un router que descarta unha sonda expirada debería devolver unha mensaxe ICMP Time Exceeded que se nomea a si mesma, e a ferramenta imprime ese nome. O que a ferramenta espera en realidade é que esa mensaxe chegue dentro dun tempo de espera. Se o router responde desde outra dirección de orixe, limita a frecuencia con que xera erros ou descarta a sonda sen dicir nada, a rolda non produce nada imprimible.

Ningún deses resultados di que a ruta de ida estea rota. Un asterisco é un informe sobre correo sen resposta, non sobre un camiño baleiro.

O método da sonda decide con que filtro se atopa

O método predeterminado en Linux adoita ser un porto de destino UDP cun número alto, tracert de Windows envía ecos ICMP, e a Linux pódeselle indicar que use ICMP ou TCP no seu lugar. Cada un parece un tipo distinto de tráfico para un cortalumes con estado ou un grupo de seguridade da nube. Comparar un rastro UDP dun lado cun rastro ICMP do outro compara dous experimentos distintos. Fixe o método, a familia de enderezos, o enderezo de orixe e o tempo de espera antes de chamar diferenza aos resultados.

Para unha comparación xusta, execute o rastro desde os equipos que realmente transportan o tráfico e non desde unha pasarela que reenvía no seu nome. Un rastro xerado polo router usa o seu propio enderezo de orixe e a súa política de saída, que poden ser máis estritos que calquera cousa que vexa un cliente. Anote a invocación exacta para que a seguinte persoa poida repetila.

O valor do tempo de espera é a outra metade do experimento, e é fácil deixalo fóra das notas. Unha espera de dous segundos nun camiño conxestionado informa de asteriscos onde unha espera de cinco segundos informa de saltos. Mantéña o valor idéntico entre execucións para que a comparación siga sendo sobre a rede.

A ruta de volta é unha ruta propia

Un erro ICMP é un paquete ordinario co seu propio orixe e destino, e necesita unha ruta de volta cara ao rastrexador. Se a política do túnel leva os prefixos da LAN pero non o enderezo do router que xerou o erro, a mensaxe sae por un camiño que non pode alcanzalo. O filtrado de respostas pode descartala mesmo cando a ruta existe, porque o paquete chega desde un enderezo inesperado nunha interface inesperada. Iso é un desaxuste no plano de diagnóstico e non un fallo da aplicación.

Ampliar cada selector ata que o rastro se complete fai a imaxe máis bonita e a política peor. Repare o enderezo de diagnóstico concreto, ou acepte o asterisco e probe a aplicación doutro xeito.

Confirme o túnel cunha petición real

Un handshake TCP no porto propio do servizo exercita o reenvío, o encamiñamento de volta e o filtrado na dirección que importa. Os comandos seguintes execútanse nos dous extremos e comparan que pode abrir cada lado. Substitua o porto do servizo e o nome da interface do túnel polos da súa propia configuración.

traceroute -I -n -w 2 203.0.113.40
traceroute -T -p 443 -n -w 2 203.0.113.40
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 5 http://203.0.113.40:8080/health
ss -tan state established

Lea primeiro as dúas execucións de traceroute: se a execución ICMP mostra saltos e a TCP non, a diferenza é de método, non de camiño. Despois tome o resultado de curl como a resposta a nivel de aplicación, porque un intercambio completado cun código de estado razoable significa que as rutas de ida e de volta funcionan para tráfico real. A listaxe de sockets mostra se a conexión está establecida, algo que ningún rastro pode dicirlle.

Un túnel que transporta unha sesión interactiva nas dúas direccións mentres un traceroute imprime asteriscos está san e simplemente pouco fotoxénico. Garde a saída dos comandos de cada lado como rexistro e trate os saltos que faltan como unha pregunta aberta sobre o diagnóstico e non como un veredicto sobre a VPN.

Artigos relacionados