Menggunakan IPv6 dengan Advanced Direct Connect

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.

Translate bahasa inggris

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.

Menggunakan IPv6 dengan Advanced Direct Connect

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.

Menggunakan IPv6 dengan Advanced Direct Connect

Harap dicatat bahwa ketika Anda (sebenarnya) mencoba menghubungi pengguna dengan alamat IP versi XNUMX, kesalahan akan ditampilkan.

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

Dalam terjemahan manusia kedengarannya seperti itu

P4: – Bolehkah aku melekat padamu?
A6: – Bertahanlah!
P4: – Hidup itu menyakitkan 0_0

Kamus singkat, jika perlu, di sini.

Dan jika sebaliknya, dan koneksi dimulai A4, maka tidak ada kesalahan yang ditampilkan dan koneksi terhenti begitu saja.

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

Jadilah, sepertinya tidak

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.

Menggunakan IPv6 dengan Advanced Direct Connect
FlylinkDC++ vs. IPv6

Pada kenyataannya, situasinya lebih sederhana dan sekaligus lebih kompleks.

Menggunakan IPv6 dengan Advanced Direct Connect
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...

Menggunakan IPv6 dengan Advanced Direct Connect

... 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.

Menggunakan IPv6 dengan Advanced Direct Connect

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.

Menggunakan IPv6 dengan Advanced Direct Connect

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

Modus aktif = TCPx+IPx

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++.

Menggunakan IPv6 dengan Advanced Direct Connect

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

Sumber: www.habr.com

Tambah komentar