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

Τρεις προορισμοί που χρειάζονται διαφορετικούς φορείς

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

Destination classView that names the carrierCommand that proves itSymptom when the wrong carrier wins
Outer peer, 198.51.100.10the main table, by destinationip route get 198.51.100.10the outer handshake never completes
Inner peer, 203.0.113.7the main table once the outer tunnel is upip route get 203.0.113.7the inner handshake leaves over the physical link
Application destination, 172.30.9.1the table the inner client's traffic is selected intoip route get 172.30.9.1 from 10.8.0.2the exit address looks right and the traffic never crossed the outer hop
Parallel tunnels, one per source groupone policy per group, not the main tableip rule show beside a marked test connectionboth tunnels are up and one steals the other's traffic

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

Οι διευθύνσεις έχουν ρόλους, όχι πλήθος

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

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

ip -4 addr show
ip -4 route show table all
ip rule show

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

Η σειρά ενεργοποίησης νικά μια σταθερή αναμονή

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

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

Κρατήστε τη μεταφορά κάθε πελάτη έξω από τη διαδρομή εφαρμογής του άλλου, και να είστε ακριβείς για το τι υπόσχονται πραγματικά οι επιλογές δρομολόγησης του OpenVPN 2.6. Ο τεκμηριωμένος μηχανισμός προεπιλεγμένης ανακατεύθυνσης κρατά έναν πελάτη σε θέση να φτάνει τον δικό του απομακρυσμένο ομότιμο μέσω της πύλης που υπήρχε ήδη, κάτι που κόβει έναν συγκεκριμένο βρόχο αναδρομής. Δεν μετατρέπει έναν πελάτη σε φορέα ενός άλλου, οπότε το υπόλοιπο της αλυσίδας παραμένει δικός σας σχεδιασμός. Όπου η αλυσίδα χρειάζεται πολιτική αντί για διαδρομή, γράψτε έναν ρητό κανόνα πηγής ή σήματος και δοκιμάστε τον με την κίνηση που προορίζεται να ταιριάξει.

Τι συμβαίνει όταν πεθαίνει το εξωτερικό άλμα

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

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

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

Δεχτείτε κάθε επίπεδο με τη σειρά που το χτίσατε

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

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

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