Ένα επάνω, μηδέν συνδεδεμένα: τι μετράει αυτή η γραμμή strongSwan
Η παλιά επικεφαλίδα μετράει συσχετίσεις IKE, όχι υποδίκτυα ή θυγατρικά SA, οπότε διαβάστε πρώτα τους φορτωμένους ορισμούς και τα εγκατεστημένα παιδιά.
Διαβάστε μια γραμμή κατάστασης που λέει Security Associations (1 up, 0 connecting) και μοιάζει με αναφορά για μία σήραγγα που λειτουργεί. Δύο υποδίκτυα περνούν κίνηση μέσα από αυτήν ταυτόχρονα, οπότε ο αριθμός φαίνεται να λέει ψέματα. Δεν λέει ψέματα· μετράει συσχετίσεις IKE, και μία από αυτές μπορεί να φιλοξενεί πολλά παιδιά. Διαβάστε τις απογραφές πριν αγγίξετε μια πρόταση ή μια διαδρομή.
Γιατί η επικεφαλίδα και η κίνηση διαφωνούν
Η παλιά έξοδος stroke ονομάζει το σύνολό της συσχετίσεις ασφαλείας και το παράγει από τον διαχειριστή συσχετίσεων IKE. Κάθε εδραιωμένη συσχέτιση IKE συνεισφέρει μία, ανεξάρτητα από το πόσα CHILD SA βρίσκονται από κάτω. Ένας μόνος γονέας IKEv2 φέρει συνήθως πολλά παιδιά, ένα ανά ζεύγος επιλογέων κίνησης, και οι διαπραγματευμένοι επιλογείς ενός παιδιού μπορούν να καλύπτουν περισσότερες από μία διευθύνσεις ή προθέματα. Επομένως ο αριθμός των διευθύνσεων στη διαμόρφωσή σας δεν έχει σταθερή σχέση με τον αριθμό στην επικεφαλίδα.
Η σύγχρονη έξοδος δείχνει μερικές φορές ένα σύνολο αντί για την παλιά διατύπωση “up”, και ένας δαίμονας υπό τη διαχείριση του swanctl δεν καθοδηγείται καθόλου από τις παλιές ρυθμίσεις stroke. Μην θεωρείτε δεδομένη ούτε τη διατύπωση ούτε τον κανόνα μέτρησης μεταξύ εκδόσεων.
Συγκρίνετε τρεις απογραφές πριν αλλάξετε οτιδήποτε
Ξεκινήστε με το τι είναι φορτωμένο, μετά με το τι έχει διαπραγματευτεί, μετά με το τι πραγματικά μετακινεί πακέτα. Αυτά είναι τρία διαφορετικά ερωτήματα και το καθένα έχει τη δική του εντολή.
swanctl --list-conns
swanctl --list-sas
Το πρώτο απαριθμεί ορισμούς συνδέσεων που δέχτηκε ο δαίμονας. Το δεύτερο απαριθμεί εδραιωμένες συσχετίσεις IKE με τα παιδιά τους, και εκεί εμφανίζεται η πραγματική ιεραρχία. Ένας ορισμός που υπάρχει σε αρχείο αλλά λείπει από την πρώτη λίστα δεν φορτώθηκε ποτέ, και κανένα πλήθος επαναλήψεων του εκκινητή δεν το διορθώνει. Αν αντίθετα τρέχετε την παλιά διεπαφή, το ισοδύναμο ζεύγος είναι ipsec statusall και η ίδια λίστα swanctl, ανάλογα με το ποιο πρόσθετο κατέχει τη διαμόρφωση. Μην ανακατεύετε εργαλεία μεταξύ δύο δαιμόνων σε έναν υπολογιστή και μην περιμένετε μία συνεκτική απάντηση.
swanctl --list-sas --raw | head -40
ip -s xfrm state
Η ακατέργαστη μορφή κρατά αναγνωριστικά και επιλογείς ορατά για σύγκριση, και η λίστα κατάστασης του πυρήνα δείχνει τι πιστεύει ότι εγκατέστησε η στοίβα. Όταν ο δαίμονας και ο πυρήνας διαφωνούν, είτε ο δαίμονας επανεκκινήθηκε γύρω από ένα υπάρχον παιδί είτε το αντικείμενο του πυρήνα αφαιρέθηκε από κάτω του.
Διαβάστε την ιεραρχία, όχι το σύνολο
Ένας ενδεικτικός εδραιωμένος γονέας με δύο παιδιά μοιάζει με έναν κόμβο με δύο παιδιά από κάτω, καθένα με τη δική του κατάσταση και λειτουργία. Εκτυπώστε την πραγματική έξοδο και μετρήστε τα παιδιά μόνοι σας αντί να διαβάζετε μια σύνοψη που κάποιος επικόλλησε από πίνακα ελέγχου.
swanctl --list-sas
swanctl --list-conns --raw | grep -A4 'accounting'
Ένας γονέας με δύο εγκατεστημένα παιδιά είναι μια υγιής σήραγγα δύο υποδικτύων. Ένας γονέας με ένα εγκατεστημένο και ένα απόν παιδί είναι διαφορετική κατάσταση, και οι επιλογείς του παιδιού που λείπει είναι αυτό που πρέπει να συγκριθεί με την πρόταση της απομακρυσμένης πλευράς. Κατά την ανανέωση κλειδιών, ένα παλιό παιδί και ο αντικαταστάτης του μπορούν να εμφανιστούν μαζί για ένα σύντομο διάστημα. Κρατήστε τη χρονική σήμανση μαζί με το στιγμιότυπο, γιατί μια μέτρηση στη μέση της ανανέωσης μοιάζει με διπλασιασμό και μια μέτρηση μετά μοιάζει με απώλεια.
Φορτωμένο, εγκατεστημένο και κίνηση που περνά
Ένα παιδί σε εγκατεστημένη κατάσταση έχει διαπραγματευμένες παραμέτρους και μια καταχώριση στον πυρήνα. Όμως δεν έχει απαραίτητα μεταφέρει πακέτο: οι επιλογείς μπορεί να είναι στενότεροι από την κίνηση που περιμένετε, και μια διαδρομή μπορεί να στείλει αυτή την κίνηση αλλού πριν τη δει ποτέ η σήραγγα. Στείλτε μια ροή που ταιριάζει με τους διαπραγματευμένους επιλογείς από εξουσιοδοτημένο υπολογιστή, και μετά διαβάστε τους μετρητές του παιδιού αντί για την επικεφαλίδα. Ένας μετρητής που μένει στο μηδέν ενώ παράγετε ταιριαστή κίνηση δείχνει δρομολόγηση ή πολιτική, όχι IKE.
swanctl --initiate --child accounting
swanctl --list-sas --raw | grep -E 'bytes|packets'
Η εκκίνηση ενός ονομασμένου παιδιού είναι σκόπιμη ενέργεια με ορατό αποτέλεσμα, και διαχωρίζει το “η σύνδεση είναι αδρανής επειδή κανείς δεν ζήτησε” από το “η σύνδεση δεν μπορεί να σηκωθεί”. Μια πολιτική παγίδας κατ’ απαίτηση συμπεριφέρεται ακριβώς όπως η πρώτη περίπτωση, οπότε διαβάστε τη ρύθμιση εκκίνησης της σύνδεσης πριν το ονομάσετε βλάβη.
Όταν ο αριθμός είναι πραγματικά λάθος
Αν ένας ορισμός λείπει από τη φορτωμένη απογραφή, κοιτάξτε τη φόρτωση της διαμόρφωσης και ποια παρουσία του δαίμονα τρέχει. Αν είναι φορτωμένος αλλά δεν διαπραγματεύεται ποτέ, συγκρίνετε προτάσεις, πλαίσιο πιστοποίησης και επιλογείς με τον ομότιμο, ένα παιδί τη φορά. Αλλάξτε ένα στοιχείο ανά προσπάθεια και καταγράψτε το αναγνωριστικό που αλλάξατε. Η επαναφορά μιας πρότασης είναι ασήμαντη όταν ξέρετε ποια είναι· είναι εικασία μετά από τρεις αλλαγές που δεν χωρίστηκαν ποτέ.
Διορθώστε πρώτα την εσφαλμένη ανάγνωση. Οι περισσότερες αναφορές για μια “απούσα” δεύτερη σήραγγα καταλήγουν με δύο εγκατεστημένα παιδιά κάτω από έναν γονέα, και το μόνο που ήταν ποτέ χαλασμένο ήταν η γραμμή σύνοψης που εμπιστεύονταν οι άνθρωποι αντί για την ιεραρχία.