Ο πελάτης VPN διαγράφει τη διαδρομή που προσθέσατε; Χρησιμοποιήστε πίνακα πολιτικής
Ο πελάτης επαναφέρει τις διαδρομές που κατέχει, οπότε μια χειροκίνητη καταχώριση εξαφανίζεται σε δευτερόλεπτα. Βάλτε την εξαίρεση σε πίνακα πολιτικής με προτίμηση κανόνα που κερδίζει.
Ένα /24 για έναν εκτυπωτή εργαστηρίου εξαφανίζεται ανάμεσα σε δύο κλήσεις ip route show, και το αρχείο καταγραφής του πελάτη λέει μόνο ότι το δίκτυο άλλαξε. Δεν υπήρχε τίποτα λάθος με την εντολή, το πρόθεμα ή τα προνόμιά σας. Ένας εταιρικός πελάτης που κατέχει το μοντέλο δρομολόγησης του κεντρικού υπολογιστή επαναφέρει αυτό το μοντέλο όποτε το επεξεργάζεται κάποιος άλλος, οπότε η καταχώριση που προσθέσατε αφαιρείται ως εισβολέας. Το να παλεύετε μαζί του στον ίδιο πίνακα είναι χαμένη θέση. Η λύση είναι να σταματήσετε εντελώς να ανταγωνίζεστε για αυτόν τον πίνακα και να βάλετε την εξαίρεση εκεί που ο παρακολουθητής δεν κοιτάζει ποτέ.
Ο παρακολουθητής εξηγεί τη χαμένη διαδρομή
Δείξτε το πριν ανασχεδιάσετε οτιδήποτε: διαβάστε τον πίνακα, προσθέστε το πρόθεμα, περιμένετε λίγα δευτερόλεπτα, διαβάστε ξανά. Αν η καταχώριση λείπει και δεν πληκτρολογήσατε τίποτα για να την αφαιρέσετε, κάποιος πράκτορας παρακολουθεί. Βρείτε τη διεργασία που κατέχει αυτή τη συμπεριφορά και διαβάστε το ημερολόγιό της γύρω από τη στιγμή που η διαδρομή εξαφανίζεται, γιατί η ίδια υπηρεσία συνήθως συντηρεί τη σήραγγα, τα φίλτρα πακέτων και τη ρύθμιση του resolver. Το να τη σκοτώσετε για να κρατήσετε τη διαδρομή σας είναι ένα αντιστάθμισμα που θα μετανιώσετε στην επόμενη επανασύνδεση.
ip route show
ip route add 192.168.2.0/24 dev enp0s31f6
sleep 5; ip route showΤο πρόθεμα και η διεπαφή παραπάνω είναι υποδείγματα. Η αντιγραφή ονόματος διεπαφής από ένα λειτουργικό παράδειγμα σε άλλο μηχάνημα είναι ο πιο συνηθισμένος λόγος που αυτή η επίδειξη δεν παράγει απολύτως τίποτα.
Ένας δεύτερος πίνακας είναι αόρατος στον παρακολουθητή
Ο πράκτορας ξαναχτίζει μόνο τον πίνακα που κατέχει. Δώστε στην εξαίρεση δικό της πίνακα συν έναν κανόνα που στέλνει εκεί τους αντίστοιχους προορισμούς, και ο κύριος πίνακας δεν αλλάζει ποτέ, οπότε δεν υπάρχει τίποτα για να διορθώσει ο πράκτορας. Αυτή είναι όλη η ιδέα: ένας χώρος ονομάτων διαδρομών που συντηρεί κάποιος άλλος και ένας που αγγίζετε μόνο εσείς.
Το αντιστάθμισμα είναι η συντήρηση. Δύο αντικείμενα μπορούν να αποκλίνουν, και η θέση του κανόνα στη λίστα μετράει όσο και η διαδρομή μέσα στον πίνακα που επιλέγει.
Χτίστε την εξαίρεση και μετά κάντε την να κερδίσει
Δημιουργήστε τον πίνακα, εγκαταστήστε τη διαδρομή και προσθέστε έναν κανόνα που επιλέγει τον πίνακα για αυτόν τον προορισμό. Η προτίμηση καθορίζει αν ο κανόνας σας εξετάζεται πριν ή μετά από αυτούς που εισήγαγε ο πελάτης, και ένας κανόνας που ταξινομείται αργότερα δεν φτάνει ποτέ, οπότε ο αριθμός είναι μέρος του σχεδιασμού και όχι διακόσμηση. Μετά ρωτήστε τον πυρήνα τι θα έκανε πραγματικά, που είναι διαφορετικό ερώτημα από το τι διαμορφώσατε.
ip rule add to 192.168.2.0/24 table 110 pref 30010
ip route add 192.168.2.0/24 dev enp0s31f6 table 110
ip route get 192.168.2.50Το ip route get επιλύει τη διαδρομή που θα χρησιμοποιούσε ο πυρήνας, συμπεριλαμβανομένης της συσκευής και της διεύθυνσης προέλευσης. Δεν εκτυπώνει το αναγνωριστικό του πίνακα, οπότε συνδυάστε το με το ip rule show όταν πρέπει να επιβεβαιώσετε ποιος πίνακας κέρδισε. Μαζί απαντούν το μόνο ερώτημα που έχει σημασία: φεύγει η κίνηση προς αυτή τη διεύθυνση από εκεί που σκοπεύατε;
Άλλες μορφές της ίδιας ιδέας
Το μοτίβο γενικεύεται μόλις σταματήσετε να σκέφτεστε με προορισμούς. Ένα τοπικό υποδίκτυο μπορεί να παραμείνει προσβάσιμο ενώ η σήραγγα κρατά την προεπιλεγμένη διαδρομή. Οι απαντήσεις από διακομιστή SSH συνδεδεμένο στο LAN μπορούν να βγαίνουν από τη διεπαφή από την οποία έφτασαν αντί να εξαφανίζονται στη σήραγγα. Και ένας κανόνας βάσει διεπαφής μπορεί να σπρώξει ό,τι φτάνει σε ασύρματη διεπαφή μέσα στη σήραγγα, ενώ η κίνηση που παράγει ο ίδιος ο κεντρικός υπολογιστής μένει στο Ethernet:
ip rule add iif wlan0 table 10
ip route add default dev tun0 table 10Η τελευταία περίπτωση ταιριάζει με την εισερχόμενη διεπαφή και όχι με τον προορισμό, που είναι άλλος τύπος κανόνα και άλλο νοητικό μοντέλο. Η προωθημένη κίνηση χρειάζεται επίσης ενεργό το net.ipv4.ip_forward, και το απομακρυσμένο άκρο πρέπει να δρομολογήσει το εύρος προέλευσης πίσω ή να το μεταφράσει· ένας κανόνας σε ένα μηχάνημα δεν δημιουργεί ποτέ το άλλο μισό της διαδρομής.
Αντιμετωπίστε τον κανόνα ως αναλώσιμο
Οι κανόνες και οι διαδρομές πινάκων ζουν στη μνήμη. Μετά από επανασύνδεση η συσκευή σήραγγας μπορεί να μετονομαστεί, η εκχωρημένη διεύθυνση μπορεί να μετακινηθεί, και ένας κανόνας με την παλιά τιμή σταματά σιωπηλά να ταιριάζει. Εφαρμόστε ξανά ολόκληρη την αλλαγή από ένα σενάριο που την κατέχει, και μετά ελέγξτε ξανά το ip rule show, το τρέχον όνομα συσκευής και ένα νέο ip route get σε σχέση με έναν πραγματικό προορισμό πριν εμπιστευτείτε την εξαίρεση.
Δύο όρια επιβιώνουν ανεξάρτητα από τη φροντίδα. Ο πελάτης εξακολουθεί να ελέγχει τους δικούς του κανόνες φιλτραρίσματος και τη ρύθμιση του resolver, και μια εξαίρεση δρομολόγησης δεν υπερισχύει κανενός από τα δύο. Αν ο πελάτης διαγράψει και τον κανόνα πολιτικής σας, οι υποστηριζόμενες οδοί είναι η δική του πολιτική διαχωρισμένης σήραγγας ή ένας πελάτης που σας αφήνει να διαχειρίζεστε διαδρομές, όπως το OpenConnect· το μπάλωμα ενός δυαδικού αρχείου προμηθευτή για να σιγήσει ο παρακολουθητής του είναι δέσμευση συντήρησης με έλεγχο ακεραιότητας συνημμένο.
Γράψτε τον αριθμό πίνακα, την προτίμηση και τον προορισμό σε σημείωση δίπλα στο σενάριο. Αλλιώς ο επόμενος άνθρωπος βρίσκει έναν κανόνα που υπερέχει της σήραγγας και δεν έχει τρόπο να μάθει γιατί.