Μετρική διαδρομής OpenVPN: γιατί η επιλεγμένη διαδρομή χάνει ακόμα
Μια μετρική ανά διαδρομή και το route-metric ορίζουν διαφορετικά πράγματα. Δείτε τη γραμμή του προφίλ, ελέγξτε τι εγκατέστησε ο πελάτης και καταλάβετε γιατί ένας μικρότερος αριθμός χάνει ακόμα.
Προσθέσατε μια μετρική σε μια διαδρομή στο προφίλ, επανασυνδεθήκατε και η κίνηση εξακολουθεί να βγαίνει από τη λάθος διεπαφή. Ο αριθμός σπάνια είναι το πρόβλημα. Μια μετρική απλώς ταξινομεί τους υποψηφίους που το λειτουργικό σύστημα ήδη συγκρίνει, και ένα πιο συγκεκριμένο πρόθεμα ή ένας προγενέστερος πίνακας πολιτικής αποφασίζει πριν διαβαστεί οποιαδήποτε μετρική.
Εξετάστε πρώτα το προφίλ, μετά τον εγκατεστημένο πίνακα και μετά τους κανόνες επιλογής. Αυτή η σειρά ταιριάζει με τον τρόπο που ο πελάτης χτίζει τη διαδρομή και σας εμποδίζει να ρυθμίζετε μια τιμή που δεν μπαίνει ποτέ στη σύγκριση.
Διαβάστε τη γραμμή διαδρομής με τη σειρά των πεδίων
Ένας πελάτης κοινότητας OpenVPN 2.6 δέχεται τέσσερα πεδία σε μια γραμμή route IPv4: δίκτυο, μάσκα δικτύου, πύλη και προαιρετική μετρική. Η θέση της πύλης είναι εκεί όπου πηγαίνει η ειδική λέξη-κλειδί vpn_gateway. Σημαίνει το επόμενο άλμα από την πλευρά VPN για αυτή τη σύνδεση, όχι αριθμό πίνακα δρομολόγησης και όχι τον φυσικό σας δρομολογητή. Αν το παραλείψετε, το υπόλοιπο της γραμμής διαβάζεται με λανθασμένη ιδέα για το τι κάνει. αναφορά επιλογών δικτύου τεκμηριώνει και τα τέσσερα πεδία.
Για έναν ιδιωτικό προορισμό η γραμμή μπορεί να γράφει:
route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30
Το ρητό 30 ισχύει για αυτή τη διαδρομή, και το 50 παραμένει η προεπιλογή για κάθε άλλη διαδρομή στο προφίλ που παραλείπει αριθμό. Η ανάγνωση της γραμμής από αριστερά προς τα δεξιά αρκεί για να δείξει ποια τιμή ισχύει και πού.
Το route-metric είναι προεπιλογή, όχι κατάταξη
Το route-metric ορίζει την εφεδρική τιμή για διαδρομές που δεν φέρουν δικό τους αριθμό. Δεν ανεβάζει μια διαδρομή πάνω από κάτι άλλο και δεν αναδιατάσσει διαδρομές που εγκαταστάθηκαν με ρητές μετρικές.
Αυτή η διάκριση μετράει όταν ένα προφίλ αναμειγνύει και τις δύο μορφές. Μια μόνη γραμμή route-metric κοντά στην κορυφή φαίνεται αξιόπιστη και είναι εύκολο να κατηγορηθεί, ενώ η διαδρομή που μεταφέρει πραγματικά κίνηση μπορεί να φέρει τη δική της μετρική τρεις γραμμές πιο κάτω.
Αν θέλετε μια διαδρομή να προτιμά ένα μονοπάτι, βάλτε τον αριθμό σε εκείνη τη διαδρομή. Αν θέλετε μια σταθερή προεπιλογή σε ένα παραγόμενο προφίλ, χρησιμοποιήστε το route-metric και αφήστε τις μεμονωμένες γραμμές ήσυχες. Η ανάμειξη των δύο χωρίς λόγο είναι ο τρόπος που ένα προφίλ καταλήγει με μια διαδρομή που κανείς δεν μπορεί να εξηγήσει.
Ελέγξτε τι εγκατέστησε ο πελάτης
Αφού ολοκληρωθεί η επανασύνδεση, ρωτήστε τον πυρήνα και όχι το προφίλ.
Το ip route show απαριθμεί τις διαδρομές που πρόσθεσε ο πελάτης, και το ip route get 172.20.5.10 απαντά στην πιο χρήσιμη ερώτηση: ποια διαδρομή θα χρησιμοποιούσε στην πραγματικότητα αυτός ο προορισμός και με ποια διεύθυνση προέλευσης. Αν ο προορισμός λείπει από τον πίνακα, ο πελάτης δεν τον εγκατέστησε.
Μια τοπική οδηγία, μια ώθηση από τον διακομιστή ή άλλος διαχειριστής δικτύου μπορούν να προσθέσουν ή να αφαιρέσουν το ίδιο πρόθεμα, και κερδίζει ο τελευταίος που γράφει. Κρατήστε τη διαδρομή του τελικού σημείου στο οπτικό σας πεδίο όσο εργάζεστε, γιατί η σύνδεση χρειάζεται ένα μονοπάτι προς τον απομακρυσμένο διακομιστή που δεν περνά από το τούνελ που χτίζει.
Γιατί μια μικρότερη μετρική χάνει ακόμα
Οι μετρικές συγκρίνουν διαδρομές προς τον ίδιο προορισμό. Δεν κάνουν ένα ευρύ πρόθεμα πιο συγκεκριμένο. Όταν παίζει το redirect-gateway def1, ο πελάτης εγκαθιστά το 0.0.0.0/1 και το 128.0.0.0/1, και αυτά τα δύο προθέματα καλύπτουν όλο τον χώρο IPv4 πιο συγκεκριμένα από το 0.0.0.0/0. Μια μετρική 1 στην προεπιλεγμένη διαδρομή δεν τα ξεπερνά.
Η ίδια λογική ισχύει για κάθε επικαλυπτόμενο ζεύγος. Ένα /24 κερδίζει ένα /16 για μια διεύθυνση μέσα του ανεξάρτητα από τους αριθμούς που επισυνάπτονται, γιατί η αναζήτηση επιλέγει πρώτα την πιο συγκεκριμένη αντιστοίχιση και μόνο μετά συγκρίνει μετρικές μεταξύ ίσων.
Αυτό είναι το μέρος που μοιάζει με σφάλμα μετρικής και δεν είναι. Ελέγξτε το μήκος του προθέματος και στους δύο υποψηφίους πριν αλλάξετε οποιονδήποτε αριθμό.
Οι κανόνες πολιτικής τρέχουν πριν από τον πίνακα
Στο Linux, το ip rule αποφασίζει ποιος πίνακας δρομολόγησης θα συμβουλευτεί. Οι κανόνες αξιολογούνται με σειρά προτεραιότητας, οπότε ένας προγενέστερος πίνακας μπορεί να επιστρέψει μια διαδρομή πριν διαβαστεί καν ο κύριος πίνακας. Μια μετρική μέσα στο main δεν μπορεί να ξεπεράσει μια αντιστοίχιση σε πίνακα που συμβουλεύτηκε πρώτος.
Χρησιμοποιήστε το ip rule show και μετά ρωτήστε τον συγκεκριμένο πίνακα, για παράδειγμα το ip route show table 100, για να δείτε τι θα επέστρεφε αυτός ο κανόνας. Αν ένας πελάτης VPN ή ένα περιβάλλον εκτέλεσης containers πρόσθεσε κανόνα, η απάντηση μπορεί να είναι εκεί και όχι στον πίνακα που διαβάζατε. Η διεύθυνση προέλευσης μετράει επίσης, γιατί ένας κανόνας μπορεί να ταιριάζει στην προέλευση και να επιλύει τον ίδιο προορισμό διαφορετικά για κίνηση τούνελ και κίνηση LAN.
Επαληθεύστε τον προορισμό, όχι την κατάταξη
Το τεστ που τελειώνει τη διαφωνία είναι ένα μόνο ερώτημα σε έναν κεντρικό υπολογιστή μέσα στο επιδιωκόμενο υποδίκτυο, μαζί με έλεγχο της διεύθυνσης προέλευσης που επέλεξε ο πυρήνας. Αν αυτό το ζεύγος ταιριάζει με το σχέδιο, η μετρική κάνει τη δουλειά της ακόμα και όταν η λίστα δεν μοιάζει με καθαρή κατάταξη.
Αφήστε το IPv6 και το DNS έξω από αυτόν τον έλεγχο. Ρυθμίζονται από διαφορετικές οδηγίες και επιλύονται με διαφορετικούς μηχανισμούς, και μια λειτουργική διαδρομή IPv4 δεν λέει τίποτα για κανένα από τα δύο. Αλλάξτε ένα επίπεδο τη φορά και εκτελέστε ξανά το ερώτημα.