摘要:雖然BIA與SOCKS64都是為了使IPv4能夠順利過渡到IPv6的技術(shù),都是基于SOCKS的技術(shù),都是采用雙棧主機機制,都需要使用偽IP地址,但是它們的出發(fā)點卻各有側(cè)重,也各有優(yōu)缺點。
4.8.5.3 技術(shù)比較與分析
雖然BIA與SOCKS64都是為了使IPv4能夠順利過渡到IPv6的技術(shù),都是基于SOCKS的技術(shù),都是采用雙棧主機機制,都需要使用偽IP地址,但是它們的出發(fā)點卻各有側(cè)重,也各有優(yōu)缺點。
(1)適用性
BIA與SOCKS64都可以使IPv4應(yīng)用在不作任何修改的情況下與IPv6主機通信。BIA技術(shù)提供的是具有IPv4和IPv6協(xié)議的雙棧主機直接與IPv6主機通信的解決方案,SOCKS64技術(shù)提供IPv4主機通過雙棧網(wǎng)關(guān)與IPv6主機通信的解決方案。
?。?)預(yù)留IP地址的使用
BIA與SOCKS64都使用預(yù)留IP地址。雖然BIA技術(shù)中的地址池可以在節(jié)點中以不同的粒度來實現(xiàn),然而,如果有大量的IPv4應(yīng)用和IPv6的主機通信,就有可能耗盡可用地址,導(dǎo)致IPv4應(yīng)用不能和IPv6的主機通信,所以需要對地址池內(nèi)的地址進行有效管理。SOCKS64技術(shù)由于主要使用FQDN信息、通過DNS域名解析代表在SOCKSLib處負(fù)責(zé)域名管理工作,偽地址必須被作為臨時值來處理,所以不需要為地址映射預(yù)留很大的地址空間,也不需要復(fù)雜的地址申請和垃圾收集機制。
(3)對應(yīng)用的支持
BIA與SOCKS64的初衷都是不需要修改IPv4應(yīng)用而與IPv6主機通信,但是它們對應(yīng)用的支持都不能達到盡善盡美。對于BIA來說,由于需要轉(zhuǎn)換嵌在應(yīng)用層協(xié)議(例如FTP)中的IP地址,所以這種機制可能不適用于那些負(fù)載中包含地址的新應(yīng)用。BIA僅支持單播通信,如果要支持組播通信,還需要在函數(shù)映射模塊中增加新的功能。BIA只是從語義上將IPv4SocketAPI函數(shù)轉(zhuǎn)換成相應(yīng)的IPv6SocketAPI函數(shù),如果要在API函數(shù)中轉(zhuǎn)換內(nèi)嵌于應(yīng)用層協(xié)議的IP地址,其實現(xiàn)有賴于操作系統(tǒng)。由于IPv6的AH具有新的高級參數(shù),轉(zhuǎn)換帶有這種參數(shù)的IPv6API是很困難的,因此接收到的帶有高級參數(shù)的IPv6數(shù)據(jù)包會被丟棄。對于SOCKS64來說,雖然它是直接繼承SOCKS機制的技術(shù),但是在使用時仍有一定的問題。SOCKSv5協(xié)議由三個命令(CONNECT、BIND和UDPASSOCIATE)組成,所有這三個命令在SOCKS64中都能使用。其中,主要的命令也是使用最頻繁的命令CONNECT沒有明顯的弱點,可以隨意使用;而BIND命令基本上是為支持FTP類型應(yīng)用的反向通道聚合而設(shè)計的,所以通常BIND命令的使用可能會產(chǎn)生一些問題;UDPASSO?CIATE命令基本上是為簡單UDP應(yīng)用(如Archie)而設(shè)計的,所以在支持同時使用TCP和UDP的一大類應(yīng)用時通用性還不夠。另外,如果有些應(yīng)用使用了非常靈活的、特別的方式創(chuàng)建連接,SOCKS64技術(shù)就無能為力了。
(4)DNS查詢結(jié)果與服務(wù)器應(yīng)用程序版本不匹配問題
對于BIA,若正在使用的服務(wù)器端應(yīng)用不支持IPv6,但是它又運行在一臺支持其他IPv6服務(wù)的主機上,而且這臺主機還在DNS中以AAAA型記錄出現(xiàn),在DNS的查詢結(jié)果和服務(wù)器應(yīng)用的版本之間就會出現(xiàn)不匹配的情況。這時,使用BIA的IPv4客戶端應(yīng)用可能無法連接到這個服務(wù)器端應(yīng)用上。解決方法是嘗試所有在DNS中列出的地址,而不應(yīng)只嘗試一次即宣告失敗。但是對于UDPSocket,即便可能,BIA也很難發(fā)現(xiàn)可工作的IP地址,因此應(yīng)用服務(wù)必須重復(fù)嘗試各種可能的地址,直到發(fā)現(xiàn)一個可用地址為止。另種避免這種問題的方法是僅當(dāng)通信對方的A型記錄不存在時,BIA才起作用。這樣,一臺采用BIA的雙棧主機上的應(yīng)用到另一臺雙棧主機的數(shù)據(jù)流只使用IPv4協(xié)議。對于SOCKS64則不存在這個問題。
(5)安全性
對于BIA,由于采用了API翻譯器,很難實現(xiàn)端到端的安全性,而且傳輸層和應(yīng)用層的安全也同樣無法實現(xiàn)。但是,由于翻譯機制發(fā)生在SocketAPI層,所以采用BIA機制運行IPv4應(yīng)用的主機和其他IPv6主機通信時,可以利用網(wǎng)絡(luò)層的安全策略(如IPSec)。另外,由于使用預(yù)留IP地址,有出現(xiàn)地址耗盡的可能,這就使得使用這種機制的主機容易遭到拒絕服務(wù)攻擊。對于SOCKS64,由于它是直接建立在SOCKSv5協(xié)議基礎(chǔ)上的,其安全方面的特點與SOCKSv5相一致。它同樣不提供從原始源節(jié)點到最終目的節(jié)點的整體端到端的安全保證。但是由于它建立了應(yīng)用層兩個“分開的”連接的中繼,所以端到端的安全就由這兩個被中繼的鏈接來提供保證。
綜上所述,基于SOCKS的IPv4向IPv6過渡技術(shù)主要有BIA與SOCKS64兩種,它們都采用雙棧主機和IPv4預(yù)留地址機制,使IPv4應(yīng)用在不作任何修改的情況下與IPv6主機通信。BIA技術(shù)提供的是具有IPv4和IPv6協(xié)議的雙棧主機直接與IPv6主機通信的解決方案,SOCKS64技術(shù)提供的是IPv4主機通過雙棧網(wǎng)關(guān)與IPv6主機通信的解決方案。這兩種不同的解決方案有各自的優(yōu)缺點,在實際應(yīng)用時,可以根據(jù)具體情況確定采用哪種技術(shù),并根據(jù)需要對它們加以改進。
返回目錄:
編輯推薦:
中級通信專業(yè)實務(wù)
通信工程師備考資料免費領(lǐng)取
去領(lǐng)取