Advanced Direct Connect での IPv6 の使用

ファイル共有ネットワークの発展を見るのは興味深いですが、それに参加するのはさらに興味深いことです。

今日、最新のをインストールして起動します NMDC ハブを使用すると、新しく任命された管理者は、前任者がこの分野で蓄積したほぼすべての開発と経験にアクセスできるようになります。 多数のスクリプトを使用するなど、拡張やカスタマイズに対応できるシステムが備わっています。

С ADC それ以外の場合はハブ。 このプロトコルの設計は拡張可能であることを目的としています。 新しい機能が必要ですか? まあ、それを提供し、宣伝し、実装し、実装し、使用します。

英語に翻訳する

そのため、もちろん、既製のハブを箱から取り出して使用することもできますが、単に起動して忘れるのは良いことではありません。 歴史的な文脈における拡張性は、バージョンに応じてクライアントおよびサーバー ソフトウェアの異なる数の異なる機能が存在することも意味します。 また、あるユーザーにとっては問題なく動作するものでも、別のユーザーのクライアントでは互換性がない可能性があるため、これを考慮する必要があります。

これはIPv6で発生しました。 老人 NMDC は原理的にそれを行う方法を知りませんが、ADC 自体はそれを行う準備ができています。 ただし、すべてがそれほど単純ではありません。

ちょっとした理論

「アクティブ」ユーザーは受信接続を受け入れることができます。 実際、そこからの接続リクエストは実際には 招待.

「パッシブ」ユーザーは通常、送信リクエストのみを使用できます。 ハブを通して彼は просит アクティブなユーザーが招待を送信すると、接続が確立されます。

Advanced Direct Connect での IPv6 の使用

はい、このメカニズムは使用される IP プロトコルのバージョンに依存しません。

白鳥、がん、カワカマス

クライアント ソフトウェアについて話しましょう。

IPv6のサポート DC + + 本質的に実験的なものです。 これには個別の設定はなく、IP のバージョンごとに異なる動作モードがあり、XNUMX 番目だけがパッシブであることにはさらに驚きましたが、これは正確ではありません。

AAAA レコードを持つ IP ドメインを WAN として明示的に使用している場合でも、手動構成中にアクティブ モードを取得することはできませんでしたが、UPnP を使用した自動モードではすべてが期待どおりに機能しました。

AirDC ++ は IPv6 接続もサポートしており、IPv4 とは完全に分離して実装されています。 さらに、このクライアントは、両方の IP プロトコルの動作モードを同時に表示するようにユーザー タグを変更します。 ハブ自体はこれを行う方法を(まだ)知りませんが、これは残念です。

すぐに予約をしなければなりません。AirDC++ はこれを単独で実行します。 将来的には、便宜上、次のような組み合わせを使用します AP または AA 実際のハブ上の実際のクライアント タグに表示されるのではなく、IPv4 と IPv6 のそれぞれの動作モードがアクティブまたはパッシブであることを示します。 大事です。

私たちの実験では使用します フライリンクDC++ クライアントとしては IPv6 にまったく詳しくありません。 また、サポートにも注目してください。 ナット 彼にとって、この記事を書いている時点ではどこにも実装されていませんでした。

開始

まず最初に、異なるバージョンの IP プロトコルのユーザー間の明らかに不可能な接続を見ていきます。 テストに使用されます IPv6対応ハブ アドレスとして機能するドメイン名のリソース A および AAAA レコードを使用します。

Advanced Direct Connect での IPv6 の使用

(実際に) バージョン XNUMX の IP アドレスを持つユーザーに連絡しようとすると、エラーが表示されることに注意してください。

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: – しがみついてもいいですか?
A6: – しがみついてください!
P4: – 人生は苦痛です 0_0

必要に応じて短い辞書、 ここで.

逆に接続が開始された場合 A4の場合、エラーは表示されず、接続が単にハングします。

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

そうではないようです

重要なのは、ハブに表示される接続モードです。

IPv6 をサポートしていないクライアントは、IPvXNUMX を介して接続しているユーザーを明らかにパッシブとして認識する必要があります。これは、単純にハブがユーザーに代わって設定されないためです。 I4 または I6 フィールドに応じて。

Advanced Direct Connect での IPv6 の使用
FlylinkDC++ vs. IPv6

実際には、状況はより単純であると同時により複雑です。

Advanced Direct Connect での IPv6 の使用
AirDC++ とIPv6

IPv6 は IPv4 よりも優先されるため、より簡単になりますが、それは当然です。 それを通じて (対応するオプションを使用してオーバーライドが可能ですが) ハブへの接続が確立され、アクティブ クライアントはそれをパッシブ クライアントに接続のために提供します。

ハブ上で IPv6 をサポートしているユーザーがいるにもかかわらず、それらのユーザーが厳密に IPv4 アドレスを介して接続されている場合は、さらに困難になります...

Advanced Direct Connect での IPv6 の使用

...その後、IPv4 をまったく使用しなくても (ランダムに) 接続できます。

リモート クライアントはそれ自体を資産として指定していますが、負債として扱われることに注意してください。 なぜ?

彼をブランコに投げてください

ここで、異なるものの、IPv4 に関しては共通の IP プロトコル サポート セットを使用してクライアントを相互に接続してみます。

Advanced Direct Connect での IPv6 の使用

はい、受動的なユーザーが傍観者に喫煙しなければならないのは残念です。 しかし、目に見える IP アドレスは特に重要ではないため、これは仕方がないことです。それが、彼らが負債である理由です。

Advanced Direct Connect での IPv6 の使用

ああ! アクティブなクライアントが送信する パッシブコマンド?. 接続が「スタック」していると予想するのは論理的ですが、いいえ、この状況ではそうなります。 A4.

何故ですか? 開発者に連絡すると、次のような答えが得られます。

CTM 他のユーザーが IPv6 をサポートしていない場合はダメです

そして、議論することはできません! ただし、これにはハブから独立した内部ロジックが必要です (コードを参照) ここで и ここで)。 パッシブを助けることはまだ不可能です。

アクティブモード = TCPx+IPx

一般的な IPv6 IP サポート セットを使用してクライアント間で接続を試みると、次のようになります。 思い出させてください、達成してください PA DC++では成功しませんでした。

Advanced Direct Connect での IPv6 の使用

そしてまたしても驚き。 DC++ が実証している IPv6 のパッシブ モードは、意図的な偽物かバグであることが判明しました。

次は何ですか?

現在、さまざまなモードおよびさまざまな IP プロトコル サポート セットでユーザーを接続する際に考えられるすべての問題を解決する方法は XNUMX つあります。

6 つ目は、IPvXNUMX を完全にミュートするか、逆に、IPvXNUMX を介してのみ機能するハブを作成することです。

XNUMXつ目はこれです 拡張、テスト段階に近づいたばかりです。

DC で作業するためにアクティブ モードを設定するのが面倒な場合は、次のことを思い出してください。

持っている人には何が与えられ、持っていない人には、自分が持っていると思っているものさえも奪われます。 わかりました。 8:18

出所: habr.com

コメントを追加します