Ρυθμίσεις punchy του Nebula: ποια διορθώνει το NAT σας
Το punch κρατά ζωντανή μια υπάρχουσα αντιστοίχιση NAT, ενώ το respond επιχειρεί αντίστροφη χειραψία. Κανένα δεν εγγυάται άμεση διαδρομή, και οι ρυθμίσεις καθυστέρησης αλλάζουν μόνο τον χρόνο.
Δύο peers βρίσκουν ο ένας τον άλλο μέσω του φάρου και μετά αποτυγχάνουν να χτίσουν άμεση διαδρομή, και το πρώτο ένστικτο είναι να ενεργοποιήσουμε κάθε επιλογή punchy. Αυτό το ένστικτο παράγει μια διαμόρφωση με τρεις αλλαγές και καμία ιδέα για το ποια είχε σημασία. Οι ρυθμίσεις απαντούν σε διαφορετικά ερωτήματα: η μία συντηρεί μια αντιστοίχιση που υπάρχει ήδη, και η άλλη επιχειρεί χειραψία προς την αντίστροφη κατεύθυνση. Αποφασίστε ποιο ερώτημα έχετε πριν αγγίξετε οποιαδήποτε από τις δύο.
Επιβεβαιώστε το άκρο πριν από τον χρόνο
Ένας peer που δεν εμφανίζεται ποτέ στη διεύθυνση που περιμένουμε δεν θα σωθεί από το συντονισμό του punch. Ελέγξτε τι γνωρίζει ο φάρος για τον peer και τι διαφημίζει η δική του διαμόρφωση, γιατί μια παρωχημένη διεύθυνση bootstrap ή μια ιδιωτική διεύθυνση που δημοσιεύτηκε κατά λάθος ακυρώνει κάθε τέχνασμα διέλευσης. Επιβεβαιώστε επίσης ότι το πιστοποιητικό είναι αξιόπιστο, αφού μια μη αξιόπιστη ταυτότητα σταματά τη συνομιλία πολύ πριν μετρήσει το NAT. Έπειτα επαληθεύστε ότι το UDP φτάνει καθόλου στον φάρο. Οι τιμές χρόνου είναι το τελευταίο που κοιτάμε, όχι το πρώτο.
Καταγράψτε το ζεύγος άκρων με το οποίο δοκιμάζετε, ώστε οι επόμενες συγκρίσεις να χρησιμοποιούν τους ίδιους peers και όχι δύο άλλα μηχανήματα.
Το punch κρατά αντιστοίχιση, το respond ανοίγει κατεύθυνση
Η επιλογή punch στέλνει περιοδικά κενά πακέτα στη διεύθυνση υποστρώματος ενός peer που έχει ήδη σήραγγα. Ο σκοπός της δεν είναι λαμπερός: εμποδίζει ένα NAT με κατάσταση ή ένα τείχος προστασίας να λήξει την αντιστοίχιση από την οποία εξαρτάται η άμεση διαδρομή. Η επιλογή respond αλλάζει ό,τι συμβαίνει σε μια ειδοποίηση του φάρου, κάνοντας τον host να επιχειρήσει χειραψία πίσω προς τον peer που προσπαθεί να τον φτάσει. Πρόκειται για διαφορετικούς μηχανισμούς με διαφορετικούς τρόπους αποτυχίας.
Επιλέξτε punch όταν η άμεση διαδρομή λειτουργεί και αργότερα φθίνει. Επιλέξτε respond όταν η διαδρομή δεν σχηματίζεται ποτέ προς μία κατεύθυνση. Το να ενεργοποιήσετε και τα δύο και να ελπίζετε είναι το πώς μια διόρθωση πέντε λεπτών γίνεται μια εβδομάδα συντονισμού.
Οι καθυστερήσεις ορίζουν πότε, όχι αν
Οι τιμές καθυστέρησης μετακινούν τον χρόνο: η μία αφορά το πακέτο που στέλνεται μετά από ειδοποίηση, η άλλη την απόπειρα αντίστροφης χειραψίας. Καμία δεν κάνει μια φραγμένη κατεύθυνση να λειτουργήσει. Η αλλαγή και των δύο ταυτόχρονα καταστρέφει τη σύγκριση που επρόκειτο να κάνετε.
Αφήστε τις ήσυχες μέχρι ο μηχανισμός να είναι σωστός. Έπειτα ρυθμίστε μία, και κρατήστε την παλιά τιμή γραμμένη.
Όταν το relay είναι η ειλικρινής απάντηση
Μερικοί συνδυασμοί NAT δεν μπορούν να υποστηρίξουν άμεση διαδρομή, όπως κι αν τακτοποιηθεί ο χρόνος. Συμμετρικό NAT και στις δύο πλευρές, ή ένα τείχος προστασίας που απορρίπτει εντελώς μη ζητημένη εισερχόμενη κίνηση, δεν αφήνουν τίποτα να διατρηθεί.
Ένας κόμβος relay με προσβάσιμη διεύθυνση δίνει σε αυτούς τους peers μια διαδρομή που δεν εξαρτάται από την επιτυχία της διέλευσης. Κοστίζει εύρος ζώνης μέσω αυτού του κόμβου, άρα είναι απόφαση για χωρητικότητα και όχι παράκαμψη. Διαμορφώστε το relay συνειδητά και ελέγξτε ότι οι peers μπορούν να το φτάσουν, γιατί ένα relay που βρίσκεται το ίδιο πίσω από ένα δύσκολο NAT δεν αλλάζει τίποτα. Έπειτα σταματήστε να ρυθμίζετε το punch για αυτό το ζεύγος, αφού η άμεση διαδρομή δεν επρόκειτο ποτέ να εμφανιστεί.
Δοκιμάστε το ζεύγος που απέτυχε, μετά από αδράνεια
Αναπαράγετε τη συνθήκη που έσπασε: αφήστε το ζεύγος σε αδράνεια για το ίδιο διάστημα, ή επαναλάβετε την ακολουθία χειραψίας που παλιά αποτύγχανε. Έπειτα ασκήστε την εφαρμογή ανάμεσα σε αυτούς τους δύο peers, όχι ένα αίτημα προς τον φάρο. Μια απάντηση του φάρου αποδεικνύει τη διαδρομή ελέγχου και τίποτα για τη διαδρομή δεδομένων.
Καταγράψτε ποια ρύθμιση άλλαξε, την ώρα, και αν εμφανίστηκε άμεση διαδρομή ή η κίνηση έμεινε στο relay. Αν έμεινε, η απάντηση είναι relay και μια σημείωση χωρητικότητας, και αυτό είναι ένα απολύτως καλό αποτέλεσμα. Αν εμφανίστηκε, το επόμενο ερώτημα είναι αν αντέχει μια ώρα αδράνειας, γιατί μια αντιστοίχιση που φθίνει είναι ακριβώς το πρόβλημα για το οποίο υπάρχει το punch.