Κάποιος ρωτά αν το VPN είναι ενεργό, και τρεις διαφορετικοί άνθρωποι εννοούν τρία διαφορετικά πράγματα. Ένας χειριστής εννοεί ότι το προφίλ Office ολοκλήρωσε την αυθεντικοποίηση. Ένας προγραμματιστής εργασιών εννοεί ότι το ιδιωτικό API θα απαντήσει. Ένας έλεγχος ασφαλείας εννοεί ότι αυτό το συγκεκριμένο αίτημα βγήκε από την προστατευμένη διαδρομή. Ένα σενάριο που ψάχνει με grep στον πίνακα δρομολόγησης για όνομα διεπαφής δεν απαντά αξιόπιστα σε κανένα από αυτά.

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

Ονομάστε το υποκείμενο πριν από την εντολή

Γράψτε την ερώτηση ως κατηγόρημα με υποκείμενο. «Το προφίλ Office είναι συνδεδεμένο» είναι ελέγξιμο και έχει ιδιοκτήτη που μπορεί να απαντήσει. «Αυτή η εργασία μπορεί να φτάσει στο εσωτερικό API» είναι δεύτερο κατηγόρημα με διαφορετικό τρόπο αποτυχίας. «Αυτό το αίτημα χρησιμοποιεί την προστατευμένη διαδρομή» είναι τρίτο, και είναι το μόνο που μιλά για μία μόνο ροή και όχι για ολόκληρο το μηχάνημα.

Η ανάμειξή τους παράγει αυτοματοποίηση που λέει ψέματα με σιγουριά. Μια εργασία που ελέγχει την κατάσταση του προφίλ και μετά υποθέτει ότι το API είναι έτοιμο θα ειδοποιήσει κάποιον στο λάθος επίπεδο, και μια εργασία που κάνει ping στο API και το παρουσιάζει ως απόδειξη τούνελ δεν μπορεί να ξεχωρίσει ένα VPN που δουλεύει από ένα φορητό που τυχαίνει να βρίσκεται στο δίκτυο του γραφείου.

Ένα προφίλ: ρωτήστε το αντικείμενο που το κατέχει

Για μια εγγενή υπηρεσία Mac, τα χειριστήρια σύνδεσης δικτύου στο scutil αναφέρουν ακριβώς αυτό. Διαβάζουν την κατάσταση μιας ονομασμένης διαμόρφωσης αντί να συμπεραίνουν κάτι από μια διεπαφή.

scutil --nc list
scutil --nc status "Office VPN"

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

Μέσα σε μια εφαρμογή Network Extension, διαβάστε την κατάσταση από τα αντικείμενα διαχειριστή και σύνδεσης αντί από το σύστημα. Προσοχή στο εύρος εδώ: η φόρτωση αποθηκευμένων διαμορφώσεων επιστρέφει μόνο όσες δημιούργησε η εφαρμογή που καλεί, οπότε ένα κενό αποτέλεσμα σημαίνει «καμία δική μου», όχι «κανένα VPN σε αυτό το Mac». Διακρίνετε ένα αποτυχημένο ερώτημα από μια επιβεβαιωμένη αποσυνδεδεμένη κατάσταση, και αντιμετωπίστε τις μεταβατικές καταστάσεις ως δικά τους αποτελέσματα αντί να επαναλαμβάνετε μια σύνδεση που ήδη ανεβαίνει.

Μία εργασία: η ετοιμότητα είναι ξεχωριστό κατηγόρημα

Αν το ερώτημα είναι αν μια εργασία μπορεί να προχωρήσει, δοκιμάστε την πραγματική εξάρτηση της εργασίας αφού ο ιδιοκτήτης της σύνδεσης αναφέρει την επιδιωκόμενη κατάσταση. Ένας περιορισμένος έλεγχος ετοιμότητας προς τον ιδιωτικό πόρο είναι το σωστό σχήμα: αποδεικνύει τι χρειάζεται η εργασία και τίποτα περισσότερο.

Εξακολουθεί να μην μπορεί να αποδείξει ότι κάθε αίτημα στο μηχάνημα χρησιμοποιεί το τούνελ, και δεν θα έπρεπε να αναφέρεται σαν να μπορούσε. Παρομοίως, ένας πόρος που απαντά μέσω του συνηθισμένου δικτύου δεν είναι απόδειξη VPN, γι' αυτό οι δύο έλεγχοι μένουν χωριστοί ακόμη και όταν πετυχαίνουν και οι δύο.

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

Μία ροή: εξετάστε τη διαδρομή που επιλέχθηκε

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

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

Επιστρέψτε ένα αποτέλεσμα που μπορεί να χρησιμοποιήσει ο καλών

Επιλέξτε ένα σχήμα επιστροφής που ταιριάζει με το κατηγόρημα: κατάσταση ονομασμένου προφίλ, ετυμηγορία ετοιμότητας πόρου ή ρητό άγνωστο με τα στοιχεία που το παρήγαγαν. Κρατήστε την ταυτότητα της διαμόρφωσης και τον λόγο αποτυχίας δίπλα στην ετυμηγορία.

Αυτή η τελευταία συνήθεια κάνει τη διαφορά ανάμεσα σε αυτοματοποίηση που βοηθά και σε αυτοματοποίηση που κρύβει προβλήματα. Το «Office VPN: αποσυνδεδεμένο, η τελευταία προσπάθεια απέτυχε στην αυθεντικοποίηση» λέει σε έναν χειριστή πού να κοιτάξει. Το «το VPN έπεσε» προσκαλεί επανεγκατάσταση, και το «βρέθηκε διεπαφή» προσκαλεί ένα ψεύτικο όλα καλά.

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

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