Οι εξαιρέσεις VPN ανά εφαρμογή σπάνε όταν μια κοινόχρηστη υπηρεσία κάνει τη λήψη
Το παράθυρο που εξαιρέσατε δεν είναι πάντα η διεργασία που ανοίγει τη σύνδεση. Βρείτε τον πραγματικό αιτούντα πριν προσθέσετε έναν βοηθό σε κανόνα VPN ανά εφαρμογή.
Εξαιρείτε μία εφαρμογή από το VPN και η λήψη που χρειαζόταν εξακολουθεί να αποτυγχάνει, ή χειρότερα, αρχίζει να λειτουργεί και κάτι άσχετο σταματά. Το ορατό παράθυρο δεν είναι απαραίτητα η διεργασία που ανοίγει κάθε σύνδεση: μια εφαρμογή μπορεί να αναθέσει εργασία σε έναν βοηθό, σε μια υπηρεσία μεταφοράς στο παρασκήνιο ή σε ένα εντελώς διαφορετικό πακέτο. Ένας κανόνας ανά εφαρμογή χρειάζεται επομένως το πραγματικό μοντέλο ταυτότητας της πλατφόρμας και όχι ένα γνώριμο όνομα αρχείου εκκίνησης. Οι έλεγχοι παρακάτω ξεκινούν από την παρατήρηση και επιστρέφουν σε όποιον έκανε πραγματικά το αίτημα.
Σε αυτά τα δελτία δύο πράγματα συνήθως πάνε στραβά μαζί: εξαιρείται το λάθος στοιχείο και η εξαίρεση δεν περιορίζεται ποτέ μετά.
Βρείτε τη διεργασία, όχι το παράθυρο
Αναπαράγετε την αποτυχημένη ενέργεια και προσδιορίστε τη διεργασία ή το πακέτο που κατέχει τη σύνδεση όσο συμβαίνει. Στα Windows αυτό είναι διαφορετικό ερώτημα από το ποιο παράθυρο έχει την εστίαση, γιατί μια μεταφορά στο παρασκήνιο μπορεί να μεσολαβείται από υπηρεσία που εκτελείται με τη δική της ταυτότητα. Στο Linux και στο macOS ο ίδιος διαχωρισμός εμφανίζεται ως βοηθητικές διεργασίες και δαίμονες συστήματος.
Καταγράψτε τρεις λεπτομέρειες: την ταυτότητα του εκτελέσιμου ή του πακέτου, τον προορισμό με τον οποίο επικοινωνούσε και τη στιγμή στη ροή εργασίας όταν συνέβη. Μια λήψη που αποτυγχάνει στην αρχή είναι συχνά ανάκτηση μεταδεδομένων από διαφορετικό στοιχείο από μια λήψη που αποτυγχάνει στη μέση. Αυτή η διάκριση και μόνο αρκεί συνήθως για να επιλέξετε τη σωστή ταυτότητα πριν αγγίξετε τον κανόνα. Αν η ταυτότητα αποδειχθεί υπηρεσία και όχι εφαρμογή, αυτό το ένα γεγονός αλλάζει ολόκληρο τον κανόνα, οπότε καθορίστε το πρώτα.
Αν δεν μπορείτε να παρατηρήσετε τη διεργασία επειδή η ενέργεια είναι πολύ σύντομη, επαναλάβετε την με μεγαλύτερο φορτίο ή πιο αργό προορισμό. Ο στόχος είναι μία αναπαραγώγιμη παρατήρηση, όχι μια θεωρία για το ποιος βοηθός εμπλέκεται.
Αντιμετωπίστε το DNS ως δικό του μονοπάτι
Η επίλυση ονομάτων του συστήματος μπορεί να μην ακολουθεί καθόλου την εξαιρούμενη εφαρμογή, γι' αυτό ένας εξαιρούμενος περιηγητής μπορεί να αποτυγχάνει σε ιδιωτικό όνομα κεντρικού υπολογιστή ενώ η κίνησή του είναι σωστά έξω από τη σήραγγα. Ο περιηγητής είχε εξαιρεθεί· ο επιλυτής όχι.
Ελέγξτε τι κάνει η πλατφόρμα με το DNS όταν ισχύει κανόνας ανά εφαρμογή, και ελέγξτε το ξεχωριστά από το αίτημα HTTP. Αν ο επιλυτής είναι κοινόχρηστη υπηρεσία, εξυπηρετεί κάθε εφαρμογή στη συσκευή, άρα η εξαίρεση που εξετάζετε έχει πολύ ευρύτερο κοινό από αυτή που δοκιμάσατε.
Σημειώστε ποιος επιλυτής απάντησε και μέσω ποιας διεπαφής. Αυτή η μία παρατήρηση λύνει μεγάλο μέρος των αναφορών «η εφαρμογή έχει εξαιρεθεί αλλά το όνομα δεν επιλύεται», οπότε κρατήστε την μαζί με το δελτίο.
Μην διευρύνετε έναν κοινόχρηστο βοηθό
Μια κοινόχρηστη υπηρεσία εκτελεί εργασία για πολλές εφαρμογές, οπότε η εξαίρεσή της για επιδιόρθωση μιας ροής εργασίας αλλάζει και άσχετη κίνηση. Το Background Intelligent Transfer Service στα Windows είναι καλό παράδειγμα της μορφής: είναι υποδομή που πολλές εφαρμογές μπορούν να χρησιμοποιούν, και η ταυτότητά του δεν είναι η ταυτότητα της εφαρμογής που ζήτησε τη μεταφορά.
Ελέγξτε το υποστηριζόμενο μοντέλο κανόνων του πελάτη και τις απαιτήσεις του οργανισμού πριν προσθέσετε αυτή την εξαίρεση. Ρωτήστε τι άλλο χρησιμοποιεί το στοιχείο και αν ο κανόνας που πρόκειται να γράψετε μπορεί να εκφραστεί ως προς προορισμούς αντί για μια κοινόχρηστη διεργασία.
Αν η απαίτηση δεν μπορεί να εκφραστεί καθόλου ως όριο εφαρμογής, μια πολιτική βασισμένη σε προορισμούς ή άλλος εγκεκριμένος σχεδιασμός μπορεί να είναι πιο κατανοητός και ασφαλέστερος από έναν αυξανόμενο κατάλογο εξαιρέσεων βοηθών.
Δοκιμάστε ολόκληρη τη ροή εργασίας, όχι το βήμα που αποτυγχάνει
Μετά από μια υποστηριζόμενη αλλαγή, εκτελέστε την προβλεπόμενη εργασία με νέο αίτημα από την αρχή ως το τέλος. Στη συνέχεια εκτελέστε μία άλλη ροή εργασίας που χρησιμοποιεί το κοινόχρηστο στοιχείο, γιατί εκεί ανακοινώνεται μια ευρεία παράκαμψη. Μια διόρθωση που επιδιορθώνει την πρώτη και σπάει σιωπηλά τη δεύτερη δεν είναι διόρθωση. Κρατήστε και τα δύο αποτελέσματα στο δελτίο και ονομάστε ρητά τη δεύτερη ροή εργασίας, ώστε ένας ελεγκτής να μπορεί να την επαναλάβει.
Κρατήστε τη δοκιμή μικρή και επαναλήψιμη: ίδιος προορισμός, ίδιος λογαριασμός, ίδιες συνθήκες. Αν η δεύτερη ροή εργασίας δεν είναι τεκμηριωμένη, ρωτήστε τον ιδιοκτήτη της από τι εξαρτάται πριν αποφασίσετε ότι η αλλαγή είναι ασφαλής.
Αφήστε έναν λόγο, όχι κατάλογο ονομάτων
Τεκμηριώστε το στοιχείο, τη ροή εργασίας που εξυπηρετεί και τον λόγο της εξαίρεσής του. Ένας κατάλογος ονομάτων βοηθών χωρίς συνοδευτικό σκοπό γίνεται μη συντηρήσιμος μέσα σε δύο κύκλους έκδοσης, και ο επόμενος μηχανικός αφαιρεί τη λάθος καταχώριση ενώ τον καθαρίζει.
Μία γραμμή ανά εξαίρεση αρκεί: τι σπάει χωρίς αυτή, ποιος κατέχει αυτή τη ροή εργασίας και πότε επαληθεύτηκε τελευταία φορά. Αυτά τα τρία πεδία μετατρέπουν έναν μυστηριώδη κατάλογο σε πολιτική που κάποιος μπορεί να υπερασπιστεί.