Το Ping δεν είναι απόδειξη: δοκιμάστε τη διαδρομή ανάμεσα σε δύο τοποθεσίες
Ένα ping από την πύλη δεν λέει τίποτα για την υπηρεσία. Διαβείτε τη διαδρομή από πραγματικό πελάτη, χρησιμοποιήστε το πρωτόκολλο της εφαρμογής και αναπαράγετε το μέγεθος ή το όνομα που αποτυγχάνει.
Η σήραγγα είναι ενεργή, οι πύλες απαντούν η μία στην άλλη, και οι χρήστες στη μία τοποθεσία εξακολουθούν να μην μπορούν να ανοίξουν τον κοινόχρηστο φάκελο στην άλλη. Κάποιος κάνει ping από την πύλη, παίρνει απάντηση και δηλώνει το δίκτυο υγιές. Αυτή η απάντηση ταξίδεψε ανάμεσα σε δύο συσκευές που ποτέ δεν ήταν το πρόβλημα. Μια χρήσιμη δοκιμή ξεκινά από τον υπολογιστή που χρειάζεται την υπηρεσία, χρησιμοποιεί το πρωτόκολλο που χρησιμοποιεί η εφαρμογή και αναπαράγει τη συνθήκη υπό την οποία αποτυγχάνει. Όλα τα άλλα είναι πράσινο φως για μια διαδρομή όπου δεν βρίσκεται κανείς.
Ξεκινήστε από τον πελάτη που χρειάζεται την υπηρεσία
Σημειώστε τέσσερα πράγματα πριν δοκιμάσετε οτιδήποτε: τη διεύθυνση του πελάτη, τη διεύθυνση προορισμού, το όνομα κεντρικού υπολογιστή και τη θύρα της εφαρμογής. Στη συνέχεια επιβεβαιώστε ότι η υπηρεσία λειτουργεί τοπικά στη δική της τοποθεσία, από έναν υπολογιστή δίπλα της. Χωρίς αυτή τη βάση δεν μπορείτε να ξεχωρίσετε μια σπασμένη σήραγγα από μια σπασμένη υπηρεσία, και τα μισά από αυτά τα δελτία είναι το δεύτερο.
Δοκιμάστε το τεκμηριωμένο όνομα κεντρικού υπολογιστή και, όπου η υπηρεσία το επιτρέπει, έλεγχο απευθείας διεύθυνσης της ίδιας θύρας. Μια αποτυχημένη αναζήτηση ονόματος και μια μη προσβάσιμη διεύθυνση που επιλύθηκε σας οδηγούν σε διαφορετικές διαδρομές. Αν αντικαταστήσετε ένα όνομα κεντρικού υπολογιστή με IP, μην απενεργοποιήσετε τον έλεγχο ταυτότητας HTTPS για να δουλέψει· μια προειδοποίηση πιστοποιητικού είναι πληροφορία, όχι εμπόδιο.
Διαβείτε τη διαδρομή σε κάθε άκρο
Διαβάστε τη διαδρομή που επιλέγει ο πελάτης, μετά τη διαδρομή που επιλέγει η πύλη για αυτόν τον προορισμό, μετά τους μετρητές ή μια περιορισμένη σύλληψη σε κάθε άκρο. Ψάχνετε δύο γεγονότα: αν το αίτημα έφτασε στο απομακρυσμένο τοπικό δίκτυο και αν επέστρεψε απάντηση. Οι μετρητές διεπαφής περιλαμβάνουν κάθε άλλη ροή, οπότε συσχετίστε με ακριβή χρονική σήμανση και ζεύγος διευθύνσεων αντί με το σχήμα του γραφήματος. Μια σύλληψη στο λάθος άκρο είναι χειρότερη από καμία, γιατί μοιάζει με απόδειξη.
ip route get 10.10.0.5
sudo tcpdump -ni any host 10.10.0.5 and port 445
sudo tcpdump -ni any net 10.10.0.0/24 and net 10.20.0.0/24
Αν το αίτημα εμφανιστεί στο απομακρυσμένο άκρο χωρίς απάντηση πίσω του, το πρόβλημα είναι στην άλλη πλευρά: ένα τείχος προστασίας, μια διαδρομή επιστροφής που λείπει ή ένας υπολογιστής που δεν δέχεται την πηγή. Αν το αίτημα δεν εμφανιστεί ποτέ, η τοπική διαδρομή ή οι επιλογείς της σήραγγας δεν το μετέφεραν, και η άλλη πλευρά δεν αξίζει ακόμη έρευνα.
Χρησιμοποιήστε το πρωτόκολλο που χρησιμοποιεί η εφαρμογή
Το ICMP είναι αδύναμος ανιχνευτής. Μπορεί να φιλτραριστεί, να περιοριστεί σε ρυθμό ή να αντιμετωπιστεί από διαφορετική πολιτική από την υπηρεσία, κάτι που κάνει αμφίσημη και την επιτυχία και την αποτυχία του. Δοκιμάστε την πραγματική θύρα και, όπου μπορείτε, την πραγματική χειραψία του πρωτοκόλλου.
nc -vz 10.10.0.5 445
curl -sv --max-time 5 https://files.corp.internal/ -o /dev/null
openssl s_client -connect 10.10.0.5:443 -servername files.corp.internal
Μια ολοκληρωμένη χειραψία TCP αποδεικνύει προσβασιμότητα και πολιτική για αυτή τη θύρα. Δεν αποδεικνύει ότι η εφαρμογή λειτουργεί: η ταυτοποίηση, μια μεταφόρτωση ή μια συγκεκριμένη κλήση API μπορεί να αποτύχουν. Δοκιμάστε τη λειτουργία που εκτελούν πραγματικά οι χρήστες, με ένα ακίνδυνο ισοδύναμο αντί να υποβάλλετε επανειλημμένα μια πραγματική συναλλαγή.
Αναπαράγετε τη συνθήκη που αποτυγχάνει
Οι αποτυχίες που εμφανίζονται μόνο με μεγάλες μεταφορές είναι πρόβλημα μεγέθους, όχι συνδεσιμότητας. Στείλτε ένα μεγάλο πακέτο με το bit don't-fragment ενεργό και δείτε πού σταματά. Αν ένα μικρό αίτημα πετυχαίνει και ένα μεγάλο κολλάει, το MTU της σήραγγας και η διαχείριση MSS στις πύλες είναι οι επόμενοι ύποπτοι.
ping -M do -s 1400 10.10.0.5
ping -M do -s 1472 10.10.0.5
curl -sS --max-time 30 -F file=@./sample.bin https://files.corp.internal/upload
Αν αποτυγχάνει μόνο ένα υποδίκτυο, κοιτάξτε τους επιλογείς κίνησης, τις αναγγελίες διαδρομών και την πύλη επιστροφής αυτού του υποδικτύου. Αν αποτυγχάνει μόνο το όνομα κεντρικού υπολογιστή, ακολουθήστε το DNS, συμπεριλαμβανομένου ποιον resolver χρησιμοποίησε ο πελάτης και αν η απομακρυσμένη όψη είναι ορατή από εκείνη την τοποθεσία. Τρεις διαφορετικές αστοχίες, τρεις διαφορετικές διορθώσεις, και η δοκιμή ping δεν ξεχωρίζει καμία.
Μετά τη διόρθωση, επαναλάβετε την ίδια δοκιμή
Εκτελέστε ξανά τον ίδιο πελάτη, προορισμό, θύρα και φορτίο. Στη συνέχεια επανασυνδεθείτε ή δοκιμάστε τη διαδρομή εφεδρείας αν τη διαθέτει ο σχεδιασμός, γιατί μια διόρθωση που λειτουργεί μόνο όσο ζει το αρχικό στιγμιότυπο της σήραγγας δεν έχει δοκιμαστεί. Κρατήστε τη δοκιμή δεμένη σε πραγματική πηγή, πραγματικό προορισμό και πραγματική λειτουργία αντί σε μία πράσινη ένδειξη σε ένα ταμπλό.
Καταγράψτε τις τέσσερις βασικές τιμές και το αποτέλεσμα. Η επόμενη αναφορά για το ίδιο σύμπτωμα μπορεί τότε να ξεκινήσει από αποδείξεις αντί από ping.