Il server risponde sulla LAN, la regola di inoltro della porta sembra corretta eppure un client esterno non riesce a connettersi. Attraversare un confine alla volta verso l'esterno è più rapido che modificare la regola per la quarta volta, perché ogni confine lascia la propria prova: la pagina WAN del router, la traduzione del provider e l'ascoltatore sull'host. Parti dalla pagina di amministrazione che hai già aperta e termina con un test da una rete che non controlli. Annota ogni risultato man mano, perché la sequenza è la diagnosi e un numero ricordato non è una prova. Se ti serve solo un tunnel in uscita, la traduzione non è il tuo problema: viene bloccato solo il traffico in ingresso non richiesto.

Parti dalla pagina WAN del router

Accedi al router e leggi la pagina di stato invece dell'elenco degli inoltri di porta. Annota l'indirizzo WAN, l'interfaccia a cui appartiene e se il tipo di connessione è DHCP, PPPoE o qualcosa fornito dal provider. Poi confronta quell'indirizzo con ciò che riporta un servizio esterno, usando un telefono in dati mobili così che l'osservazione non torni attraverso lo stesso router. I due numeri rispondono a domande diverse, e confrontarli è tutto lo scopo di questo passo.

Un indirizzo WAN diverso dall'indirizzo pubblico osservato significa che almeno un traduttore si trova sopra il router. Non è ancora un guasto, perché molti provider traducono per progetto e il servizio funziona comunque. Se i due coincidono, probabilmente l'indirizzo è del router e il problema si è spostato dentro la tua rete. In ogni caso annota la coppia con la data, perché i provider riassegnano gli indirizzi e un confronto con le note del mese scorso non vale nulla.

Sali di un salto

Esegui un traceroute dal router stesso e leggi i primi salti. Indirizzi pubblici ripetuti, un primo salto che risponde con un indirizzo privato o un indirizzo dentro l'intervallo condiviso 100.64.0.0/10 indicano tutti un traduttore a monte. RFC 6598 definisce quell'intervallo proprio per questo tipo di installazione, ed è per questo che vederlo nel campo WAN è un segnale forte e non una curiosità. Due traduttori sul percorso rendono la traccia meno evidente, quindi leggi lo schema e non una singola riga.

Alcuni provider mostrano l'indirizzo assegnato solo nel portale clienti, quindi guarda lì prima di concludere che il router menta. Un indirizzo del portale che corrisponde alla tua osservazione esterna mentre il router riporta altro è la prova più chiara di un traduttore a monte. Conserva entrambe le pagine nel registro delle modifiche, perché la discussione su chi possieda quale confine procede molto più in fretta con due immagini datate.

Conferma l'ascoltatore e l'inoltro

Un test sulla LAN dimostra che il servizio funziona localmente e non dimostra nulla sulla raggiungibilità dall'esterno. Molti router rispondono alla propria regola di inoltro dall'interno, così un test a forcella riesce mentre il percorso esterno è ancora chiuso. Conferma che il demone sia legato all'indirizzo e alla porta che credi, poi prova dall'esterno. Tutto ciò che segue è in sola lettura.

ss -lunp | grep -E '1194|51820'
ip -4 addr show | grep -E 'inet '
curl -s --max-time 5 ifconfig.me
traceroute -n -m 5 1.1.1.1

Se il test esterno mostra che nessun pacchetto arriva al router, la caduta è avvenuta a monte e nessuna regola locale la sistemerà. Se i pacchetti arrivano e nulla risponde, il confine successivo è l'ascoltatore o il firewall dell'host. Una cattura di pacchetti sull'host stabilisce quale dei due stai guardando, e richiede meno tempo di un altro giro di congetture sulle regole. Mantieni invariati l'ascoltatore e il suo trasporto durante il confronto, altrimenti il test successivo risponde a un'altra domanda.

Cambia la topologia, non la stessa regola

Quando il traduttore è del provider, la correzione è un percorso diverso e non un altro inoltro. Un piccolo VPS con indirizzo pubblico, collegato da un tunnel in uscita dal lato casa, mette un estremo raggiungibile davanti al servizio. Un indirizzo pubblico fornito dal provider è più semplice dove esiste e di solito più economico che gestire una macchina. IPv6 elimina del tutto la traduzione, purché la rete del client, i record DNS e la politica del firewall la supportino tutti.

DNS dinamico aggiorna solo un nome; non crea raggiungibilità, e puntarlo a un indirizzo condiviso manda i client a un gateway del provider che anche altri abbonati usano. Quel guasto sembra esattamente un server morto, ed è per questo che il verbale dei passi precedenti conta. Annota a quale indirizzo il nome si è risolto quando il test è fallito, e conserva la risposta insieme al risultato del test.

Riscrivi il piano intorno al confine che controlli: l'ascoltatore, il tunnel e le rotte. Mantieni il vecchio inoltro solo finché descrive ancora qualcosa di vero, perché una regola che non corrisponde più alla topologia è peggio di nessuna regola. Annota quale strato bloccava davvero e quale prova lo ha mostrato. Altrimenti la prossima persona che apre la pagina di amministrazione ripeterà ogni passo di questo percorso dall'inizio.

Articoli correlati