Δύο γραμμές καταγραφής του OpenVPN ξεκινούν με τις ίδιες λέξεις και μόνο μία από αυτές αναφέρει πρόβλημα. Το Could not determine IPv4/IPv6 protocol. Using AF_INET είναι ειδοποίηση εναλλακτικής: το προφίλ άφησε την οικογένεια διευθύνσεων ανοιχτή, οπότε ο δαίμονας διάλεξε μία και συνέχισε. Ο κλάδος αποτυχίας αναφέρει ότι δεν δημιουργήθηκε socket και ζητά επανεκκίνηση. Ό,τι ακολουθεί το κοινό πρόθεμα τα χωρίζει, γι' αυτό διαβάστε πέρα από αυτό πριν αλλάξετε κάτι.

Τι αναφέρει η ειδοποίηση εναλλακτικής

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

Όταν αυτή η εξαγωγή λειτουργεί, η προειδοποίηση λέει προς ποια κατεύθυνση πήγε και η διεργασία προχωρά στη δημιουργία του socket. Ένας διακομιστής με proto udp σε κεντρικό υπολογιστή διπλού στοίβας καταλήγει συχνά έτσι σε IPv4. Τίποτα σε αυτή τη διαδρομή δεν είναι σφάλμα και τίποτα δεν υπονοεί επίθεση, απόντα διακομιστή ιστού ή απορριφθέντα λογαριασμό. Η γραμμή είναι χρήσιμη μόνο επειδή οι επόμενοι έλεγχοι πρέπει να συγκριθούν με την οικογένεια που ονομάζει.

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

Πώς μοιάζει ο κλάδος αποτυχίας

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

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

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

Ελέγξτε τον ακροατή αντί για την προειδοποίηση

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

ss -lunp | grep openvpn
ss -ltnp | grep openvpn

Ταιριάξτε την οικογένεια, τη διεύθυνση και τη θύρα με το προφίλ. Μια γραμμή 0.0.0.0:1194 είναι μόνο IPv4, ενώ μια γραμμή [::]:1194 σε κεντρικό υπολογιστή διπλού στοίβας μπορεί να δέχεται και τις δύο οικογένειες ανάλογα με τη ρύθμιση bindv6only. Αν το προφίλ λέει udp και το socket είναι IPv4, οι πελάτες των οποίων ο resolver επιστρέφει μόνο εγγραφή AAAA θα αποτύχουν πριν καν διαπραγματευτεί η σήραγγα.

Στη συνέχεια δοκιμάστε από πελάτη που μοιάζει με τους χρήστες σας: ίδια διαδρομή resolver, ίδιου είδους δίκτυο. Μια τοπική σύνδεση από τον διακομιστή αποδεικνύει ελάχιστα για κίνηση που διασχίζει συσκευή NAT ή κανόνα τείχους προστασίας γραμμένο για την άλλη οικογένεια.

Πότε είναι σωστό να επιβάλλετε οικογένεια

Το κάρφωμα του proto udp4 ταιριάζει σε ανάπτυξη μόνο IPv4: όνομα DNS μόνο A, κανόνες τείχους προστασίας για μία διεύθυνση v4, πελάτες πίσω από παρόχους που δίνουν μόνο διευθύνσεις v4. Αφαιρεί την ασάφεια και κάνει το επόμενο σύνολο γραμμών καταγραφής προβλέψιμο.

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

Επιλέξτε με βάση τα τελικά σημεία και τους πελάτες που πρέπει να τα φτάσουν. Το εγχειρίδιο του OpenVPN 2.6 τεκμηριώνει τις μορφές μεταφοράς, και το μήνυμα είναι το αποτέλεσμα αυτής της επιλογής, όχι είσοδός της.

Κρατήστε το αρχείο στενό

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

Οι προτάσεις πακέτων που φτάνουν μαζί με αυτή την προειδοποίηση είναι άσχετες μέχρι ένα σφάλμα να ονομάσει ένα απόν εκτελέσιμο.

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

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