將 IPv6 與 Advanced Direct Connect 結合使用

觀看文件共享網路的發展很有趣,但參與其中更有趣。

今天,安裝並啟動了現代化的 國家導彈防禦中心 Hub 中,新任管理員幾乎可以獲得其前任在該領域累積的所有發展和經驗。 它有一個可擴展和自訂的系統,包括在眾多腳本的幫助下。

С ADC 否則為集線器。 該協議的設計旨在可擴展。 您想要新功能嗎? 好吧,提供它,推廣它,實施它,實施它,使用它。

翻譯成英文

因此,您當然可以開箱即用現成的集線器,但只是啟動它然後忘記它是不好的。 歷史背景下的可擴展性也意味著客戶端和伺服器軟體存在不同數量的不同功能,具體取決於版本。 對於一個使用者來說沒有問題的工作可能與另一個使用者的客戶端不相容,這一點必須考慮在內。

IPv6 就發生過這種情況。 NMDC老頭不知道原理上怎麼做,但是ADC本身已經做好準備了。 然而,事情並非如此簡單。

只是一點理論

「活動」用戶可以接受傳入連線。 實際上,來自它的連接請求實際上是 邀請函.

「被動」使用者通常只能使用傳出請求。 他透過樞紐 要求 活動用戶發送邀請 - 並建立連線。

將 IPv6 與 Advanced Direct Connect 結合使用

是的,這種機制不依賴所使用的 IP 協定的版本。

天鵝、小龍蝦和梭子魚

我們來談談客戶端軟體。

IPv6支援 DC + + 本質上是實驗性的。 它沒有單獨的設置,更令我驚訝的是,不同版本的 IP 具有不同的操作模式,被動僅適用於第六個,但這並不準確。

即使明確使用具有 AAAA 記錄的 IP 域作為 WAN,也無法在手動配置期間獲得活動模式,但在使用 UPnP 的自動模式下,一切都按預期運作。

空氣DC++ 還支援 IPv6 連接,並且它的實作完全獨立於 IPv4。 此外,該客戶端也會修改使用者標籤,以便同時顯示兩種IP協定的操作模式。 集線器本身還不知道如何做到這一點(尚),這很遺憾。

我必須立即進行預訂:AirDC++ 獨自完成此操作。 將來,為了方便起見,我將使用類似的組合 APAA 分別作為 IPv4 和 IPv6 的主動或被動操作模式的指示,而不是它們顯示在真實集線器上的真實客戶端標籤中。 這很重要。

在我們的實驗中我們將使用 飛聯DC++ 身為一個根本不熟悉 IPv6 的客戶。 還應該指出的是,支持 NATT 對他來說,在撰寫本文時,尚未在任何地方實施。

開始

首先,我們將看看不同版本的 IP 協定的使用者之間明顯不可能的連線。 將用於測試 IPv6 就緒集線器 將網域的資源 A 和 AAAA 記錄作為其地址。

將 IPv6 與 Advanced Direct Connect 結合使用

請注意,當您(實際上)嘗試聯絡具有版本 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 的用戶端將不得不將透過其連接的用戶視為明顯被動的,僅僅是因為集線器不會為他們填充 I4I6 相應字段。

將 IPv6 與 Advanced Direct Connect 結合使用
FlylinkDC++ 對比IPv6

事實上,情況更簡單,同時也更複雜。

將 IPv6 與 Advanced Direct Connect 結合使用
AirDC++ 對比IPv6

更容易,因為 IPv6 優先於 IPv4,這是可以理解的。 透過它(儘管可以使用相應的選項覆蓋),將建立與集線器的連接,並且主動客戶端將其提供給被動客戶端進行連接。

這更困難,因為如果集線器上有支援 IPv6 的用戶,但他們嚴格透過 IPv4 位址連接,那麼...

將 IPv6 與 Advanced Direct Connect 結合使用

....然後您就可以(隨機)連接到它們,而無需使用 IPv4。

請注意,遠端客戶端已將自己指定為資產,但被視為負債。 為什麼?

把他丟到鞦韆上

現在,我們嘗試將具有不同但在 IPv4 方面常見的 IP 協定支援集的用戶端連接起來。

將 IPv6 與 Advanced Direct Connect 結合使用

是的,很遺憾的是被動用戶不得不在一旁抽煙。 但這也是無濟於事的,因為它們的可見 IP 位址並不是特別重要——這就是它們成為負債的原因。

將 IPv6 與 Advanced Direct Connect 結合使用

呸! 活動客戶端發送 被動命令?.. 預期「卡住」連接是合乎邏輯的,但事實證明,情況並非如此 A4.

這是為什麼? 我們聯繫了開發商並得到了答案:

CTM 如果其他用戶不支援 IPv6,那就不好了

你不能爭論! 但這需要內部邏輯,獨立於集線器(參見程式碼 這裡 и 這裡)。 仍然無法幫助被動者,因為

活動模式 = TCPx+IPx

嘗試在具有通用 IPv6 IP 支援集的用戶端之間進行連線如下所示。 讓我提醒你,實現 PA 我沒有成功獲得 DC++。

將 IPv6 與 Advanced Direct Connect 結合使用

又是一個驚喜。 事實證明,DC++ 演示的 IPv6 被動模式要么是故意偽造的,要么是錯誤。

接下來是什麼?

目前,有兩種方法可以解決不同模式和不同IP協定支援下的用戶連線時可能出現的所有問題。

第一種方法是完全停用 IPv6,或者相反,建立一個僅透過 IPvXNUMX 工作的集線器。

第二個是這個 延期,剛剛接近測試階段。

好吧,如果您懶得設定活動模式以在 DC 中工作,請記住:

誰有,就給他;誰沒有,連他自以為有的,也要奪走。 好的。 8:18

來源: www.habr.com

添加評論