Sangat menarik untuk menyaksikan perkembangan jaringan berbagi file, tetapi lebih menarik lagi untuk berpartisipasi di dalamnya.
Hari ini, menginstal dan meluncurkan yang modern NMDC hub, administrator yang baru dibentuk mendapatkan akses ke hampir semua perkembangan dan pengalaman yang dikumpulkan di bidang pendahulunya ini. Ia memiliki sistem yang siap untuk diperluas dan disesuaikan, termasuk dengan bantuan berbagai skrip.
Π‘ ADC hub sebaliknya. Desain protokol ini dimaksudkan agar dapat diperluas. Apakah Anda ingin fitur baru? Tawarkan, promosikan, terapkan, terapkan, gunakan.
Hasilnya, tentu saja, Anda bisa mendapatkan hub yang sudah jadi, tetapi meluncurkannya dan melupakannya saja tidak akan baik. Ekstensibilitas dalam konteks historis juga menyiratkan adanya sejumlah fungsi berbeda dari perangkat lunak klien dan server, bergantung pada versinya. Dan apa yang akan berfungsi tanpa masalah untuk satu pengguna mungkin tidak kompatibel dengan klien pengguna lain, dan ini harus diperhitungkan.
Ini terjadi dengan IPv6. Orang tua NMDC pada prinsipnya tidak tahu bagaimana melakukannya, tetapi ADC sendiri siap untuk itu. Namun, tidak semuanya sesederhana itu.
Hanya sedikit teori
Pengguna "aktif" dapat menerima koneksi masuk. Sebenarnya permintaan koneksi yang datang darinya sebenarnya undangan.
Pengguna "pasif" umumnya hanya dapat menggunakan permintaan keluar. Melalui hub dia bertanya pengguna aktif mengirimkan undangan - dan koneksi dibuat.
Dan ya, mekanisme ini tidak bergantung pada versi protokol IP yang digunakan.
Swan, Cancer, dan Pike
Mari kita bicara tentang perangkat lunak klien.
dukungan IPv6 DC + + bersifat eksperimental. Tidak ada pengaturan terpisah untuk itu, dan yang lebih mengejutkan bagi saya adalah melihat mode operasi yang berbeda untuk versi IP yang berbeda, dengan pasif hanya untuk yang keenam, tetapi ini tidak akurat.
Tidak mungkin mendapatkan mode aktif selama konfigurasi manual bahkan ketika secara eksplisit menggunakan domain IP dengan catatan AAAA sebagai WAN, tetapi dalam mode otomatis menggunakan UPnP semuanya berfungsi seperti yang diharapkan.
UdaraDC++ juga memiliki dukungan untuk koneksi IPv6, dan diimplementasikan sepenuhnya terpisah dari IPv4. Selain itu, klien ini memodifikasi tag pengguna sedemikian rupa untuk menampilkan mode operasi untuk kedua protokol IP secara bersamaan. Hubnya sendiri (belum) tahu bagaimana melakukan hal ini, dan itu sangat disayangkan.
Saya harus segera membuat reservasi: AirDC++ melakukan ini sendiri dan untuk dirinya sendiri. Nantinya, untuk kenyamanan, saya akan menggunakan kombinasi seperti AP ΠΈΠ»ΠΈ AA sebagai indikasi mode operasi aktif atau pasif untuk IPv4 dan IPv6, dan bukan tampilannya di tag klien sebenarnya di hub sebenarnya. Itu penting.
Dalam percobaan kami, kami akan menggunakan Tautan TerbangDC++ sebagai klien sama sekali tidak akrab dengan IPv6. Perlu juga diperhatikan dukungan itu NATT baginya pada saat penulisan artikel ini belum diterapkan di mana pun.
awal
Pertama-tama, kita akan melihat koneksi yang jelas-jelas mustahil antara pengguna versi protokol IP yang berbeda. Akan digunakan untuk ujian Hub siap IPv6 dengan sumber daya A- dan AAAA-catatan untuk nama domain yang bertindak sebagai alamatnya.
Harap dicatat bahwa ketika Anda (sebenarnya) mencoba menghubungi pengguna dengan alamat IP versi XNUMX, kesalahan akan ditampilkan.
Yang penting adalah mode koneksi yang ditampilkan di hub.
Klien tanpa dukungan IPv6 harus melihat pengguna yang terhubung melaluinya sebagai pengguna yang pasif, hanya karena hub tidak terisi untuk mereka I4 ΠΈΠ»ΠΈ I6 bidang yang sesuai.
FlylinkDC++ vs. IPv6
Pada kenyataannya, situasinya lebih sederhana dan sekaligus lebih kompleks.
AirDC++ vs. IPv6
Lebih mudah karena IPv6 lebih diutamakan daripada IPv4, dan itu bisa dimengerti. Melalui itu (walaupun override tersedia menggunakan opsi yang sesuai) koneksi ke hub akan dibuat, dan klien aktif akan menawarkannya ke klien pasif untuk koneksi.
Ini lebih sulit, karena jika ada pengguna dengan dukungan IPv6 di hub, tetapi mereka terhubung secara ketat melalui alamat IPv4, maka...
... lalu Anda dapat menyambungkannya (secara acak) tanpa harus memiliki IPv4 sama sekali.
Harap dicatat bahwa klien jarak jauh telah menetapkan dirinya sebagai aset, namun diperlakukan sebagai liabilitas. Mengapa?
Lemparkan dia ke dalam ayunan
Sekarang mari kita coba menghubungkan klien dengan rangkaian dukungan protokol IP yang berbeda, namun umum dalam hal IPv4.
Ya, sayang sekali pengguna pasif harus merokok di sela-sela. Namun hal ini tidak bisa dihindari, karena alamat IP mereka yang terlihat tidak terlalu penting - itulah mengapa mereka menjadi kewajiban.
Bah! Klien aktif mengirim perintah pasif?.. Masuk akal untuk mengharapkan koneksi "macet", tetapi tidak, ternyata dalam kondisi tersebut A4.
Mengapa demikian? Kami menghubungi pengembang dan mendapatkan jawabannya:
CTM tidak baik jika pengguna lain tidak mendukung IPv6
Dan Anda tidak bisa berdebat! Tapi ini memerlukan logika internal, independen dari hub (lihat kode di sini ΠΈ di sini). Masih tidak mungkin untuk membantu yang pasif, karena
Upaya untuk menghubungkan antara klien dengan set dukungan IP IPv6 yang umum terlihat seperti ini. Izinkan saya mengingatkan Anda, raihlah PA Saya tidak berhasil untuk DC++.
Dan lagi-lagi kejutan. Ternyata mode pasif untuk IPv6, yang ditunjukkan oleh DC++, adalah palsu atau bug yang disengaja.
Apa selanjutnya?
Saat ini, ada dua cara untuk menyelesaikan semua kemungkinan masalah yang menghubungkan pengguna dalam mode berbeda dan dengan rangkaian dukungan protokol IP berbeda.
Yang pertama adalah menonaktifkan IPv6 sama sekali atau, sebaliknya, membuat hub untuk bekerja hanya melalui IPvXNUMX.
Yang kedua adalah ini pembesaran, yang baru saja mendekati tahap pengujian.
Nah, jika Anda terlalu malas untuk mengatur mode aktif untuk bekerja di DC, ingatlah:
Barangsiapa mempunyai maka apa yang akan diberikan kepadanya, dan barangsiapa tidak mempunyai, apa pun yang disangkanya dimilikinya, maka akan diambil darinya. OKE. 8:18