Το «OpenVPN failover» στο pfSense καλύπτει τουλάχιστον τρεις άσχετες μεταξύ τους σχεδιάσεις και καθεμία απαιτεί διαφορετικό μηχανισμό. Το να κρατάς ένα τούνελ ζωντανό μέσω εφεδρικής σύνδεσης internet, το να επανασυνδέεσαι σε άλλον διακομιστή και το να διοχετεύεις κίνηση LAN σε άλλο ήδη εγκατεστημένο τούνελ δεν είναι παραλλαγές μιας λειτουργίας. Διαλέξτε την αστοχία από την οποία αμύνεστε πριν χτίσετε μια ομάδα πυλών. Μια ομάδα που διορθώνει μία από αυτές δεν κάνει τίποτα για τις άλλες δύο.

Ονομάστε την αστοχία πριν χτίσετε μια ομάδα

Γράψτε την πρόταση που θέλετε να ισχύει κατά τη διάρκεια μιας διακοπής. «Το τούνελ επανασυνδέεται μέσω του εφεδρικού WAN» και «το υποκατάστημα εξακολουθεί να φτάνει την εφαρμογή μέσω του άλλου τούνελ» είναι διαφορετικές προτάσεις. Μόνο η πρώτη αφορά τη μεταφορά.

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

Τοπικό WAN: μετακίνηση της μεταφοράς

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

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

Ένας κανόνας δρομολόγησης βάσει πολιτικής για προωθούμενα πακέτα LAN δεν είναι η ρύθμιση που μετακινεί μια τοπικά παραγόμενη σύνδεση μεταφοράς VPN. Πρόκειται για δύο διαφορετικές αναζητήσεις και η αλλαγή της μίας δεν αλλάζει την άλλη.

Απομακρυσμένο άκρο: άλλος διακομιστής

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

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

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

Διαδρομή τούνελ: επιλογή άλλης εξόδου

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

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

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

Επόπτες, NAT και ο κανόνας fail-closed

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

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

Έπειτα αποφασίστε τι συμβαίνει με την κίνηση που δεν πρέπει ποτέ να χρησιμοποιεί το WAN. Το pfSense έχει καθορισμένη συμπεριφορά για κανόνες των οποίων η επιλεγμένη πύλη είναι κάτω και ένας μεταγενέστερος ευρύς κανόνας διέλευσης ή μια προεπιλεγμένη διαδρομή μπορεί να ακυρώσει την πρόθεσή σας. Γράψτε το μπλοκαρισμένο αποτέλεσμα ως απαίτηση και επαληθεύστε το κατεβάζοντας τη διαδρομή.

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

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