Στατικές διευθύνσεις πελατών OpenVPN πίσω από το OPNsense
Ένα αρχείο pool κάνει μια διεύθυνση κολλώδη, όχι μόνιμη. Καρφώστε τις διευθύνσεις των πελατών με παρακάμψεις, φαρδύνετε το εύρος της σήραγγας για την αριθμητική του /30 και μετά δημοσιεύστε τες.
Τα ονόματα χρειάζονται διευθύνσεις που δεν μετακινούνται, και το αρχείο pool του OpenVPN κάνει μια διεύθυνση απλώς κολλώδη. Χάστε αυτό το αρχείο ή επανεκδώστε ένα πιστοποιητικό με διαφορετικό κοινό όνομα, και ο πελάτης που επιστρέφει προσγειώνεται αλλού στο pool, ενώ η εγγραφή DNS του δείχνει ακόμη την παλιά διεύθυνση. Η ανθεκτική απάντηση είναι μια παράκαμψη ειδική για τον πελάτη που καρφώνει τη διεύθυνση, μαζί με φαρδύτερο δίκτυο σήραγγας ώστε οι καρφωμένες διευθύνσεις να βρίσκονται έξω από το δυναμικό εύρος. Η αριθμητική πίσω από αυτή τη φάρδυνση είναι εκεί όπου ζει το μεγαλύτερο μέρος της σύγχυσης.
Το OPNsense κρατά αυτές τις παρακάμψεις στις ρυθμίσεις διακομιστή που είναι ειδικές για τον πελάτη, με κλειδί το κοινό όνομα του πιστοποιητικού, κάτι που κάνει το κοινό όνομα μέρος του σχεδίου διευθύνσεων.
Μια κολλώδης μίσθωση δεν είναι στατική διεύθυνση
Το αρχείο pool γράφει αντιστοιχίσεις διεύθυνσης-προς-πελάτη και τις επιστρέφει όταν ένας γνωστός πελάτης επανασυνδέεται. Αυτό είναι ευκολία και όχι συμβόλαιο: το αρχείο μπορεί να αναγεννηθεί, η αντιστοίχιση εξαφανίζεται όταν αλλάξει η ταυτότητα του πελάτη, και δύο διακομιστές που μοιράζονται ένα pool δεν θα συμφωνήσουν γι' αυτό. Μια παράκαμψη ειδική για τον πελάτη λειτουργεί διαφορετικά, γιατί η διεύθυνση προέρχεται από τη διαμόρφωση και όχι από το ιστορικό. Επιβιώνει επίσης από επανεκκίνηση και επανεγκατάσταση της συσκευής, αρκεί η παράκαμψη να έχει αντίγραφο ασφαλείας μαζί με την υπόλοιπη διαμόρφωση.
Η δυναμική εναλλακτική, δηλαδή η σύνδεση του VPN με το DNS μέσω σεναρίου client-connect και δυναμικών ενημερώσεων, λειτουργεί και απαιτεί έναν resolver που δέχεται ενημερώσεις συν ένα σενάριο σε κάθε σύνδεση. Σε μια συσκευή περιορίζεστε στα πακέτα που παρέχει ο κατασκευαστής, και συνήθως εκεί σταματά αυτό το σχέδιο.
Η αριθμητική του /30 που δεν απολαμβάνει κανείς
Στην προεπιλεγμένη τοπολογία net30, κάθε πελάτης παίρνει το δικό του /30: η πρώτη χρησιμοποιήσιμη διεύθυνση πηγαίνει στην πλευρά του διακομιστή, η δεύτερη στον πελάτη. Οι παρακάμψεις πρέπει επομένως να βρίσκονται έξω από το δυναμικό δίκτυο σήραγγας του διακομιστή, που σημαίνει να φαρδύνουμε πρώτα αυτό το δίκτυο. Ένας διακομιστής στο 10.8.0.0/24 μπορεί να μετακινηθεί στο 10.8.0.0/23, αφήνοντας το μισό του παλιού εύρους για δυναμικούς πελάτες και το άλλο μισό για παρακάμψεις. Προσθέστε το αρχικό /24 ως επιπλέον τοπικό δίκτυο IPv4 ώστε η κίνηση και προς τα δύο μισά να δρομολογείται στη σήραγγα.
Κάθε διεύθυνση παράκαμψης πρέπει να πέφτει σε όριο /30, άρα το τελευταίο οκτέτο είναι πολλαπλάσιο του τέσσερα. Ένα /30 στο 10.8.1.0 δίνει στον πελάτη το 10.8.1.2, και αυτή είναι η διεύθυνση που φέρει η εγγραφή DNS. Η επιλογή του 10.8.1.3 αντί γι' αυτό παράγει έναν πελάτη που συνδέεται και δεν μπορεί να περάσει κίνηση, γιατί η διεύθυνση ανήκει σε υποδίκτυο που η τοπολογία ποτέ δεν του ανέθεσε.
Το σχέδιο διατηρείται ευκολότερα αν οι παρακάμψεις κατανέμονται από την κορυφή του φαρδυμένου εύρους προς τα κάτω, ώστε το δυναμικό pool να επεκτείνεται στον ελεύθερο χώρο και όχι γύρω από σταθερά νησιά.
Τοπικά δίκτυα και η ζώνη που ρωτούν οι πελάτες
Η κίνηση από πελάτη σε πελάτη χρειάζεται τη δική της άδεια. Η λίστα τοπικών δικτύων IPv4 του διακομιστή πρέπει να περιλαμβάνει και τα δύο μισά του εύρους, δυναμικό και στατικό· χωρίς αυτήν ο διακομιστής δέχεται ένα πακέτο από έναν πελάτη και δεν έχει πολιτική που να επιτρέπει να περάσει σε άλλον. Το σύμπτωμα μοιάζει με αποτυχία DNS, γιατί το όνομα επιλύεται και η σύνδεση αποτυγχάνει παρ' όλα αυτά. Ελέγξτε και τη ρύθμιση από πελάτη σε πελάτη ταυτόχρονα, αφού μια καταχώριση τοπικού δικτύου μόνη της δεν ενεργοποιεί προώθηση μεταξύ ομότιμων.
Δημοσιεύστε τις εγγραφές στη ζώνη που ρωτούν πραγματικά οι απομακρυσμένοι πελάτες. Μια εγγραφή σε ζώνη που εξυπηρετείται μόνο από τον resolver του LAN είναι αόρατη σε πελάτη του οποίου ο pushed resolver δείχνει αλλού, και η προσθήκη περισσότερων εγγραφών σε λάθος ζώνη δεν το διορθώνει ποτέ. Επιβεβαιώστε την pushed επιλογή DNS και τον τομέα αναζήτησης πριν προσθέσετε οτιδήποτε.
Τι να ελέγξετε σε μια νέα σύνδεση
Επανασυνδέστε τον πελάτη και επιβεβαιώστε ότι η εκχωρημένη διεύθυνση ταιριάζει με την παράκαμψή του πριν δοκιμάσετε οτιδήποτε άλλο. Έπειτα επιλύστε το όνομα από έναν δεύτερο πελάτη και συνδεθείτε στην υπηρεσία με το όνομα, κάτι που δοκιμάζει μαζί την εγγραφή DNS, τη διαδρομή και το τείχος προστασίας. Επιβεβαιώστε τη διαδρομή απάντησης στην πλευρά του διακομιστή, αφού ένα όνομα που επιλύεται ενώ η υπηρεσία μένει απρόσιτη είναι πρόβλημα δρομολόγησης ή πολιτικής και όχι ονοματοδοσίας. Κρατήστε τον πίνακα παρακάμψεων δίπλα στη λίστα πιστοποιητικών ώστε και τα δύο να ελέγχονται μαζί.
Ένα πιστοποιητικό που επανεκδίδεται με διαφορετικό κοινό όνομα παύει να ταιριάζει με την παράκαμψή του και επιστρέφει τον πελάτη στο δυναμικό pool. Να το περιμένετε μετά από οποιαδήποτε αλλαγή ταυτότητας.