Ο φορητός συνδέεται στο VPN του γραφείου και όλα τον ακολουθούν, μαζί με την ιστοσελίδα ενός εκτυπωτή και ένα intranet που απαντά μόνο στο τοπικό δίκτυο. Μια χειροποίητη διαδρομή το διορθώνει για μία ώρα, μετά η σύνδεση πέφτει, επιστρέφει, και η εξαίρεση χάθηκε. Τίποτα δεν πάει στραβά με τη σήραγγα: τα Windows κρατούν έναν μόνο πίνακα δρομολόγησης, και ο προσαρμογέας VPN ξαναγράφει το μερίδιό του σε αυτόν τον πίνακα σε κάθε σύνδεση. Ό,τι επιβιώνει είναι ό,τι βρίσκεται έξω από τις δικές του εγγραφές του προσαρμογέα.

Ποια εγγραφή αναλαμβάνει η σήραγγα

Καταγράψτε τον πίνακα δύο φορές, μία με τη σήραγγα κάτω και μία με αυτήν πάνω, και συγκρίνετε τις προεπιλεγμένες γραμμές. Όταν το προφίλ διεκδικεί το προεπιλεγμένο πρόθεμα, η εγγραφή του προσαρμογέα είναι η πλατύτερη γραμμή του πίνακα, άρα κάθε εξαίρεση πρέπει να είναι στενότερη από αυτήν. Είναι αριθμητική για το μήκος του προθέματος και όχι δήλωση για την εμπιστοσύνη ή την πολιτική. Καθορίζει επίσης ποια διεπαφή πρέπει να ονομάσει η εξαίρεση.

Σημειώστε το ευρετήριο της διεπαφής και την τοπική πύλη πριν προχωρήσετε, γιατί και τα δύο αλλάζουν όταν το μηχάνημα ενταχθεί σε άλλο δίκτυο. Οι παρακάτω εντολές τα διαβάζουν από το μηχάνημα και όχι από τη μνήμη.

route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.30

Η δεύτερη εντολή αναφέρει τη διεπαφή και το επόμενο άλμα που θα χρησιμοποιούσε αυτή η μία διεύθυνση τώρα, κάτι καλύτερο από το να διαβάζετε σαράντα γραμμές και να μαντεύετε. Εκτελέστε την πριν και μετά τη σύνδεση και έχετε το ζεύγος που αξίζει να επισυναφθεί σε ένα αρχείο αλλαγής. Και οι δύο έξοδοι δίνουν τους αριθμούς που χρησιμοποιούνται στην υπόλοιπη σελίδα.

Μια διαδρομή host κερδίζει στην ειδικότητα

Η αντιστοίχιση του μεγαλύτερου προθέματος αποφασίζει τον νικητή, άρα ένα /32 μέσω της φυσικής πύλης κερδίζει την προεπιλογή μέσω της σήραγγας χωρίς να αγγίξει η σήραγγα. Η κίνηση προς αυτή τη διεύθυνση φεύγει από την τοπική διεπαφή ενώ όλα τα άλλα κρατούν την υπάρχουσα πορεία τους. Η σήραγγα εξακολουθεί να μεταφέρει την προεπιλογή και απλώς παύει να είναι ο μόνος υποψήφιος για αυτόν τον προορισμό. Το μήκος του προθέματος είναι ο μόνος μοχλός που εκθέτει ο πίνακας, και για αυτή τη δουλειά αρκεί.

Η ειδικότητα αποκλείει επίσης την προφανή συντόμευση της εξαίρεσης ενός ονόματος τομέα, γιατί ο πίνακας αντιστοιχίζει διευθύνσεις και ένα όνομα μπορεί να επιλυθεί σε πολλές. Επιλύστε πρώτα τον host και μετά αποφασίστε ποια από τις διευθύνσεις του αξίζει την εξαίρεση.

Για όλα τα παρακάτω, υποθέστε μια σύνδεση με όνομα Office, μια τοπική πύλη 10.0.0.1 στη διεπαφή 7, και έναν προορισμό στη 198.51.100.30. Αυτά είναι υποδείγματα και όχι προεπιλογές, και οι παραπάνω εντολές παράγουν τις τιμές που χρησιμοποιεί στην πραγματικότητα το μηχάνημά σας. Κρατήστε αυτή τη σημείωση αντικατάστασης μαζί με την αλλαγή ώστε ο επόμενος αναγνώστης να μην αντιγράψει τους αριθμούς.

Κάντε τη διαδρομή να επιβιώσει από την επόμενη επανασύνδεση

Τα Windows δεν προσφέρουν καμία οδηγία εξαίρεσης σε σύνδεση VPN, άρα η εξαίρεση πρέπει να ζει στη φυσική διεπαφή όπου ο προσαρμογέας δεν θα την ξαναγράψει. Το cmdlet που μοιάζει με την απάντηση κάνει το αντίθετο: Add-VpnConnectionRoute μετακινεί ένα πρόθεμα μέσα στη σήραγγα, και αυτό είναι η κατοπτρική περίπτωση όπου ένα διαχωρισμένο προφίλ πρέπει να μεταφέρει έναν προορισμό και να αφήνει τα υπόλοιπα τοπικά. Το να καταφύγετε σε αυτό εδώ εγγυάται ότι η κίνηση που θέλατε να κρατήσετε έξω θα μπει μέσα.

Η χειροκίνητη μορφή είναι μία εντολή. Η αδυναμία της είναι η αλλαγή δικτύου και όχι η επανασύνδεση.

route -p add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

Αυτό επιβιώνει από επανεκκίνηση χάρη στο -p και στέλνει μία διεύθυνση έξω από τη διεπαφή 7 ενώ η σήραγγα μεταφέρει όλα τα άλλα. Μετακινήστε τον φορητό σε άλλο δίκτυο και τόσο η πύλη όσο και το ευρετήριο παλιώνουν, άρα η εγγραφή αποτυγχάνει σιωπηλά. Καταγράψτε ποιος την κατέχει και πότε πρέπει να αφαιρεθεί.

Ένα σενάριο σύνδεσης είναι η πιο στιβαρή εκδοχή, γιατί προσθέτει ξανά την εξαίρεση μετά από κάθε σύνδεση αντί να ελπίζει ότι η εγγραφή επιβίωσε. Οι δύο παρακάτω γραμμές ανήκουν σε ό,τι ξεκινά τη σήραγγα, όχι σε σενάριο σύνδεσης χρήστη.

rasdial Office
route add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

Ό,τι ανεβάζει τη σήραγγα είναι το σωστό μέρος για τη δεύτερη γραμμή, και το rasdial επιστρέφει μόνο αφού εδραιωθεί η σύνδεση, άρα η διαδρομή προσγειώνεται πίσω από τις δικές του εγγραφές του προσαρμογέα. Εκτελέστε το ξανά μετά από αναστολή, γιατί η αναστολή μπορεί να ρίξει τη διαδρομή και να αφήσει τη σήραγγα πάνω. Αν η εργασία είναι η αντίστροφη, να σπρώξετε ένα πρόθεμα μέσα στη σήραγγα ενώ τα υπόλοιπα μένουν τοπικά, τότε το Add-VpnConnectionRoute είναι το σωστό εργαλείο.

Η δρομολόγηση δεν μπορεί να διαλέξει διεργασία

Μερικές φορές η απαίτηση είναι στενότερη από έναν προορισμό: ένα πρόγραμμα πρέπει να πάρει την τοπική πορεία ενώ όλα τα άλλα μένουν μέσα στη σήραγγα. Η δρομολόγηση δεν μπορεί να το εκφράσει, γιατί αντιστοιχίζει διευθύνσεις και όχι διεργασίες. Το εφαρμόσιμο μοτίβο σπρώχνει το πρόβλημα στον εκκινητή.

Κρατήστε το προφίλ μακριά από την προεπιλεγμένη διαδρομή και ξεκινήστε εκείνο το ένα πρόγραμμα δεσμευμένο στη διεύθυνση της τοπικής διεπαφής, ώστε η εξαίρεση να γίνει η εντολή εκκίνησης και η σήραγγα να κρατήσει ό,τι ήδη χειριζόταν. Τίποτα στον πίνακα δρομολόγησης δεν αλλάζει, και γι αυτό επιβιώνει από τις επανασυνδέσεις. Σημαίνει επίσης ότι η σήραγγα δεν πρέπει να κατέχει την προεπιλεγμένη διαδρομή εξαρχής, άρα αυτό είναι διαφορετικός σχεδιασμός και όχι μπάλωμα στον προηγούμενο.

Η αδυναμία του είναι λειτουργική και όχι τεχνική. Το πρόγραμμα πρέπει πάντα να ξεκινά μέσω του περιτυλίγματος, και αν η δέσμευση λείπει μετά από αναστολή, παίρνει σιωπηλά όποια πορεία προσφέρει ο πίνακας. Αυτό είναι ανεκτό για έναν περιηγητή που ανοίγετε επίτηδες και απαράδεκτο για οτιδήποτε δεν πρέπει ποτέ να φύγει από τη σήραγγα.

Οι συνδέσεις ανά χρήστη δεν το λύνουν ούτε αυτό. Τα Windows μπορούν να περιορίσουν μια σύνδεση σε λογαριασμό ενώ ο πίνακας δρομολόγησης παραμένει για όλο το μηχάνημα, άρα μια σύνδεση περιορισμένη σε λογαριασμό που κρατά προεπιλεγμένη διαδρομή εξακολουθεί να ανακατευθύνει κάθε διεργασία στο μηχάνημα, μαζί με άλλες συνεδρίες. Το πεδίο γίνεται πραγματικό μόνο όταν το πεδίο της διαδρομής ταιριάζει με τον λογαριασμό. Δύο άτομα που μοιράζονται έναν φορητό μοιράζονται επομένως έναν πίνακα, και το δεύτερο κληρονομεί όποια σήραγγα ξεκίνησε το πρώτο.

Επιβεβαιώστε ότι η εξαίρεση επιβίωσε από μια επανασύνδεση

Δοκιμάστε την αλλαγή με τον τρόπο που θα αποτύχει: αποσυνδεθείτε, επανασυνδεθείτε, ανοίξτε μια νέα εφαρμογή, μετά ζητήστε μία διεύθυνση που πρέπει να μείνει τοπική και μία που πρέπει να χρησιμοποιήσει τη σήραγγα. Συγκρίνετε και τις δύο με το Find-NetRoute σε συνδεδεμένη κατάσταση.

Αν το πρόθεμα λείπει από τον πίνακα μετά από επανασύνδεση, ζει στο λάθος αντικείμενο και όχι στη λάθος μορφή. Μετακινήστε το στη φυσική διεπαφή και επαναλάβετε τη δοκιμή. Κρατήστε και τις δύο εξόδους εντολών μαζί με το αρχείο αλλαγής, γιατί ένα στιγμιότυπο της κατάστασης που δουλεύει απαντά αργότερα σε περισσότερες ερωτήσεις από μια παράγραφο εξήγησης. Το επόμενο άτομο θα θέλει να μάθει τι παρήγαγε η σύνδεση, όχι τι σκοπεύατε να παράγει.

Σχετικά άρθρα