Η πρώτη εκκίνηση αποτυγχάνει με μήνυμα για /dev/net/tun ή για συσκευή TUN/TAP που δεν ανοίγει. Τα πιστοποιητικά δεν έχουν διαβαστεί ακόμη, οπότε τίποτα στο προφίλ δεν είναι ύποπτο. Ο δαίμονας ζητά από τον πυρήνα ένα αντικείμενο που δεν έχει αυτός ο φιλοξενούμενος.

Αυτό το αντικείμενο είναι συσκευή χαρακτήρων που υποστηρίζεται από το άρθρωμα tun. Το αν μπορείτε να τη δημιουργήσετε εξαρτάται από το ποιος κατέχει τον πυρήνα.

Τι ζητά ο δαίμονας από τον πυρήνα

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

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

VM ή φιλοξενούμενος με κοινό πυρήνα

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

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

Εκτελέστε τα ls -l /dev/net/tun, lsmod | grep tun και ip -brief link show πριν αποφασίσετε σε ποια περίπτωση βρίσκεστε.

Σε VM, φορτώστε το άρθρωμα κατά την εκκίνηση

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

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

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

Σε κοντέινερ, ο κεντρικός υπολογιστής κατέχει τη συσκευή

Σε κοντέινερ, η συσκευή και η δυνατότητα είναι δύο ξεχωριστές απαιτήσεις. Το runtime πρέπει να περνά το /dev/net/tun και το κοντέινερ χρειάζεται τη δυνατότητα δικτύου για να δημιουργήσει διεπαφή. Ένα runtime χωρίς root που δεν παρέχει κανένα από τα δύο θα συνεχίζει να παράγει το ίδιο σφάλμα ανοίγματος ανεξάρτητα από το πώς είναι γραμμένο το προφίλ. Πολλοί κεντρικοί υπολογιστές OpenVZ εμφανίζουν διακόπτη TUN/TAP στο πάνελ πελάτη και η ενεργοποίησή του μαζί με επανεκκίνηση είναι συχνά όλη η λύση.

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

Γιατί η ανακατασκευή του αρθρώματος σπάνια βοηθά

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

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

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

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