Βοηθός διακομιστή OpenVPN: δίκτυο συν μάσκα, ποτέ CIDR
Ο βοηθός διακομιστή IPv4 δέχεται ένα ευθυγραμμισμένο δίκτυο και μια μάσκα με τελείες, όχι ένα επίθημα CIDR. Ελέγξτε το εύρος, επιβεβαιώστε τη δεξαμενή στο αρχείο καταγραφής και μετά αλλάξτε το μέγεθος με ασφάλεια.
Μια γραμμή διακομιστή που αναμειγνύει ένα επίθημα CIDR με μάσκα με τελείες σταματά τον δαίμονα πριν ανοίξει καν θύρα. Ο βοηθός server για IPv4 θέλει δύο ξεχωριστά ορίσματα: μια ευθυγραμμισμένη διεύθυνση δικτύου και μετά τη μάσκα δικτύου σε μορφή με τελείες. Όλα τα άλλα σε αυτή τη γραμμή είναι υπόθεση, και στην υπόθεση πάνε λάθος τα μεγέθη δεξαμενών και οι μάσκες πελατών.
Τα δύο ορίσματα που δέχεται ο βοηθός
Γράψτε πρώτα το δίκτυο και μετά τη μάσκα, χωρίς τίποτα κολλημένο στη διεύθυνση:
server 10.72.16.0 255.255.240.0Αυτή είναι η μορφή για ένα /20. Η γραμμή παρακάτω είναι το λάθος, και αποτυγχάνει κατά την ανάλυση επιλογών, όχι κατά την εκτέλεση:
server 10.72.16.0/20 255.255.240.0Κρατήστε τις δύο ιδέες χωριστά όταν το αποσφαλματώνετε. Το μήκος προθέματος και η μάσκα με τελείες περιγράφουν το ίδιο εύρος, αλλά ο βοηθός δεν δέχεται και τα δύο μαζί, και μια απορριφθείσα γραμμή παράγει σφάλμα επιλογών που ονομάζει την οδηγία και όχι την αριθμητική.
Ευθυγραμμίστε το δίκτυο πριν πληκτρολογήσετε τη μάσκα
Η πρώτη διεύθυνση είναι η διεύθυνση δικτύου του εύρους, όχι μια βολική διεύθυνση πελάτη μέσα σε αυτό. Για ένα /20 το εύρος εκτείνεται από 10.72.16.0 έως 10.72.31.255, και μόνο η πρώτη από αυτές είναι έγκυρο όρισμα δικτύου. Ένα /21 χρησιμοποιεί 255.255.248.0 και καλύπτει από 10.72.16.0 έως 10.72.23.255, οπότε η γραμμή του είναι server 10.72.16.0 255.255.248.0.
Η αλλαγή του προθέματος αλλάζει το εύρος και τίποτα άλλο. Δεν αλλάζει πόσες διευθύνσεις λαμβάνει ένας πελάτης, γιατί αυτό είναι ιδιότητα της τοπολογίας, όχι της μάσκας σε αυτή τη γραμμή.
Επιβεβαιώστε τη δεξαμενή από την πλευρά του διακομιστή
Ξεκινήστε το στιγμιότυπο στο προσκήνιο με λεπτομερή καταγραφή και διαβάστε τις γραμμές που εκπέμπει ο βοηθός. Η δεξαμενή που έχτισε εκτυπώνεται κατά την εκκίνηση, κάτι πιο αξιόπιστο από το να υπολογίζετε την αριθμητική με το χέρι:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Αναζητήστε τη σύνοψη της δεξαμενής κοντά στην κορυφή της εξόδου. Απαριθμεί το εύρος που επιφύλαξε ο βοηθός, και αν αυτό το εύρος δεν ταιριάζει με την πρόθεσή σας, τα ορίσματα στη γραμμή είναι λάθος ό,τι κι αν λέει η αριθμητική της μάσκας.
Έπειτα συνδέστε έναν πελάτη και βρείτε τη γραμμή που καταγράφει τη διεύθυνση που του δόθηκε. Αυτή η μία διεύθυνση, δίπλα στο εύρος της δεξαμενής, σας λέει αν ο πελάτης προσγειώθηκε μέσα στο δεσμευμένο μπλοκ ή κάπου που δεν περιμένατε. Αν τα δύο διαφωνούν, διορθώστε τα ορίσματα και όχι τον πελάτη. Αν συμφωνούν και ο πελάτης ακόμη δεν φτάνει πουθενά, η δεξαμενή δεν ήταν ποτέ το πρόβλημα.
Διαβάστε τη μάσκα του πελάτη με την τοπολογία στο μυαλό
Ένας πελάτης που δείχνει /30 στη διεπαφή τούνελ του δεν είναι απόδειξη χαλασμένης δεξαμενής. Στη διευθυνσιοδότηση σημείου προς σημείο κάθε πελάτης παίρνει ένα μικρό μπλοκ και η μάσκα της διεπαφής του περιγράφει αυτό το μπλοκ, ενώ η δεξαμενή του διακομιστή καλύπτει το σύνολο. Σε τοπολογία υποδικτύου η μάσκα του πελάτη ταιριάζει αντίθετα με τη μάσκα της δεξαμενής. Επομένως η μάσκα μόνη της λέει ποια τοπολογία ισχύει, όχι αν η δεξαμενή γράφτηκε σωστά.
Ελέγξτε την τοπολογία που έχει ρυθμιστεί και τη διεύθυνση που έχει εκχωρηθεί μαζί πριν βγάλετε συμπέρασμα:
ip -4 addr show tun0Αν η διεύθυνση είναι μέσα στη δεξαμενή και η μάσκα είναι στενότερη από τη δεξαμενή, αυτό είναι η τοπολογία που κάνει τη δουλειά της. Αν η διεύθυνση είναι έξω από τη δεξαμενή, η δεξαμενή είναι λάθος, και καμία επιθεώρηση από την πλευρά του πελάτη δεν θα το διορθώσει.
Αλλαγή ζωντανής δεξαμενής
Διαλέξτε ένα εύρος που δεν επικαλύπτει την τρέχουσα δεξαμενή, το LAN ή οποιαδήποτε διαδρομή έχει ήδη προωθηθεί στους πελάτες. Η επικάλυψη είναι η αστοχία που επιβιώνει από μια επανεκκίνηση και μετά, μέρες αργότερα, εμφανίζεται ως μία τοποθεσία απρόσιτη από μία κατεύθυνση.
Αλλάξτε τη γραμμή, επανεκκινήστε και ξαναδιαβάστε τη δεξαμενή εκκίνησης πριν αφήσετε τους χρήστες να επιστρέψουν. Αν το νέο εύρος συγκρούεται με κάτι, η ίδια έξοδος εκκίνησης το δείχνει αμέσως, και η επαναφορά είναι μια αλλαγή μιας γραμμής συν άλλη μια επανεκκίνηση.
Κρατήστε το παλιό εύρος δεσμευμένο για λίγο μετά την αλλαγή. Πελάτες που συνδέονται αργά μπορούν ακόμη να κρατούν διεύθυνση από την προηγούμενη δεξαμενή, και ένα νέο εύρος που επαναχρησιμοποιεί αυτές τις διευθύνσεις παράγει διπλές εκχωρήσεις που μοιάζουν με βλάβη δρομολόγησης. Το εγχειρίδιο του OpenVPN 2.6 τεκμηριώνει τα ορίσματα του βοηθού και την επέκτασή του, κάτι που αξίζει να διαβάσετε πριν υποθέσετε ότι μια οδηγία χρησιμοποιεί την ίδια σημειογραφία με τη γειτόνισσά της.