Il server dice di aver inviato la rotta, il client dice di essere connesso, e la destinazione resta irraggiungibile. Tre cause producono esattamente questa immagine. L’aggiunta della rotta è stata eseguita prima che il dispositivo esistesse, al client mancavano i permessi per cambiare la tabella, oppure un criterio ha ordinato al client di ignorare le opzioni inviate.

Dall’esterno sembrano identiche e richiedono correzioni diverse. Leggete il registro del client nel punto in cui viene presa la decisione sulla rotta.

Dimostrate che la rotta è assente, non solo guasta

Iniziate dimostrando che la rotta è assente anziché guasta. Su Linux, ip route show dev tun0 elenca ciò che il client ha installato sul dispositivo tunnel. Su Windows, route print o Get-NetRoute mostra la stessa cosa in forma di tabella.

Una rotta che esiste ma non inoltra traffico è un altro problema. Questo sposta l’indagine sulle regole di inoltro e firewall, non sull’installazione della rotta.

Tempi: l’aggiunta è stata eseguita prima che il dispositivo esistesse

Il client analizza il PUSH_REPLY del server dopo che il canale di controllo è attivo e dopo aver configurato l’interfaccia. Solo allora tocca la tabella di routing, con il meccanismo fornito dalla piattaforma. Linux passa per netlink; Windows usa un’API che richiede un token elevato. Uno script o un client che aggiunge rotte appena legge la configurazione può essere eseguito prima che il dispositivo TUN/TAP esista, e il kernel rifiuta l’aggiunta.

La stessa corsa spiega perché una rotta digitata a mano funziona mentre quella automatica no: quando la digitate, l’interfaccia è già attiva.

route-delay esiste per questo caso, e route-up indica uno script che viene eseguito dopo la configurazione dell’interfaccia e delle rotte. Mettete le rotte che dipendono dall’indirizzo del tunnel in quel hook anziché in una fase iniziale.

Permessi: chi può cambiare la tabella

Cambiare la tabella di routing di Windows richiede un token elevato. Una GUI avviata da un utente standard può impostare l’indirizzo dell’adattatore tramite il servizio e comunque non riuscire ad aggiungere una rotta. Il registro mostra allora un errore del tipo accesso negato anziché un push mancante.

Avviare la GUI come amministratore, o usare il client basato su servizio, cambia quel risultato. Un’attività pianificata che avvia il client senza il token richiesto no.

Verificate con quale account il client viene realmente eseguito prima di cambiare qualcosa. La versione e la modalità del servizio stabiliscono quali cause sono possibili, quindi annotate entrambe accanto all’output delle rotte.

Criterio: le rotte inviate possono essere scartate di proposito

route-nopull fa ignorare al client le rotte inviate dal server, compresa una rotta predefinita inviata, mentre l’indirizzo del tunnel viene ancora accettato. Le opzioni DNS e DHCP inviate vengono scartate dalla stessa direttiva. Un client così non è difettoso; si aspetta righe di rotta esplicite nella propria configurazione.

route-noexec è un controllo diverso: impedisce del tutto al client di eseguire modifiche alle rotte. Una topologia che il client non riesce a mappare può produrre un risultato simile, con la rotta registrata come rifiutata anziché aggiunta. Leggete la riga di registro che riporta la decisione invece di indovinare quale delle tre si applica. Poi controllate il profilo effettivo, perché un importatore o uno strumento di gestione può aggiungere opzioni che l’utente non ha mai modificato.

Un profilo che sembra pulito in un editor di testo può comunque portare una direttiva aggiunta in fase di esecuzione.

Confrontate l’elenco di push con la tabella

Dopo la connessione, mettete l’elenco di push del server accanto alla tabella del client. Su Linux è ip route show dev tun0; su Windows, route print o Get-NetRoute. Se la rotta è assente, correggete prima l’installazione. Se è presente e il traffico fallisce, passate al criterio di inoltro e firewall.

Annotate la versione del client, l’account con cui viene eseguito e se è basato su servizio. Questi tre fatti dicono alla persona successiva quali cause sono state escluse.

Articoli correlati