Συνδέετε τη σήραγγα, εκτελείτε ip route, και η αρχική προεπιλεγμένη πύλη είναι ακόμη εκεί. Η επόμενη σκέψη είναι ότι ο πελάτης δεν ανέλαβε τη διαδρομή, οπότε διαγράφετε την προεπιλεγμένη με το χέρι και χάνετε εντελώς τη συνδεσιμότητα. Αυτή η καταχώριση πρέπει να μείνει. Με redirect-gateway def1, το OpenVPN εγκαθιστά δύο πιο συγκεκριμένες διαδρομές που υπερτερούν της συνηθισμένης προεπιλεγμένης αντί να την αντικαταστήσουν. Η παλιά πύλη μένει και σταματά να μεταφέρει την κίνηση που δοκιμάζατε.

Τι κάνει στην πραγματικότητα το def1

Η σημαία προσθέτει τις 0.0.0.0/1 και 128.0.0.0/1, και οι δύο προς τη σήραγγα. Η 0.0.0.0/1 πιάνει κάθε διεύθυνση της οποίας το πρώτο οκτέτο είναι 0 έως 127, και η 128.0.0.0/1 πιάνει 128 έως 255, άρα κάθε προορισμός IPv4 έχει αντιστοίχιση πιο συγκεκριμένη από την παλιά προεπιλεγμένη. Το μήκος του προθέματος, όχι η μετρική, καθορίζει ποια διαδρομή κερδίζει.

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

Γιατί /1 και όχι /0

Η δρομολόγηση επιλέγει το μακρύτερο ταιριαστό πρόθεμα, όχι τη χαμηλότερη μετρική, άρα μια /1 νικά μια /0 ό,τι κι αν λέει η μετρική της προεπιλεγμένης. Και τα δύο μισά υπάρχουν επειδή μια /1 καλύπτει μόνο το μισό του χώρου· με μόνο την 0.0.0.0/1 παρούσα, ό,τι είναι από 128.0.0.0 και πάνω ακολουθεί ακόμη την παλιά προεπιλεγμένη, κάτι που δημιουργεί το μπερδεμένο σύμπτωμα όπου μερικοί ιστότοποι λειτουργούν και άλλοι όχι.

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

Διαβάστε έναν πραγματικό πίνακα δρομολόγησης

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

default via 192.168.50.1 dev wlan0
0.0.0.0/1 via 10.8.0.1 dev tun0
128.0.0.0/1 via 10.8.0.1 dev tun0

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

Ελέγξτε ποια διαδρομή παίρνει πραγματικά το πακέτο

Πιο συγκεκριμένες διαδρομές μπορούν ακόμη να κερδίσουν: μια διαδρομή για ιδιωτικό εύρος, τοπικό υποδίκτυο ή η ίδια η διεύθυνση του διακομιστή VPN είναι μακρύτερη από μια /1. Η σήραγγα χρειάζεται μια εξωτερική διαδρομή προς τον διακομιστή της, και το να σταλεί αυτή η σύνδεση πίσω στη σήραγγα θα τη σπάσει αμέσως. Στο Linux ρωτήστε τον πυρήνα αντί να διαβάζετε τον πίνακα με το μάτι: το ip route get με τον προορισμό που σας ενδιαφέρει εκτυπώνει τη διαδρομή που επιλέχθηκε, τη διεπαφή και την πηγή. Αν είναι ρυθμισμένη δρομολόγηση βάσει πολιτικής, ελέγξτε και τους κανόνες, επειδή ένας κανόνας μπορεί να επιλέξει άλλο πίνακα πριν συμβουλευτεί τον κύριο.

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

Τι δεν καλύπτει το def1

Δύο καταχωρίσεις IPv4 δεν λένε τίποτα για το IPv6: ένας υπολογιστής με συνδεσιμότητα IPv6 συνεχίζει να χρησιμοποιεί τη δική του προεπιλεγμένη ώσπου κάτι να ανακατευθύνει αυτή την οικογένεια χωριστά, γι’ αυτό σε δίκτυο διπλής στοίβας μέρος της κίνησης φαίνεται να παρακάμπτει τη σήραγγα. Άλλοι πελάτες και διαχειριστές δικτύου υλοποιούν τη δρομολόγηση πλήρους σήραγγας διαφορετικά, και οι πίνακές τους δεν θα ταιριάξουν. Η συμπεριφορά def1 που περιγράφεται εδώ ανήκει στη τεκμηριωμένη σημαία του OpenVPN, όχι σε κάθε VPN στο μηχάνημα.

Ένας διακόπτης ασφαλείας απαντά σε άλλη ερώτηση: τι κάνει το μηχάνημα όταν πέσει η σήραγγα. Η προτεραιότητα δρομολόγησης καθορίζει πού πηγαίνει η κίνηση όσο η σήραγγα είναι ενεργή· δεν καθορίζει τι κάνει μετά ένα τείχος προστασίας. Σειρά εργασίας: διαβάστε τον πίνακα, επιβεβαιώστε ότι υπάρχουν και τα δύο μισά, εκτελέστε ip route get για τον προορισμό που αποτυγχάνει, ελέγξτε τους κανόνες πολιτικής και μετά δείτε το IPv6 χωριστά. Αφήστε την παλιά προεπιλεγμένη εκεί που είναι.

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