Τι αλλάζει η δρομολόγηση πολιτικής στην κίνηση VPN και τι όχι
Οι κανόνες επιλέγουν ποιος πίνακας εξετάζεται, οπότε μια προεπιλεγμένη διαδρομή στον κύριο πίνακα συχνά δεν εξηγεί τίποτα. Διαβάστε προτεραιότητες, σημάνσεις και πηγές μαζί πριν προσθέσετε έναν κανόνα.
Η δρομολόγηση πολιτικής απαντά σε διαφορετικό ερώτημα από αυτό που θέτουν οι περισσότερες σημειώσεις αντιμετώπισης προβλημάτων. Ο κύριος πίνακας λέει πού πηγαίνει ένας προορισμός· οι κανόνες πολιτικής λένε ποιος πίνακας εξετάζεται καθόλου, και μπορούν να το αποφασίσουν από τη διεύθυνση προέλευσης, μια σήμανση πακέτου, ή από τη διεπαφή στην οποία έφτασε ένα πακέτο. Όταν μια σήραγγα συμπεριφέρεται ασυνεπώς, το σύνολο κανόνων είναι συχνά η αιτία και ο πίνακας δρομολόγησης συχνά όχι.
Οι κανόνες επιλέγουν τον πίνακα, έπειτα ο πίνακας επιλέγει τη διαδρομή
Κάθε κανόνας φέρει προτεραιότητα, συνθήκη αντιστοίχισης και πίνακα προορισμού. Ο πυρήνας διατρέχει τους κανόνες κατά σειρά προτεραιότητας και σταματά στην πρώτη αντιστοίχιση, έπειτα εκτελεί μια συνηθισμένη αναζήτηση μακρύτερου προθέματος σε αυτόν τον πίνακα. Ένας κανόνας που δείχνει σε κενό πίνακα πέφτει σε ό,τι επιλέξει ο επόμενος κανόνας, και έτσι ένας προσεκτικά γραμμένος κανόνας μπορεί να φαίνεται ότι δεν κάνει τίποτα.
Γι' αυτό η εκτύπωση του κύριου πίνακα σπάνια εξηγεί έναν πελάτη VPN που λειτουργεί. Οι πελάτες συνήθως εισάγουν κανόνες σε χαμηλούς αριθμούς προτεραιότητας, πολύ πριν από τον προεπιλεγμένο κανόνα του κύριου πίνακα, ώστε το πακέτο να μη φτάνει ποτέ στη διαδρομή που κοιτάζατε. Η μείωση μιας μετρικής στον κύριο πίνακα δεν αλλάζει τίποτα για κίνηση που έχει ήδη εκτραπεί.
Ένας κανόνας μπορεί επίσης να κάνει σκόπιμα ένα πρόθεμα μαύρη τρύπα ή μη προσπελάσιμο. Μερικοί πελάτες προσθέτουν έναν τέτοιο κανόνα ως διακόπτη ασφαλείας, και τότε η απόρριψη μοιάζει με σπασμένη σήραγγα παρά με ρυθμισμένη.
Διαβάστε το σύνολο κανόνων ως ακολουθία, όχι ως λίστα
Εκτυπώστε τους κανόνες με τις προτεραιότητες και τους πίνακες στους οποίους παραπέμπουν, και μετά εκτυπώστε κάθε πίνακα που φέρει προεπιλεγμένη διαδρομή ή διαδρομή σήραγγας. Η σειρά είναι το μέρος που μετράει, και είναι το μέρος που ένα στιγμιότυπο οθόνης συνήθως παραλείπει:
ip rule show ip route show table all | sed -n '1,60p' ip route get 198.51.100.20 from 10.8.0.2 ip route get 198.51.100.20 from 10.8.0.2 mark 0x1
Οι δύο τελευταίες εντολές είναι εκείνες που μετατρέπουν μια θεωρία σε παρατήρηση, επειδή ρωτούν τι θα έκανε ο πυρήνας για εκείνη την πηγή και εκείνη τη σήμανση. Αν η απάντηση αλλάζει όταν αλλάζει η σήμανση, ένας κανόνας με βάση τη σήμανση είναι σε ισχύ και κάθε δοκιμή που παραλείπει τη σήμανση δοκιμάζει διαφορετικό πακέτο. Η εξωτερική σύνδεση αξίζει δικό της κανόνα. Μια σήραγγα που δρομολογεί όλη την κίνηση μέσα από τον εαυτό της πρέπει να εξαιρεί τη διεύθυνση τελικού σημείου στην οποία συνδέεται, αλλιώς τα κρυπτογραφημένα πακέτα στέλνονται πίσω στη σήραγγα που μόλις άφησαν. Οι περισσότεροι πελάτες εισάγουν αυτή την εξαίρεση αυτόματα, και ένα χειροκίνητα επεξεργασμένο σύνολο κανόνων είναι το σημείο όπου λείπει.
Σημάνσεις και υποδοχές: δύο τρόποι με τους οποίους οι πελάτες χωρίζουν την κίνηση
Μερικοί πελάτες σημαίνουν πακέτα στο τείχος προστασίας και προσθέτουν έναν κανόνα που ταιριάζει με τη σήμανση. Άλλοι χρησιμοποιούν δρομολόγηση σε επίπεδο υποδοχής, ορίζοντας μια διαδρομή στην υποδοχή πριν συνδεθεί. Το πρώτο είναι ορατό στο ip rule· το δεύτερο δεν είναι, και δεν θα εμφανιστεί σε μια γενική αναζήτηση.
Αν ένα πρόγραμμα δοκιμής συμπεριφέρεται διαφορετικά από την εφαρμογή που υποτίθεται ότι αντιπροσωπεύει, ελέγξτε αν η εφαρμογή ορίζει σήμανση ή προσδένεται σε μια συσκευή. Αυτή η διαφορά δεν είναι μυστήριο μόλις ονομαστεί ο μηχανισμός, και εξηγεί γιατί ένα curl από ένα κέλυφος και μια καρτέλα προγράμματος περιήγησης μπορούν να ακολουθήσουν διαφορετικές διαδρομές στο ίδιο μηχάνημα. Και οι δύο τεχνικές είναι δρομολόγηση πολιτικής με την ευρεία έννοια: επιλέγουν μια διαδρομή με κάτι άλλο από τον προορισμό. Καμία από τις δύο δεν εξουσιοδοτεί την κίνηση, και καμία δεν υποκαθιστά τους κανόνες του τείχους προστασίας ή τα διαπιστευτήρια που περιμένει ο ομότιμος.
Ιχνηλατήστε την κυριότητα πριν προσθέσετε άλλον κανόνα
Οι κανόνες εγκαθίστανται από κάτι. Ένας πελάτης VPN, ένας διαχειριστής δικτύου και ένα χειρόγραφο σενάριο μπορούν καθένα να προσθέσει κανόνες κατά την εκκίνηση, και η λογική επανασύνδεσης μπορεί να αφήσει το προηγούμενο σύνολο πίσω. Δύο παρωχημένοι κανόνες από ένα προηγούμενο προφίλ θα συνεχίσουν να κατευθύνουν την κίνηση πολύ μετά τη διαγραφή του προφίλ.
Βρείτε ποια διεργασία κατέχει τον κανόνα από την προτεραιότητα και τη μορφή του, και ελέγξτε αν αυτός ο ιδιοκτήτης ξαναγράφει το σύνολο σε κάθε σύνδεση. Αν το κάνει, ένας χειροκίνητος κανόνας που προστέθηκε σήμερα εξαφανίζεται αύριο, και η διόρθωση ανήκει στη διαμόρφωση του πελάτη και όχι σε ένα αρχείο ιστορικού κελύφους. Το καθάρισμα ολόκληρου του συνόλου κανόνων για δοκιμή είναι ένας δελεαστικός συντομότερος δρόμος με προβλέψιμο κόστος: αφαιρεί επίσης τους κανόνες που χρειάζεται ο πελάτης για να κρατήσει τη δική του σήραγγα σε λειτουργία. Διαγράψτε έναν κανόνα κάθε φορά, ή δοκιμάστε σε ένα μηχάνημα που μπορείτε να επανεκκινήσετε.
Αποδείξτε το εύρος με δύο ροές, όχι με μία
Μια διόρθωση επαληθεύεται μόνο από μια ροή που πρέπει να επηρεαστεί και μια ροή που δεν πρέπει. Διαλέξτε έναν προορισμό που η πολιτική δρομολογεί στη σήραγγα, και έναν που πρέπει να μείνει έξω, και μετά συγκρίνετε τις αναζητήσεις και τις συλλήψεις για τους δύο:
ip route get 198.51.100.20 from 192.0.2.44 ip route get 198.51.100.21 from 192.0.2.44 tcpdump -ni any host 198.51.100.21 and port 443
Όταν οι δύο αναζητήσεις επιστρέφουν διαφορετικές διεπαφές, ο κανόνας κάνει κάτι. Όταν επιστρέφουν την ίδια διεπαφή, ο κανόνας ταιριάζει ευρύτερα από το επιδιωκόμενο, και αυτή είναι η αστοχία που στέλνει ήσυχα ένα ολόκληρο υποδίκτυο μέσα από μια σήραγγα που προοριζόταν για μία εφαρμογή.
Καταγράψτε τις προτεραιότητες των κανόνων και την υπηρεσία που τους κατέχει στο δελτίο, μαζί με τις δύο διευθύνσεις δοκιμής. Ο επόμενος άνθρωπος έχει τότε ένα αναπαραγώγιμο ζεύγος αντί για μια περιγραφή συμπτώματος, και μπορεί να πει σε ένα λεπτό αν η δρομολόγηση πολιτικής είναι ακόμη σε ισχύ.