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

Γράψτε αυτόν τον χάρτη μία φορά, και οι περισσότερες αποτυχίες επανασύνδεσης παύουν να είναι μυστηριώδεις. Τέσσερα αντικείμενα μετράνε: η συσκευή και οι διευθύνσεις της, οι διαδρομές και οι κανόνες πολιτικής, η διαμόρφωση DNS και το firewall.

Η συσκευή και οι διευθύνσεις της

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

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

Διαδρομές και κανόνες πολιτικής

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

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

Το DNS είναι πάντα ξεχωριστός ιδιοκτήτης

Ένας δαίμονας resolver τρέχει ως δική του διεργασία υπό τη δική του ταυτότητα, οπότε δεν κληρονομεί κατά λάθος τις αποφάσεις δρομολόγησης της σήραγγας. Όταν το VPN σπρώχνει διακομιστές DNS, κάτι πρέπει να το μετατρέψει σε διαμόρφωση ανά σύνδεσμο που ο resolver σέβεται, και κάτι πρέπει να την αφαιρέσει μετά.

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

Η κατάσταση του firewall, και ποιος την αποκαθιστά

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

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

Κύκλος ζωής: εκκίνηση, επανασύνδεση, αποσυναρμολόγηση

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

Για παρατήρηση, το ip monitor link address route δείχνει τις αλλαγές του πυρήνα καθώς συμβαίνουν, αλλά αναφέρει γεγονότα αντί για πρόθεση: μια διαγραμμένη διαδρομή δεν λέει τίποτα για το ποια διεργασία τη διέγραψε. Συνδυάστε το με τον χάρτη ιδιοκτησίας, και ένα μπερδεμένο τερματισμό γίνεται μια σύντομη λίστα υποψηφίων.

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

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