Είναι ενδιαφέρον να παρακολουθείτε την ανάπτυξη του δικτύου κοινής χρήσης αρχείων, αλλά είναι ακόμα πιο ενδιαφέρον να συμμετέχετε σε αυτό.
Σήμερα, η εγκατάσταση και η κυκλοφορία ενός σύγχρονου NMDC hub, ο πρόσφατα δημιουργημένος διαχειριστής έχει πρόσβαση σε όλες σχεδόν τις εξελίξεις και την εμπειρία που έχει συσσωρευτεί σε αυτόν τον τομέα των προκατόχων του. Διαθέτει ένα σύστημα έτοιμο για επέκταση και προσαρμογή, μεταξύ άλλων με τη βοήθεια πολλών σεναρίων.
С ADC κόμβους κατά τα άλλα. Ο σχεδιασμός αυτού του πρωτοκόλλου προορίζεται να είναι επεκτάσιμος. Θέλετε ένα νέο χαρακτηριστικό; Λοιπόν, προσφέρετέ το, προωθήστε το, εφαρμόστε το, εφαρμόστε το, χρησιμοποιήστε το.
Ως αποτέλεσμα, μπορείτε, φυσικά, να βγάλετε ένα έτοιμο hub από το κουτί, αλλά απλά να το λανσάρετε και να το ξεχάσετε δεν θα είναι καλό. Η επεκτασιμότητα σε ένα ιστορικό πλαίσιο συνεπάγεται επίσης την παρουσία διαφορετικού αριθμού διαφορετικών λειτουργιών λογισμικού πελάτη και διακομιστή, ανάλογα με την έκδοση. Και αυτό που θα λειτουργήσει χωρίς προβλήματα για έναν χρήστη μπορεί να είναι ασύμβατο με τον πελάτη ενός άλλου και αυτό πρέπει να ληφθεί υπόψη.
Αυτό συνέβη με το IPv6. Ο γέρος NMDC δεν ξέρει πώς να το κάνει καταρχήν, αλλά η ίδια η ADC είναι έτοιμη για αυτό. Ωστόσο, δεν είναι όλα τόσο απλά.
Λίγη θεωρία μόνο
Ο «ενεργός» χρήστης μπορεί να αποδεχτεί τις εισερχόμενες συνδέσεις. Στην πραγματικότητα, το αίτημα σύνδεσης που προέρχεται από αυτό είναι στην πραγματικότητα πρόσκληση.
Ένας "παθητικός" χρήστης μπορεί γενικά να χρησιμοποιεί μόνο εξερχόμενα αιτήματα. Μέσω του κόμβου αυτός ρωτάει ο ενεργός χρήστης στέλνει μια πρόσκληση - και η σύνδεση δημιουργείται.
Και ναι, αυτός ο μηχανισμός δεν εξαρτάται από την έκδοση του πρωτοκόλλου IP που χρησιμοποιείται.
Κύκνος, καραβίδες και λούτσοι
Ας μιλήσουμε για το λογισμικό πελάτη.
Υποστήριξη IPv6 DC ++ είναι πειραματικής φύσης. Δεν υπάρχουν ξεχωριστές ρυθμίσεις για αυτό, και ήταν ακόμη πιο περίεργο για μένα να βλέπω διαφορετικούς τρόπους λειτουργίας για διαφορετικές εκδόσεις IP, με παθητικό μόνο για την έκτη, αλλά αυτό δεν είναι ακριβές.
Δεν ήταν δυνατή η λήψη της ενεργής λειτουργίας κατά τη χειροκίνητη διαμόρφωση, ακόμη και όταν χρησιμοποιούσατε ρητά έναν τομέα IP με εγγραφή AAAA ως WAN, αλλά στην αυτόματη λειτουργία χρησιμοποιώντας UPnP όλα λειτουργούσαν όπως αναμενόταν.
AirDC++ έχει επίσης υποστήριξη για συνδέσεις IPv6 και υλοποιείται εντελώς ξεχωριστά από το IPv4. Επιπλέον, αυτός ο πελάτης τροποποιεί τις ετικέτες χρήστη με τέτοιο τρόπο ώστε να εμφανίζονται οι τρόποι λειτουργίας και για τα δύο πρωτόκολλα IP ταυτόχρονα. Οι ίδιοι οι κόμβοι δεν ξέρουν πώς να το κάνουν αυτό (ακόμα), πράγμα κρίμα.
Πρέπει να κάνω αμέσως κράτηση: το AirDC++ το κάνει μόνο του και για τον εαυτό του. Στο μέλλον, για ευκολία, θα χρησιμοποιήσω συνδυασμούς όπως AP ή AA ως ένδειξη ενεργών ή παθητικών τρόπων λειτουργίας για IPv4 και IPv6, αντίστοιχα, αντί για την εμφάνισή τους στην ετικέτα πραγματικού πελάτη στον πραγματικό διανομέα. Είναι σημαντικό.
Στο πείραμά μας θα χρησιμοποιήσουμε FlylinkDC++ ως πελάτης που δεν είναι καθόλου εξοικειωμένος με το IPv6. Πρέπει επίσης να σημειωθεί ότι η υποστήριξη NATT για αυτόν τη στιγμή που γράφει αυτό το άρθρο δεν εφαρμόστηκε πουθενά.
ΑΡΧΙΚΗ
Πρώτα απ 'όλα, θα εξετάσουμε προφανώς αδύνατες συνδέσεις μεταξύ χρηστών διαφορετικών εκδόσεων του πρωτοκόλλου IP. Θα χρησιμοποιηθεί για τη δοκιμή Διανομέας έτοιμος για IPv6 με εγγραφές πόρων A- και AAAA για το όνομα τομέα που ενεργεί ως διεύθυνσή του.
Λάβετε υπόψη ότι όταν (στην πραγματικότητα) προσπαθείτε να επικοινωνήσετε με έναν χρήστη με διεύθυνση IP έκδοσης XNUMX, εμφανίζεται ένα σφάλμα.
Αυτό που είναι σημαντικό είναι ο τρόπος σύνδεσης που εμφανίζεται στο hub.
Οι πελάτες χωρίς υποστήριξη IPv6 θα πρέπει να βλέπουν τους χρήστες που συνδέονται μέσω αυτού ως σαφώς παθητικούς, απλώς και μόνο επειδή ο κόμβος δεν είναι γεμάτος για αυτούς I4 ή I6 πεδίο αναλόγως.
FlylinkDC++ vs. IPv6
Στην πραγματικότητα, η κατάσταση είναι πιο απλή και ταυτόχρονα πιο περίπλοκη.
AirDC++ vs. IPv6
Πιο εύκολο γιατί το IPv6 υπερισχύει του IPv4 και αυτό είναι κατανοητό. Μέσω αυτού (αν και η παράκαμψη είναι διαθέσιμη χρησιμοποιώντας την αντίστοιχη επιλογή) θα δημιουργηθεί η σύνδεση με το hub και ο ενεργός πελάτης θα την προσφέρει στον παθητικό πελάτη για σύνδεση.
Είναι πιο δύσκολο, γιατί αν υπάρχουν χρήστες με υποστήριξη IPv6 στο hub, αλλά είναι συνδεδεμένοι αυστηρά μέσω μιας διεύθυνσης IPv4, τότε...
... τότε μπορείτε να συνδεθείτε σε αυτά (τυχαία) χωρίς να έχετε καθόλου IPv4.
Λάβετε υπόψη ότι ο απομακρυσμένος πελάτης έχει χαρακτηριστεί ως περιουσιακό στοιχείο, αλλά αντιμετωπίζεται ως υποχρέωση. Γιατί;
Πέτα τον σε μια κούνια
Τώρα ας προσπαθήσουμε να συνδέσουμε πελάτες με διαφορετικά, αλλά κοινά από την άποψη του IPv4, σύνολα υποστήριξης πρωτοκόλλου IP μεταξύ τους.
Ναι, είναι κρίμα που οι παθητικοί χρήστες πρέπει να καπνίζουν στο περιθώριο. Αλλά αυτό δεν μπορεί να βοηθήσει, καθώς η ορατή διεύθυνση IP τους δεν είναι ιδιαίτερα σημαντική - γι' αυτό είναι υποχρεώσεις.
Μπα! Ο ενεργός πελάτης στέλνει παθητική εντολή?.. Θα ήταν λογικό να περιμένουμε μια «κολλημένη» σύνδεση, αλλά όχι, αποδεικνύεται υπό τις προϋποθέσεις A4.
Γιατί αυτό? Επικοινωνούμε με τον προγραμματιστή και λαμβάνουμε την απάντηση:
CTM δεν είναι καλό αν ο άλλος χρήστης δεν υποστηρίζει IPv6
Και δεν μπορείς να διαφωνήσεις! Αλλά αυτό απαιτεί εσωτερική λογική, ανεξάρτητη από το hub (βλ. κώδικα εδώ и εδώ). Είναι ακόμα αδύνατο να βοηθήσουμε τους παθητικούς, γιατί
Οι προσπάθειες σύνδεσης μεταξύ πελατών με κοινά σετ υποστήριξης IP IPv6 μοιάζουν με αυτό. Επιτρέψτε μου να σας θυμίσω, επιτύχετε PA Δεν τα κατάφερα για DC++.
Και πάλι έκπληξη. Αποδεικνύεται ότι η παθητική λειτουργία για το IPv6, την οποία δείχνει το DC++, είναι είτε σκόπιμη ψεύτικη είτε σφάλμα.
Ποιο είναι το επόμενο;
Επί του παρόντος, υπάρχουν ακριβώς δύο τρόποι για την επίλυση όλων των πιθανών προβλημάτων σύνδεσης χρηστών σε διαφορετικούς τρόπους λειτουργίας και με διαφορετικά σύνολα υποστήριξης πρωτοκόλλου IP.
Το πρώτο είναι να απενεργοποιήσετε εντελώς το IPv6 ή, αντίθετα, να δημιουργήσετε έναν κόμβο που θα λειτουργεί μόνο μέσω αυτού.
Το δεύτερο είναι αυτό επέκταση, που μόλις πλησιάζει στο στάδιο της δοκιμής.
Λοιπόν, εάν είστε πολύ τεμπέλης για να ρυθμίσετε την ενεργή λειτουργία για εργασία σε DC, θυμηθείτε:
Όποιος έχει, ό,τι θα του δοθεί, και όποιος δεν έχει, θα του αφαιρεθεί και αυτό που νομίζει ότι έχει. ΕΝΤΑΞΕΙ. 8:18