Χρήση IPv6 με Advanced Direct Connect

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

Σήμερα, η εγκατάσταση και η κυκλοφορία ενός σύγχρονου NMDC hub, ο πρόσφατα δημιουργημένος διαχειριστής έχει πρόσβαση σε όλες σχεδόν τις εξελίξεις και την εμπειρία που έχει συσσωρευτεί σε αυτόν τον τομέα των προκατόχων του. Διαθέτει ένα σύστημα έτοιμο για επέκταση και προσαρμογή, μεταξύ άλλων με τη βοήθεια πολλών σεναρίων.

С ADC κόμβους κατά τα άλλα. Ο σχεδιασμός αυτού του πρωτοκόλλου προορίζεται να είναι επεκτάσιμος. Θέλετε ένα νέο χαρακτηριστικό; Λοιπόν, προσφέρετέ το, προωθήστε το, εφαρμόστε το, εφαρμόστε το, χρησιμοποιήστε το.

Μετάφραση στα αγγλικά

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

Αυτό συνέβη με το IPv6. Ο γέρος NMDC δεν ξέρει πώς να το κάνει καταρχήν, αλλά η ίδια η ADC είναι έτοιμη για αυτό. Ωστόσο, δεν είναι όλα τόσο απλά.

Λίγη θεωρία μόνο

Ο «ενεργός» χρήστης μπορεί να αποδεχτεί τις εισερχόμενες συνδέσεις. Στην πραγματικότητα, το αίτημα σύνδεσης που προέρχεται από αυτό είναι στην πραγματικότητα πρόσκληση.

Ένας "παθητικός" χρήστης μπορεί γενικά να χρησιμοποιεί μόνο εξερχόμενα αιτήματα. Μέσω του κόμβου αυτός ρωτάει ο ενεργός χρήστης στέλνει μια πρόσκληση - και η σύνδεση δημιουργείται.

Χρήση IPv6 με Advanced Direct Connect

Και ναι, αυτός ο μηχανισμός δεν εξαρτάται από την έκδοση του πρωτοκόλλου IP που χρησιμοποιείται.

Κύκνος, καραβίδες και λούτσοι

Ας μιλήσουμε για το λογισμικό πελάτη.

Υποστήριξη IPv6 DC ++ είναι πειραματικής φύσης. Δεν υπάρχουν ξεχωριστές ρυθμίσεις για αυτό, και ήταν ακόμη πιο περίεργο για μένα να βλέπω διαφορετικούς τρόπους λειτουργίας για διαφορετικές εκδόσεις IP, με παθητικό μόνο για την έκτη, αλλά αυτό δεν είναι ακριβές.

Δεν ήταν δυνατή η λήψη της ενεργής λειτουργίας κατά τη χειροκίνητη διαμόρφωση, ακόμη και όταν χρησιμοποιούσατε ρητά έναν τομέα IP με εγγραφή AAAA ως WAN, αλλά στην αυτόματη λειτουργία χρησιμοποιώντας UPnP όλα λειτουργούσαν όπως αναμενόταν.

AirDC++ έχει επίσης υποστήριξη για συνδέσεις IPv6 και υλοποιείται εντελώς ξεχωριστά από το IPv4. Επιπλέον, αυτός ο πελάτης τροποποιεί τις ετικέτες χρήστη με τέτοιο τρόπο ώστε να εμφανίζονται οι τρόποι λειτουργίας και για τα δύο πρωτόκολλα IP ταυτόχρονα. Οι ίδιοι οι κόμβοι δεν ξέρουν πώς να το κάνουν αυτό (ακόμα), πράγμα κρίμα.

Πρέπει να κάνω αμέσως κράτηση: το AirDC++ το κάνει μόνο του και για τον εαυτό του. Στο μέλλον, για ευκολία, θα χρησιμοποιήσω συνδυασμούς όπως AP ή AA ως ένδειξη ενεργών ή παθητικών τρόπων λειτουργίας για IPv4 και IPv6, αντίστοιχα, αντί για την εμφάνισή τους στην ετικέτα πραγματικού πελάτη στον πραγματικό διανομέα. Είναι σημαντικό.

Στο πείραμά μας θα χρησιμοποιήσουμε FlylinkDC++ ως πελάτης που δεν είναι καθόλου εξοικειωμένος με το IPv6. Πρέπει επίσης να σημειωθεί ότι η υποστήριξη NATT για αυτόν τη στιγμή που γράφει αυτό το άρθρο δεν εφαρμόστηκε πουθενά.

ΑΡΧΙΚΗ

Πρώτα απ 'όλα, θα εξετάσουμε προφανώς αδύνατες συνδέσεις μεταξύ χρηστών διαφορετικών εκδόσεων του πρωτοκόλλου IP. Θα χρησιμοποιηθεί για τη δοκιμή Διανομέας έτοιμος για IPv6 με εγγραφές πόρων A- και AAAA για το όνομα τομέα που ενεργεί ως διεύθυνσή του.

Χρήση IPv6 με Advanced Direct Connect

Λάβετε υπόψη ότι όταν (στην πραγματικότητα) προσπαθείτε να επικοινωνήσετε με έναν χρήστη με διεύθυνση IP έκδοσης XNUMX, εμφανίζεται ένα σφάλμα.

Hub:	[Outgoing][IPv4:412]	 	DRCM AACX AACU ADCS/0.10 337151563
Hub:	[Incoming][IPv4:412]	 	DCTM AACU AACX ADCS/0.10 1988 337151563
Hub:	[Outgoing][IPv4:412]	 	DSTA AACX AACU 240 IPsunknown

Σε ανθρώπινη μετάφραση ακούγεται σαν

P4: – Μπορώ να κολλήσω πάνω σου;
Α6: – Κολλήστε!
P4: – Η ζωή είναι πόνος 0_0

Ένα σύντομο λεξικό, αν χρειαστεί, εδώ.

Και αν είναι το αντίστροφο, και η σύνδεση ξεκινά A4, τότε δεν εμφανίζεται κανένα σφάλμα και η σύνδεση απλώς κλείνει.

Hub:	[Outgoing][IPv4:412]	 	DCTM AACX AACU ADCS/0.10 1993 3871342713

Να είναι, δεν φαίνεται να είναι

Αυτό που είναι σημαντικό είναι ο τρόπος σύνδεσης που εμφανίζεται στο hub.

Οι πελάτες χωρίς υποστήριξη IPv6 θα πρέπει να βλέπουν τους χρήστες που συνδέονται μέσω αυτού ως σαφώς παθητικούς, απλώς και μόνο επειδή ο κόμβος δεν είναι γεμάτος για αυτούς I4 ή I6 πεδίο αναλόγως.

Χρήση IPv6 με Advanced Direct Connect
FlylinkDC++ vs. IPv6

Στην πραγματικότητα, η κατάσταση είναι πιο απλή και ταυτόχρονα πιο περίπλοκη.

Χρήση IPv6 με Advanced Direct Connect
AirDC++ vs. IPv6

Πιο εύκολο γιατί το IPv6 υπερισχύει του IPv4 και αυτό είναι κατανοητό. Μέσω αυτού (αν και η παράκαμψη είναι διαθέσιμη χρησιμοποιώντας την αντίστοιχη επιλογή) θα δημιουργηθεί η σύνδεση με το hub και ο ενεργός πελάτης θα την προσφέρει στον παθητικό πελάτη για σύνδεση.

Είναι πιο δύσκολο, γιατί αν υπάρχουν χρήστες με υποστήριξη IPv6 στο hub, αλλά είναι συνδεδεμένοι αυστηρά μέσω μιας διεύθυνσης IPv4, τότε...

Χρήση IPv6 με Advanced Direct Connect

... τότε μπορείτε να συνδεθείτε σε αυτά (τυχαία) χωρίς να έχετε καθόλου IPv4.

Λάβετε υπόψη ότι ο απομακρυσμένος πελάτης έχει χαρακτηριστεί ως περιουσιακό στοιχείο, αλλά αντιμετωπίζεται ως υποχρέωση. Γιατί;

Πέτα τον σε μια κούνια

Τώρα ας προσπαθήσουμε να συνδέσουμε πελάτες με διαφορετικά, αλλά κοινά από την άποψη του IPv4, σύνολα υποστήριξης πρωτοκόλλου IP μεταξύ τους.

Χρήση IPv6 με Advanced Direct Connect

Ναι, είναι κρίμα που οι παθητικοί χρήστες πρέπει να καπνίζουν στο περιθώριο. Αλλά αυτό δεν μπορεί να βοηθήσει, καθώς η ορατή διεύθυνση IP τους δεν είναι ιδιαίτερα σημαντική - γι' αυτό είναι υποχρεώσεις.

Χρήση IPv6 με Advanced Direct Connect

Μπα! Ο ενεργός πελάτης στέλνει παθητική εντολή?.. Θα ήταν λογικό να περιμένουμε μια «κολλημένη» σύνδεση, αλλά όχι, αποδεικνύεται υπό τις προϋποθέσεις A4.

Γιατί αυτό? Επικοινωνούμε με τον προγραμματιστή και λαμβάνουμε την απάντηση:

CTM δεν είναι καλό αν ο άλλος χρήστης δεν υποστηρίζει IPv6

Και δεν μπορείς να διαφωνήσεις! Αλλά αυτό απαιτεί εσωτερική λογική, ανεξάρτητη από το hub (βλ. κώδικα εδώ и εδώ). Είναι ακόμα αδύνατο να βοηθήσουμε τους παθητικούς, γιατί

Ενεργή λειτουργία = TCPx+IPx

Οι προσπάθειες σύνδεσης μεταξύ πελατών με κοινά σετ υποστήριξης IP IPv6 μοιάζουν με αυτό. Επιτρέψτε μου να σας θυμίσω, επιτύχετε PA Δεν τα κατάφερα για DC++.

Χρήση IPv6 με Advanced Direct Connect

Και πάλι έκπληξη. Αποδεικνύεται ότι η παθητική λειτουργία για το IPv6, την οποία δείχνει το DC++, είναι είτε σκόπιμη ψεύτικη είτε σφάλμα.

Ποιο είναι το επόμενο;

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

Το πρώτο είναι να απενεργοποιήσετε εντελώς το IPv6 ή, αντίθετα, να δημιουργήσετε έναν κόμβο που θα λειτουργεί μόνο μέσω αυτού.

Το δεύτερο είναι αυτό επέκταση, που μόλις πλησιάζει στο στάδιο της δοκιμής.

Λοιπόν, εάν είστε πολύ τεμπέλης για να ρυθμίσετε την ενεργή λειτουργία για εργασία σε DC, θυμηθείτε:

Όποιος έχει, ό,τι θα του δοθεί, και όποιος δεν έχει, θα του αφαιρεθεί και αυτό που νομίζει ότι έχει. ΕΝΤΑΞΕΙ. 8:18

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο