ANATSTUNNATBdirect P2Phole punchingprivateprivate

NAT Traversal

11 ελάχιστη ανάγνωσηΔικτύωση

Οι φωνητικές κλήσεις, οι βιντεοκλήσεις, τα παιχνίδια peer-to-peer και τα εργαλεία απομακρυσμένης επιφάνειας εργασίας πρέπει όλα να συνδέσουν δύο συσκευές που βρίσκονται πίσω από διαφορετικά NAT — καμία δεν έχει προσβάσιμη δημόσια IP. Το NAT traversal είναι η συλλογή τεχνικών που κάνουν αυτό το έργο: STUN, TURN, ICE, hole punching. Οι μηχανικοί εξηγούν γιατί ορισμένες κλήσεις λειτουργούν απευθείας και κάποιες αναπηδούν μέσω διακομιστών αναμετάδοσης.

Το πλήρες κείμενο του άρθρου παρέχεται στα Αγγλικά παρακάτω.

Το

NAT traversal είναι το σύνολο τεχνικών που επιτρέπουν σε δύο συσκευές πίσω από ξεχωριστά NAT να δημιουργούν απευθείας συνδέσεις. Χωρίς αυτό, τα πρωτόκολλα peer-to-peer εξαρτώνται εξ ολοκλήρου από διακομιστές αναμετάδοσης, γεγονός που προσθέτει κόστος και καθυστέρηση. Με αυτό, δύο τηλέφωνα πίσω από οικιακούς δρομολογητές μπορούν να συνομιλούν απευθείας μέσω του Διαδικτύου για το μεγαλύτερο μέρος της ζωής της σύνδεσης. Οι εισερχόμενες συνδέσεις χωρίς υπάρχουσα αντιστοίχιση δεν έχουν προορισμό — το NAT δεν γνωρίζει σε ποια εσωτερική συσκευή να προωθήσει. Δύο συσκευές NAT'd δεν μπορούν να ξεκινήσουν συνδέσεις μεταξύ τους. Και τα δύο πρέπει να είναι ο αρχικός. Η συσκευή στέλνει ένα αίτημα STUN σε έναν δημόσιο διακομιστή STUN. ο διακομιστής απαντά με τη διεύθυνση πηγής που παρατήρησε (η οποία είναι η εξωτερική αντιστοίχιση του NAT). Η Google λειτουργεί το stun.l.google.com:19302; υπάρχουν πολλά άλλα. Το κόστος εκτέλεσης ενός είναι αμελητέο επειδή η ανταλλαγή πρωτοκόλλου είναι μικροσκοπική.

Το απλούστερο μοτίβο διέλευσης NAT

Για δύο συσκευές A και B πίσω από NAT:

  1. A ερωτά STUN, μαθαίνει τη δημόσια αντιστοίχιση STUN, μαθαίνει τη δημόσια αντιστοίχιση του STUN, XBXPLZque26. μαθαίνει ότι η δημόσια αντιστοίχιση του είναι το Y.
  2. A και ο Β ανταλλάσσει αυτές τις διευθύνσεις μέσω ενός καναλιού σηματοδότησης (εκτός ζώνης, όπως μια διαδικτυακή πρίζα μέσω του διακομιστή της εφαρμογής). Το
  3. A ξεκινά να στέλνει πακέτα στο Y. Το B αρχίζει να στέλνει στο X.
  4. Και τα δύο NAT βλέπουν εξερχόμενα πακέτα στη διεύθυνση του άλλου, δημιουργούν τις απαραίτητες αντιστοιχίσεις και από τότε τα εισερχόμενα πακέτα σε αυτές τις αντιστοιχίσεις προωθούνται εσωτερικά.
  5. Η άμεση διαδρομή A-to-B λειτουργεί τώρα.
X τρύπα . Λειτουργεί όταν και τα δύο NAT είναι εύλογα επιτρεπτά (πλήρους κώνου ή περιορισμένου κώνου). Οι τύποι

NAT και η δυνατότητα διάτρησης των οπών

  • Πλήρους κώνου NAT. Το πιο επιτρεπτό — οποιοσδήποτε εξωτερικός δημόσιος κεντρικός υπολογιστής μπορεί να στείλει/μεταφερθεί IP. Η διάτρηση οπών λειτουργεί εύκολα.
  • Περιορισμένος κώνος NAT. Μόνο οι εξωτερικοί κεντρικοί υπολογιστές με τους οποίους έχετε επικοινωνήσει προηγουμένως μπορούν να στείλουν. Η διάτρηση οπών λειτουργεί αφού και οι δύο πλευρές έχουν στείλει τουλάχιστον ένα πακέτο. Η διάτρηση οπών εξακολουθεί να λειτουργεί, αλλά απαιτεί από τις δύο πλευρές να αποστέλλονται στην ακριβή θύρα.
  • Συμμετρική NAT. Πιο περιοριστική — η εξωτερική θύρα διαφέρει για κάθε προορισμό, επομένως η αντιστοίχιση που εμφανίζεται από το STUN δεν προβλέπει την αντιστοίχιση για άμεση κίνηση ομοτίμων. Η διάτρηση οπών συνήθως αποτυγχάνει.

Τα συμμετρικά NAT είναι κοινά σε αναπτύξεις NAT κατηγορίας φορέα και σε ορισμένα εταιρικά τείχη προστασίας. Οι ομότιμοι πίσω από συμμετρικά NAT συχνά δεν μπορούν να συνδεθούν απευθείας. χρειάζονται ένα ρελέ.

TURN: όταν αποτυγχάνει η διάτρηση με τρύπες

TURN (Διάβαση με χρήση ρελέ γύρω από το NAT) , RFC 5766, είναι η εναλλακτική λύση. Όταν δεν είναι δυνατή η άμεση σύνδεση, και οι δύο ομότιμοι συνδέονται σε έναν διακομιστή TURN, ο οποίος αναμεταδίδει την κυκλοφορία μεταξύ τους. Οι διακομιστές TURN βλέπουν όλη την κίνηση των πολυμέσων — σημαντικά μεγαλύτερο κόστος εύρους ζώνης από το STUN.

Για τις υπηρεσίες βιντεοκλήσεων (Zoom, Google Meet), η εκτέλεση διακομιστών TURN αποτελεί σημαντικό λειτουργικό κόστος. Οι εκτιμήσεις προτείνουν ότι το 15-30% των κλήσεων χρησιμοποιούν ρελέ TURN παρά τις προσπάθειες μεγιστοποίησης των άμεσων συνδέσεων.

ICE: συνδυάζοντας τα πάντα

ICE (Δημιουργία διαδραστικής συνδεσιμότητας) Το , το RFC είναι το πλαίσιο σύνδεσης, το STTURN άμεσο και το STUN. Η διαδικασία:

  1. Κάθε ομότιμος συγκεντρώνει όλες τις υποψήφιες διευθύνσεις — τοπικές διεπαφές, δημόσιες αντιστοιχίσεις που ανακαλύφθηκαν από STUN, κρατήσεις αναμετάδοσης TURN.
  2. Peers ανταλλάσσουν πλήρεις λίστες υποψηφίων μέσω σηματοδότησης. υποψήφιοι.
  3. Ο πρώτος συνδυασμός εργασίας γίνεται η ενεργή σύνδεση. Το άμεσο προτιμάται έναντι του αναμεταδότη. χαμηλότερη καθυστέρηση έναντι υψηλότερη.
  4. Η σύνδεση μπορεί να επαναξιολογηθεί κατά τη διάρκεια της κλήσης, εάν αλλάξουν οι συνθήκες. Το

WebRTC χρησιμοποιεί ICE για συνδέσεις προγράμματος περιήγησης peer-to-peer. Δείτε το άρθρο WebRTC. Τα περισσότερα σύγχρονα πρωτόκολλα P2P χρησιμοποιούν ICE ή κάτι παρόμοιο.

Διάτρηση οπών UDP έναντι διάτρησης οπών TCP

UDP Η διάτρηση οπών είναι απλή (και η προεπιλογή για τις περισσότερες περιπτώσεις χρήσης διέλευσης NAT). Η διάτρηση οπών TCP είναι πολύ πιο δύσκολη επειδή το TCP απαιτεί συγχρονισμένη χειραψία. Και οι δύο πλευρές πρέπει να ξεκινήσουν συνδέσεις μεταξύ τους ταυτόχρονα και τα NAT πρέπει να επιτρέπουν την προκύπτουσα κατάσταση. Κάποια ΝΑΤ το υποστηρίζουν. πολλοί όχι. Η περισσότερη επισκεψιμότητα P2P που χρειάζεται αξιόπιστη μεταφορά χρησιμοποιεί πρωτόκολλα που βασίζονται σε UDP (QUIC, προσαρμοσμένα επίπεδα UDP-over-reliability) αντί των TCP.

NAT64 και IPv6

IPv6 δεν χρειάζεται NAT — κάθε συσκευή έχει μια καθολικά δρομολογήσιμη διεύθυνση. Θεωρητικά, το IPv6 εξαλείφει τη διέλευση NAT. Στην πράξη, η μερική ανάπτυξη IPv6 σημαίνει ότι ορισμένα τελικά σημεία είναι μόνο IPv4 πίσω από το NAT, άλλα είναι άμεσα προσβάσιμα στο IPv6 και το NAT64/DNS64 μεταφράζεται μεταξύ τους. Το αποτέλεσμα είναι πιο περίπλοκες αποφάσεις δρομολόγησης, αλλά γενικά ευκολότερες άμεσες συνδέσεις για τερματικά σημεία με δυνατότητα IPv6. Τα ορατά εφέ:

  • Οι βιντεοκλήσεις λειτουργούν άψογα στα οικιακά δίκτυα (συνήθως άμεσες ή σχεδόν απευθείας)
  • Οι κλήσεις πίσω από εταιρικά τείχη προστασίας μερικές φορές υποβαθμίζονται επειδή η κίνηση περνάει από το TURN
  • Τα προβλήματα στο δίκτυο κινητής τηλεφωνίας έχουν συχνά προβλήματα με τα αυτοκίνητα Το symmetric
  • Game P2P matchmaking είναι πιο αξιόπιστο σε ορισμένα δίκτυα από άλλα.

Συχνές ερωτήσεις

Γιατί μερικές φορές οι βιντεοκλήσεις μου συνδέονται μέσω διακομιστή;
Η διαμόρφωση του δικτύου σας απέτρεψε την άμεση σύνδεση ομοτίμων — συνήθως συμμετρικό NAT ή περιοριστικό τείχος προστασίας. Η κλήση επιστρέφει στο ρελέ TURN. Η καθυστέρηση αυξάνεται ελαφρώς. η κλήση εξακολουθεί να λειτουργεί.
Τι είναι ο πλήρης κώνος έναντι του συμμετρικού NAT;
Ο πλήρης κώνος διατηρεί την ίδια εξωτερική αντιστοίχιση για όλους τους προορισμούς από μια δεδομένη εσωτερική θύρα. Το Symmetric χρησιμοποιεί διαφορετικές εξωτερικές θύρες για διαφορετικούς προορισμούς. Το Symmetric είναι πιο περιοριστικό και σπάει τις περισσότερες διελεύσεις P2P.
Μπορεί η διέλευση ΝΑΤ να αποτελεί κίνδυνο για την ασφάλεια;
Η διάτρηση οπών ανοίγει συγκεκριμένες εξωτερικές θύρες σε συγκεκριμένους ομοτίμους. Έγινε σωστά, είναι ασφαλές — η αντιστοίχιση ξεκινά από την επισκεψιμότητά σας και επιτρέπει μόνο τη συγκεκριμένη ομάδα. Εσφαλμένες ρυθμίσεις παραμέτρων ή γενική διάτρηση οπών (το UPnP πήγε στραβά) μπορεί να ανοίξει ακούσια πρόσβαση.
Γιατί το IPv6 δεν το χρειάζεται αυτό;
Το IPv6 έχει τόσες πολλές διευθύνσεις που κάθε συσκευή έχει μια καθολικά δρομολογήσιμη. Το ΝΑΤ γίνεται περιττό. η διέλευση γίνεται μη θέμα. Η πρόκληση είναι ότι η μικτή ανάπτυξη IPv4/IPv6 διατηρεί την ανάγκη για διέλευση NAT στο τμήμα IPv4.
Ποια είναι η διαφορά μεταξύ STUN και TURN;
Το STUN απλώς σας λέει τη δημόσια χαρτογράφηση σας. Στη συνέχεια, δοκιμάστε την απευθείας σύνδεση. Το TURN στην πραγματικότητα αναμεταδίδει την κυκλοφορία όταν η απευθείας σύνδεση αποτυγχάνει. Το STUN είναι φθηνό (μικρή ανταλλαγή πρωτοκόλλου). Το TURN είναι ακριβό (μεταδίδει όλο το εύρος ζώνης μέσων).
NAT Traversal Explained: Πώς λειτουργεί το Peer-to-Peer μέσω τείχη προστασίας