城域網(wǎng)IPv6過渡技術(shù)—NAT64中雙棧用戶的業(yè)務(wù)流程
前面提到DS-lite對(duì)于雙棧用戶的DNS request是啟用DNS-proxy,即將用戶的IPv4 DNS終結(jié)在家庭網(wǎng)關(guān)B4上,再有B4發(fā)起DNS request,之所以采用這種方式是因?yàn)镈S-lite默認(rèn)B4和AFTR之間的網(wǎng)絡(luò)是IPv6單棧的,因此將DNS request采用IPv6方式承載。
在NAT64中,雙棧用戶的IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)有可能都能訪問服務(wù)器,用戶采用哪種報(bào)文格式進(jìn)行DNS請(qǐng)求和業(yè)務(wù)轉(zhuǎn)發(fā)呢?
典型的雙棧系統(tǒng)DNS訪問行為如下圖所示。首先,雙棧主機(jī)會(huì)同時(shí)發(fā)起AAAA和A的請(qǐng)求,在部署了DNS44和DNS64的情況下,可以獲得AAAA的響應(yīng),也可以獲得A的響應(yīng);然后,主機(jī)優(yōu)先選擇IPv6網(wǎng)絡(luò)進(jìn)行業(yè)務(wù)訪問,在IPv6網(wǎng)絡(luò)失敗的情況下,再選擇IPv4網(wǎng)絡(luò)進(jìn)行訪問,網(wǎng)絡(luò)層設(shè)備根據(jù)主機(jī)發(fā)起的數(shù)據(jù)包類型采用相應(yīng)的協(xié)議進(jìn)行承載。
上述流程,用戶是先發(fā)起IPv6訪問,再IPv6網(wǎng)絡(luò)不可用時(shí),再選擇采用IPv4網(wǎng)絡(luò)訪問,增加了用戶業(yè)務(wù)等待時(shí)間,降低了業(yè)務(wù)體驗(yàn)。為了解決這個(gè)問題,將典型的雙棧系統(tǒng)進(jìn)行了優(yōu)化,即雙棧終端同時(shí)發(fā)起TCP SYN IPv6和TCP SYN IPv4過程。
當(dāng)IPv6網(wǎng)絡(luò)不可用時(shí),優(yōu)化后的流程如下圖所示:當(dāng)用戶在規(guī)定時(shí)間內(nèi)僅收到IPv4網(wǎng)絡(luò)相應(yīng),則發(fā)起IPv4承載。
當(dāng)IPv4和IPv6網(wǎng)絡(luò)不可用時(shí),優(yōu)化后的流程如下圖所示:用戶在獲得IPv4和IPv6同時(shí)相應(yīng)是,將發(fā)起IPv6承載,并通知IPv4中斷TCP服務(wù)。
以上流程來源于RFC6555(Happy Eyeballs : Success with Dual-Stack Hosts)的描述。從上述描述也可以看出,標(biāo)準(zhǔn)規(guī)定在IPv6網(wǎng)絡(luò)可用狀態(tài)時(shí),優(yōu)先選擇IPv6網(wǎng)絡(luò)承載,僅當(dāng)IPv6網(wǎng)絡(luò)不通時(shí),才會(huì)選擇IPv4網(wǎng)絡(luò)承載。因此對(duì)于雙棧用戶訪問IPv4資源的情況,且同時(shí)獲得AAAA和A響應(yīng)時(shí),優(yōu)先選擇采用IPv6網(wǎng)絡(luò)嘗試業(yè)務(wù)訪問,所以不會(huì)直接采用IPv4承載訪問業(yè)務(wù)。
這樣設(shè)計(jì)的初衷是為了促進(jìn)IPv6網(wǎng)絡(luò)的發(fā)展,另外,對(duì)于雙棧用戶,假如要采用IPv4承載,還需要分配IPv4地址,仍然會(huì)加大對(duì)IPv4的地址壓力,若采用的IPv4地址為私網(wǎng)IPv4,還將會(huì)引入NAT444部署來解決地址轉(zhuǎn)換,業(yè)務(wù)體驗(yàn)跟直接采用IPv6承載再經(jīng)過NAT64訪問IPv4服務(wù)器是一致的。因此推薦用戶優(yōu)先采用IPv6承載方式進(jìn)行服務(wù)而不是優(yōu)先選擇IPv4承載方式。
原文鏈接:http://blog.csdn.net/hanlijin/article/details/17076067





















