本發(fā)明涉及通訊領(lǐng)域,具體涉及一種地址轉(zhuǎn)換處理方法和地址轉(zhuǎn)換處理裝置。
背景技術(shù):
移動(dòng)目標(biāo)防御(MTD,Moving Target Defence)技術(shù)是相對于傳統(tǒng)的靜態(tài)網(wǎng)絡(luò)提出的新型防御策略,它的目的在于混淆網(wǎng)絡(luò)環(huán)境,讓內(nèi)網(wǎng)情況“亦真亦假”,最后達(dá)到阻止,拖延內(nèi)網(wǎng)中惡意流成員攻擊的目的。軟件定義網(wǎng)絡(luò)(SDN,Software Define Network)是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其核心技術(shù)OpenFlow(即開放流)通過將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能。
開放流隨機(jī)主機(jī)突變(OF RHM,OpenFlow Random Host Mutation)技術(shù)是基于OpenFlow的RHM技術(shù),OF RHM技術(shù)對于主機(jī)是透明的,并且能提供較高的突變速率,其實(shí)質(zhì)是利用開放流研究移動(dòng)目標(biāo)防御體系結(jié)構(gòu),實(shí)現(xiàn)主機(jī)地址的不可預(yù)知性及高速變換。然而,在工程化的實(shí)踐過程中發(fā)現(xiàn),現(xiàn)有的OF RHM技術(shù)存在如下弊端:在長連接場景中,由于位于服務(wù)器主機(jī)一側(cè)的地址轉(zhuǎn)換單元和位于客戶端主機(jī)一側(cè)的地址轉(zhuǎn)換單元執(zhí)行變換的時(shí)刻或多或少會(huì)存在時(shí)間差(即很難保持完全同步),因此,存在的時(shí)間差將可能導(dǎo)致不同地址轉(zhuǎn)換單元在某些時(shí)刻所采用的地址轉(zhuǎn)換機(jī)制不一致,從而導(dǎo)致傳輸?shù)臄?shù)據(jù)包無法正常地到達(dá)對端,即出現(xiàn)丟包事件。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種地址轉(zhuǎn)換處理方法和地址轉(zhuǎn)換處理裝置,用于減少因執(zhí)行地址轉(zhuǎn)換機(jī)制變換不同步而導(dǎo)致的丟包事件的發(fā)生。
本發(fā)明第一方面提供一種地址轉(zhuǎn)換處理方法,其特征在于,包括:
獲取新的地址轉(zhuǎn)換機(jī)制,其中,上述新的地址轉(zhuǎn)換機(jī)制以第一偽裝地址偽裝服務(wù)器主機(jī)的真實(shí)地址;
檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件;
若當(dāng)前滿足上述機(jī)制變換條件,則,將舊的地址轉(zhuǎn)換機(jī)制替換為上述新的地址轉(zhuǎn)換機(jī)制,并在后續(xù)接收到目的地址為上述第一偽裝地址的數(shù)據(jù)包時(shí),根據(jù)上述新的地址轉(zhuǎn)換機(jī)制將上述數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主機(jī)的真實(shí)地址,其中,上述舊的地址轉(zhuǎn)換機(jī)制以第二偽裝地址偽裝上述服務(wù)器主機(jī)的真實(shí)地址;
若當(dāng)前不滿足上述機(jī)制變換條件,則,保留上述舊的地址轉(zhuǎn)換機(jī)制,并在后續(xù)接收到目的地址為上述第一偽裝地址或上述第二偽裝地址的數(shù)據(jù)包時(shí),根據(jù)相應(yīng)的地址轉(zhuǎn)換機(jī)制將上述數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主機(jī)的真實(shí)地址。
本發(fā)明第二方面提供一種地址轉(zhuǎn)換處理裝置,包括:
獲取單元,用于獲取新的地址轉(zhuǎn)換機(jī)制,其中,上述新的地址轉(zhuǎn)換機(jī)制以第一偽裝地址偽裝服務(wù)器主機(jī)的真實(shí)地址;
檢測單元,用于檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件;
機(jī)制變換處理單元,用于當(dāng)上述檢測單元檢測出當(dāng)前滿足上述機(jī)制變換條件時(shí),將舊的地址轉(zhuǎn)換機(jī)制替換為上述獲取單元獲取的新的地址轉(zhuǎn)換機(jī)制,其中,上述舊的地址轉(zhuǎn)換機(jī)制以第二偽裝地址偽裝上述服務(wù)器主機(jī)的真實(shí)地址;當(dāng)上述檢測單元檢測出當(dāng)前不滿足上述機(jī)制變換條件時(shí),保留上述舊的地址轉(zhuǎn)換機(jī)制;
地址轉(zhuǎn)換單元,用于當(dāng)接收到目的地址為上述第一偽裝地址的數(shù)據(jù)包時(shí),根據(jù)上述新的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主機(jī) 的真實(shí)地址;當(dāng)接收到目的地址為上述第二偽裝地址的數(shù)據(jù)包,且本地同時(shí)存在上述新的地址轉(zhuǎn)換機(jī)制和上述舊的地址轉(zhuǎn)換機(jī)制時(shí),根據(jù)上述舊的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主機(jī)的真實(shí)地址。
由上可見,本發(fā)明中當(dāng)獲取到新的地址轉(zhuǎn)換機(jī)制時(shí),檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件,若滿足,則,將舊的地址轉(zhuǎn)換機(jī)制替換為新的地址轉(zhuǎn)換地址,若不滿足,則保留舊的地址轉(zhuǎn)換機(jī)制,以便在接收到目的地址為舊的地址轉(zhuǎn)換機(jī)制指示的第二偽裝地址的數(shù)據(jù)包時(shí),還能夠根據(jù)該舊的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址,從而避免了因舊的地址轉(zhuǎn)換機(jī)制被替換,使得該數(shù)據(jù)包的目的地址無法被轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址而導(dǎo)致該數(shù)據(jù)包丟失的事件發(fā)生。通過本發(fā)明方案,能夠有效減少因執(zhí)行地址轉(zhuǎn)換機(jī)制變換不同步而導(dǎo)致的丟包事件的發(fā)生。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種地址轉(zhuǎn)換處理方法一個(gè)實(shí)施例流程示意圖;
圖2-a為本發(fā)明提供的一種應(yīng)用場景下的網(wǎng)絡(luò)架構(gòu)示意圖;
圖2-b為應(yīng)用于圖2-a的網(wǎng)絡(luò)架構(gòu)的地址轉(zhuǎn)換處理方法另一個(gè)實(shí)施例流程示意圖;
圖3為本發(fā)明提供的一種地址轉(zhuǎn)換處理裝置一個(gè)實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié) 合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種地址轉(zhuǎn)換處理方法,包括:獲取新的地址轉(zhuǎn)換機(jī)制,其中,上述新的地址轉(zhuǎn)換機(jī)制以第一偽裝地址偽裝服務(wù)器主機(jī)的真實(shí)地址;檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件;若當(dāng)前滿足上述機(jī)制變換條件,則,將舊的地址轉(zhuǎn)換機(jī)制替換為上述新的地址轉(zhuǎn)換機(jī)制,并在后續(xù)接收到目的地址為上述第一偽裝地址的數(shù)據(jù)包時(shí),根據(jù)上述新的地址轉(zhuǎn)換機(jī)制將上述數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主機(jī)的真實(shí)地址,其中,上述舊的地址轉(zhuǎn)換機(jī)制以第二偽裝地址偽裝上述服務(wù)器主機(jī)的真實(shí)地址;若當(dāng)前不滿足上述機(jī)制變換條件,則,保留上述舊的地址轉(zhuǎn)換機(jī)制,并在后續(xù)接收到目的地址為上述第一偽裝地址或上述第二偽裝地址的數(shù)據(jù)包時(shí),根據(jù)相應(yīng)的地址轉(zhuǎn)換機(jī)制將上述數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主機(jī)的真實(shí)地址。本發(fā)明實(shí)施例還提供相應(yīng)的地址轉(zhuǎn)換處理裝置,以下分別進(jìn)行詳細(xì)說明。
下面對本發(fā)明實(shí)施例提供的一種地址轉(zhuǎn)換處理方法進(jìn)行描述,該地址轉(zhuǎn)換處理方法為針對MTD技術(shù)的核心需求而提出的軟切換方案,能夠在實(shí)現(xiàn)長連接地址變化功能的前提下,大大消除地址轉(zhuǎn)換機(jī)制變換時(shí)的丟包問題。請參閱圖1,本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理方法包括:
101、獲取新的地址轉(zhuǎn)換機(jī)制;
本發(fā)明實(shí)施例中,地址轉(zhuǎn)換機(jī)制用于提供地址轉(zhuǎn)換的策略,以便當(dāng)接收數(shù)據(jù)包(或發(fā)送數(shù)據(jù)包)時(shí),能夠在地址轉(zhuǎn)換機(jī)制的引導(dǎo)下,將接收到的數(shù)據(jù)包(或待發(fā)送的數(shù)據(jù)包)中的目的地址(或源地址)偽裝為該地址轉(zhuǎn)換機(jī)制所指示的偽裝地址。
在步驟101中,可以主動(dòng)或被動(dòng)獲取新的地址轉(zhuǎn)換機(jī)制,該新的地址轉(zhuǎn)換機(jī)制以第一偽裝地址偽裝服務(wù)器主機(jī)的真實(shí)地址。其中,主動(dòng)獲取新的地址轉(zhuǎn)換機(jī)制例如可以是周期性或?qū)崟r(shí)檢測控制設(shè)備中(例如位于控制面的控制設(shè)備)是否有新的地址轉(zhuǎn)換機(jī)制產(chǎn)生,若存在,則主動(dòng)從該控制設(shè)備中獲取新的地址轉(zhuǎn)換機(jī)制。被動(dòng)獲取新的地址轉(zhuǎn)換機(jī)制則等待接收來自上述控制設(shè)備的新的地址轉(zhuǎn)換機(jī)制即可。
102、檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件;
本發(fā)明實(shí)施中,根據(jù)實(shí)際需求預(yù)先設(shè)置一機(jī)制變換條件,設(shè)置該機(jī)制變換條件的目的是為了確保舊的地址轉(zhuǎn)換機(jī)制不再被客戶端一側(cè)用于數(shù)據(jù)包的發(fā)送和接收。在步驟102中,當(dāng)檢測到當(dāng)前滿足該機(jī)制變換條件時(shí),執(zhí)行步驟103,當(dāng)檢測到當(dāng)前不滿足該機(jī)制變換條件時(shí),執(zhí)行步驟104。具體地,在每次獲取新的地址轉(zhuǎn)換機(jī)制后,周期性執(zhí)行步驟102或者在每次檢測到不滿足該機(jī)制變換條件時(shí)重新執(zhí)行步驟102,直至檢測到當(dāng)前滿足該機(jī)制變換條件時(shí)為止。
在一種應(yīng)用場景中,上述預(yù)設(shè)的機(jī)制變化條件為舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間超過預(yù)設(shè)的時(shí)長,其中,上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)是指采用上述舊的地址轉(zhuǎn)換機(jī)制的所有傳輸層協(xié)議會(huì)話(例如傳輸控制協(xié)議(TCP,Transmission Control Protocol)會(huì)話或者用戶數(shù)據(jù)報(bào)協(xié)議(UDP,User Datagram Protocol))已經(jīng)終止(即close)且老化。在步驟102中,檢測上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間是否超過預(yù)設(shè)的時(shí)長;若超過該時(shí)長,則判定當(dāng)前滿足上述機(jī)制變換條件,執(zhí)行步驟103;若未超過該時(shí)長,則判定當(dāng)前不滿足上述機(jī)制變換條件,執(zhí)行步驟104。
在另一種應(yīng)用場景中,上述預(yù)設(shè)的機(jī)制變化條件為接收到機(jī)制變換完成消息,其中,上述機(jī)制變換完成消息指示客戶端一側(cè)已全部完成將舊的地址轉(zhuǎn)換 機(jī)制替換為新的地址轉(zhuǎn)換機(jī)制的過程。在步驟102中,檢測是否接收到上述機(jī)制變換完成消息;若接收到上述機(jī)制變換完成消息,則判定當(dāng)前滿足上述機(jī)制變換條件,執(zhí)行步驟103;若接收不到上述機(jī)制變換完成消息,則判定當(dāng)前不滿足上述機(jī)制變換條件,執(zhí)行步驟104。具體地,在本應(yīng)用場景中,客戶端一側(cè)在完成將舊的地址轉(zhuǎn)換機(jī)制替換為新的地址轉(zhuǎn)換機(jī)制的過程之后,會(huì)向位于控制面的控制設(shè)備發(fā)送通知消息,以通知該控制設(shè)備其已完成地址轉(zhuǎn)換機(jī)制的變換,當(dāng)該控制設(shè)備接收到其管理的所有客戶端發(fā)送的通知消息后,會(huì)向服務(wù)器一側(cè)發(fā)送上述機(jī)制變換完成消息。
在再一種應(yīng)用場景中,上述預(yù)設(shè)的機(jī)制變化條件也可為:舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間超過預(yù)設(shè)的時(shí)長或接收到機(jī)制變換完成消息(即前述兩種應(yīng)用場景的結(jié)合),則步驟102可以有如下兩種處理方式:1、先檢測上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間是否超過預(yù)設(shè)的時(shí)長,當(dāng)檢測到上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間超過該時(shí)長時(shí),判定當(dāng)前滿足上述機(jī)制變換條件,執(zhí)行步驟103,當(dāng)檢測到上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間不超過該時(shí)長時(shí),進(jìn)一步檢測是否接收到上述機(jī)制變換完成消息,當(dāng)檢測到接收到上述機(jī)制變換完成消息時(shí),判定當(dāng)前滿足上述機(jī)制變換條件,執(zhí)行步驟103,當(dāng)檢測到未接收到上述機(jī)制變換完成消息時(shí),判定當(dāng)前不滿足上述機(jī)制變換條件,執(zhí)行步驟104;2、先檢測是否接收到上述機(jī)制變換完成消息,當(dāng)檢測到接收到上述機(jī)制變換完成消息時(shí),判定當(dāng)前滿足上述機(jī)制變換條件,執(zhí)行步驟103,當(dāng)檢測到未接收到上述機(jī)制變換完成消息時(shí),進(jìn)一步判斷上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間是否超過預(yù)設(shè)的時(shí)長,當(dāng)檢測到上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間超過該時(shí)長時(shí),判定當(dāng)前滿足上述機(jī)制變換條件,執(zhí)行步驟103,當(dāng)檢測到上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間不超過該時(shí)長時(shí),判定當(dāng)前不滿足上述機(jī)制變換條件,執(zhí)行步驟104。
當(dāng)然,除了上述幾種方式之外,也可以根據(jù)實(shí)際需要設(shè)置機(jī)制變換條件和響應(yīng)的檢測機(jī)制,此處不作限定。
步驟103、將舊的地址轉(zhuǎn)換機(jī)制替換為新的地址轉(zhuǎn)換機(jī)制,并在后續(xù)接收到目的地址為第一偽裝地址的數(shù)據(jù)包時(shí),根據(jù)上述新的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址;
在步驟103中,將舊的地址轉(zhuǎn)換機(jī)制替換為步驟101獲取到的新的地址轉(zhuǎn)換機(jī)制,并在后續(xù)接收到目的地址為該新的地址轉(zhuǎn)換機(jī)制指示的第一偽裝地址的數(shù)據(jù)包時(shí),根據(jù)上述新的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址。其中,上述舊的地址轉(zhuǎn)換機(jī)制以第二偽裝地址偽裝上述服務(wù)器主機(jī)的真實(shí)地址。
步驟104、保留上述舊的地址轉(zhuǎn)換機(jī)制,并在后續(xù)接收到目的地址為第一偽裝地址或第二偽裝地址的數(shù)據(jù)包時(shí),根據(jù)相應(yīng)的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址;
在步驟104中,保留舊的地址轉(zhuǎn)換機(jī)制,使得舊的地址轉(zhuǎn)換機(jī)制和步驟101獲取到的新的地址轉(zhuǎn)換機(jī)制并存,以便在后續(xù)接收到目的地址為第二偽裝地址的數(shù)據(jù)包時(shí),也能夠根據(jù)舊的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址。
需要說明的是,上述第一偽裝地址和上述第二偽裝地址包括如下一種或多種組合:互聯(lián)網(wǎng)協(xié)議(IP,Internet Protoco)地址,邏輯端口號(hào),vlan標(biāo)識(shí)號(hào)(即vlan tag)和物理地址(即MAC地址)。
進(jìn)一步,當(dāng)上述第一偽裝地址包含IP地址時(shí),本發(fā)明實(shí)施例還可以進(jìn)一步提供檢測變換后路徑可達(dá)的機(jī)制,即在步驟101之后,本發(fā)明實(shí)施例還可以包括如下步驟:向網(wǎng)絡(luò)側(cè)設(shè)備發(fā)送免費(fèi)地址解析協(xié)議(APR,Address Resolution Protocol)報(bào)文,該免費(fèi)APR報(bào)文攜帶與上述第一偽裝地址包含的IP地址對 應(yīng)的物理地址,以便客戶端一側(cè)能夠通過APR查詢的方式確認(rèn)變換后的網(wǎng)絡(luò)路徑已經(jīng)可達(dá)。
進(jìn)一步,若服務(wù)器主機(jī)借助域名系統(tǒng)服務(wù)器(即DNS服務(wù)器)或Windows網(wǎng)絡(luò)名稱服務(wù)器(即WINS服務(wù)器)管理動(dòng)態(tài)IP地址,則在步驟101之后,本發(fā)明實(shí)施例還可以包括如下步驟:將與上述服務(wù)器主機(jī)連接的域名系統(tǒng)服務(wù)器或Windows網(wǎng)絡(luò)名稱服務(wù)器中記錄的上述服務(wù)器主機(jī)的動(dòng)態(tài)IP地址更新為上述第一偽裝地址所包含的IP地址。
需要說明的是,本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理方法可以由地址轉(zhuǎn)換處理裝置實(shí)現(xiàn),該地址轉(zhuǎn)換處理裝置可以部署在服務(wù)器主機(jī)一側(cè),或者,也可以集成在該服務(wù)器主機(jī)中,此處不作限定。
由上可見,本發(fā)明中當(dāng)獲取到新的地址轉(zhuǎn)換機(jī)制時(shí),檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件,若滿足,則,將舊的地址轉(zhuǎn)換機(jī)制替換為新的地址轉(zhuǎn)換地址,若不滿足,則保留舊的地址轉(zhuǎn)換機(jī)制,以便在接收到目的地址為舊的地址轉(zhuǎn)換機(jī)制指示的第二偽裝地址的數(shù)據(jù)包時(shí),還能夠根據(jù)該舊的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址,從而避免了因舊的地址轉(zhuǎn)換機(jī)制被替換,使得該數(shù)據(jù)包的目的地址無法被轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址而導(dǎo)致該數(shù)據(jù)包丟失的事件發(fā)生。通過本發(fā)明方案,能夠有效減少因執(zhí)行地址轉(zhuǎn)換機(jī)制變換不同步而導(dǎo)致的丟包事件的發(fā)生。將本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理方法應(yīng)用于長連接場景之后,能夠減少網(wǎng)絡(luò)變形(即地址轉(zhuǎn)換機(jī)制變換)時(shí)對已有連接的影響,提高服務(wù)質(zhì)量(QoS,Quality of Service)。
為了便于更好地理解圖1所示實(shí)施例的地址轉(zhuǎn)換處理方法,下面以圖2-a所示的網(wǎng)絡(luò)架構(gòu)為例,對本發(fā)明實(shí)施例之后的地址轉(zhuǎn)換處理方法進(jìn)行舉例說明。由圖2-a可見,該網(wǎng)絡(luò)架構(gòu)包括服務(wù)器主機(jī)、部署與服務(wù)器主機(jī)一側(cè)的地址轉(zhuǎn)換處理裝置S、客戶端主機(jī)、部署與客戶端主機(jī)一側(cè)的地址轉(zhuǎn)換處理裝置 C以及位于控制面的控制設(shè)備,該控制設(shè)備會(huì)定期向地址轉(zhuǎn)換處理裝置S和地址轉(zhuǎn)換處理裝置C下發(fā)新的地址轉(zhuǎn)換機(jī)制,以實(shí)現(xiàn)服務(wù)器主機(jī)地址的變形。需要說明的是,該控制設(shè)備每次向地址轉(zhuǎn)換處理裝置S和地址轉(zhuǎn)換處理裝置C下發(fā)的地址轉(zhuǎn)換機(jī)制指示的地址轉(zhuǎn)換策略是一致的。
下面以服務(wù)器主機(jī)的真實(shí)地址為rA2,地址轉(zhuǎn)換處理裝置S當(dāng)前存在的地址轉(zhuǎn)換機(jī)制PS1和地址轉(zhuǎn)換處理裝置C當(dāng)前存在的地址轉(zhuǎn)換機(jī)制PC1均以vA2偽裝服務(wù)器主機(jī)的真實(shí)地址(即包含:vA2<—>rA2的地址轉(zhuǎn)換策略)為例進(jìn)行說明,本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理方法如圖2-b所示,包括:
步驟201、地址轉(zhuǎn)換處理裝置S基于地址轉(zhuǎn)換機(jī)制PS1進(jìn)行地址轉(zhuǎn)換;
在步驟201中,地址轉(zhuǎn)換處理裝置S基于地址轉(zhuǎn)換機(jī)制PS1進(jìn)行地址轉(zhuǎn)換,即地址轉(zhuǎn)換處理裝置S在接收到目的地址為vA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為rA2,在接收到源地址為rA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的源地址轉(zhuǎn)換為vA2。相應(yīng)的,地址轉(zhuǎn)換處理裝置C也會(huì)基于地址轉(zhuǎn)換機(jī)制PC1進(jìn)行地址轉(zhuǎn)換,即地址轉(zhuǎn)換處理裝置C在接收到目的地址為rA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為vA2,在接收到源地址為vA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的源地址轉(zhuǎn)換為rA2。
步驟202、地址轉(zhuǎn)換處理裝置S接收控制設(shè)備下發(fā)的地址轉(zhuǎn)換機(jī)制PS2;
需要說明的是,為了便于區(qū)分,本發(fā)明實(shí)施例將控制設(shè)備向地址轉(zhuǎn)換處理裝置S下發(fā)的新的地址轉(zhuǎn)換機(jī)制描述為地址轉(zhuǎn)換機(jī)制PS2。設(shè)該地址轉(zhuǎn)換機(jī)制PS2以vA2’偽裝服務(wù)器主機(jī)的真實(shí)地址(即包含:vA2’<—>rA2的地址轉(zhuǎn)換策略)。
步驟203、地址轉(zhuǎn)換處理裝置S向網(wǎng)絡(luò)側(cè)設(shè)備發(fā)送免費(fèi)ARP報(bào)文;
本發(fā)明實(shí)施例之后,vA2’包含IP地址,在步驟203中通過發(fā)送免費(fèi)ARP報(bào)文,以便通知客戶端主機(jī)vA2’中的IP地址對應(yīng)的MAC地址。
步驟204、地址轉(zhuǎn)換處理裝置S檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件;
其中,步驟203的具體實(shí)現(xiàn)過程可以參照圖1所示實(shí)施例中步驟102中的描述。具體地,若上述機(jī)制變換條件涉及圖1所示實(shí)施例中步驟102中第一個(gè)應(yīng)用場景提到的時(shí)長,則該時(shí)長也可由控制設(shè)備在下發(fā)地址轉(zhuǎn)換機(jī)制PS2的時(shí)候同時(shí)或延時(shí)下發(fā)。
步驟205、地址轉(zhuǎn)換處理裝置S進(jìn)入中間狀態(tài);
本發(fā)明實(shí)施例中,步驟204檢測到當(dāng)前滿足上述機(jī)制變換條件時(shí),地址轉(zhuǎn)換處理裝置S保留地址轉(zhuǎn)換機(jī)制PS1和地址轉(zhuǎn)換機(jī)制PS2,進(jìn)入中間狀態(tài)(執(zhí)行vA2/vA2’<—>rA2的地址轉(zhuǎn)換策略),并繼續(xù)執(zhí)行步驟204。其中,當(dāng)?shù)刂忿D(zhuǎn)換處理裝置S進(jìn)入中間狀態(tài)時(shí),地址轉(zhuǎn)換處理裝置S會(huì)對接收到的目的地址為vA2或vA2’的數(shù)據(jù)包以及源地址為rA2的數(shù)據(jù)包提供地址轉(zhuǎn)換服務(wù),即,地址轉(zhuǎn)換處理裝置S在接收到目的地址為vA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為rA2,在接收到目的地址為vA2’的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為rA2,在接收到源地址為rA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的源地址轉(zhuǎn)換為vA2’。
步驟206、地址轉(zhuǎn)換處理裝置S將地址轉(zhuǎn)換機(jī)制PS1替換為地址轉(zhuǎn)換機(jī)制PS2;
本發(fā)明實(shí)施例中,步驟204檢測到當(dāng)前不滿足上述機(jī)制變換條件時(shí),將地址轉(zhuǎn)換機(jī)制PS1替換為地址轉(zhuǎn)換機(jī)制PS2,只執(zhí)行vA2’<—>rA2的地址轉(zhuǎn)換策略。此后,地址轉(zhuǎn)換處理裝置S會(huì)對接收到的目的地址為vA2’的數(shù)據(jù)包以及源地址為rA2的數(shù)據(jù)包提供地址轉(zhuǎn)換服務(wù),即,地址轉(zhuǎn)換處理裝置S在接收到目的地址為vA2’的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為rA2,在接收到源地址為rA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的源地址轉(zhuǎn)換為vA2’。
本發(fā)明實(shí)施例中,地址轉(zhuǎn)換處理裝置C可以按照現(xiàn)有的流程處理,具體 包括如下步驟:
步驟S1、地址轉(zhuǎn)換處理裝置C基于地址轉(zhuǎn)換機(jī)制PC1進(jìn)行地址轉(zhuǎn)換;
在步驟S1中,地址轉(zhuǎn)換處理裝置C基于地址轉(zhuǎn)換機(jī)制PC1進(jìn)行地址轉(zhuǎn)換,即地址轉(zhuǎn)換處理裝置C在接收到目的地址為rA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為vA2,在接收到源地址為vA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的源地址轉(zhuǎn)換為rA2。
步驟S2、地址轉(zhuǎn)換處理裝置C接收控制設(shè)備下發(fā)的地址轉(zhuǎn)換機(jī)制PC2;
需要說明的是,為了便于區(qū)分,本發(fā)明實(shí)施例將控制設(shè)備向地址轉(zhuǎn)換處理裝置C下發(fā)的新的地址轉(zhuǎn)換機(jī)制描述為地址轉(zhuǎn)換機(jī)制PC2。設(shè)該地址轉(zhuǎn)換機(jī)制PC2以vA2’偽裝服務(wù)器主機(jī)的真實(shí)地址(即包含:vA2’<—>rA2的地址轉(zhuǎn)換策略)。
步驟S3、地址轉(zhuǎn)換處理裝置C將地址轉(zhuǎn)換機(jī)制PC1替換為地址轉(zhuǎn)換機(jī)制PC2;
本步驟S3中,將地址轉(zhuǎn)換機(jī)制PC1替換為地址轉(zhuǎn)換機(jī)制PC2,只執(zhí)行vA2’<—>rA2的地址轉(zhuǎn)換策略。此后,地址轉(zhuǎn)換處理裝置C會(huì)對接收到的目的地址為rA2的數(shù)據(jù)包以及源地址為vA2’的數(shù)據(jù)包提供地址轉(zhuǎn)換服務(wù),即,地址轉(zhuǎn)換處理裝置C在接收到目的地址為rA2的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為vA2’,在接收到源地址為vA2’的數(shù)據(jù)包時(shí),將該數(shù)據(jù)包的源地址轉(zhuǎn)換為rA2。
進(jìn)一步,本發(fā)明實(shí)施例還可以進(jìn)一步提供檢測變換后的路徑可達(dá)的方法,則在步驟S2之后,地址轉(zhuǎn)換處理裝置C還可以查詢與vA2’包含的IP地址對應(yīng)的MAC地址,查詢方法可以如下:地址轉(zhuǎn)換處理裝置C先查詢本地ARP緩存是否存在與vA2’包含的IP地址對應(yīng)的MAC地址,若存在,則通過查詢即可獲知與vA2’包含的IP地址對應(yīng)的MAC地址,若不存在,則主動(dòng)發(fā) 送ARP報(bào)文請求與vA2’包含的IP地址對應(yīng)的MAC地址(該過程可以參照已有的ARP請求機(jī)制,此處不再贅述)。當(dāng)然,也可以由上述控制設(shè)備主動(dòng)向地址轉(zhuǎn)換處理裝置C配置與vA2’相關(guān)的靜態(tài)ARP表。當(dāng)查詢到與vA2’包含的IP地址對應(yīng)的MAC地址時(shí),才執(zhí)行步驟S3。
需要說明的是,在其它實(shí)施例中,上述地址轉(zhuǎn)換處理裝置C的部署并不是必須的,例如,當(dāng)服務(wù)器主機(jī)借助域名系統(tǒng)服務(wù)器(即DNS服務(wù)器)或Windows網(wǎng)絡(luò)名稱服務(wù)器(即WINS服務(wù)器)管理動(dòng)態(tài)IP地址時(shí),地址轉(zhuǎn)換處理裝置S可以在每次獲取到新的地址變換機(jī)制時(shí),將與上述服務(wù)器主機(jī)連接的DNS服務(wù)器或WINS服務(wù)器中記錄的該服務(wù)器主機(jī)的動(dòng)態(tài)IP地址更新為新的地址變換機(jī)制指示的第一偽裝地址所包含的IP地址。客戶端主機(jī)可以通過向該DNS服務(wù)器或該WINS服務(wù)器查詢該服務(wù)器主機(jī)的動(dòng)態(tài)IP后,通過地址轉(zhuǎn)換處理裝置S與該服務(wù)器主機(jī)進(jìn)行數(shù)據(jù)包的交互傳輸。
下面以另一實(shí)施例對本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理裝置進(jìn)行描述,請參閱圖3,本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理裝置300包括:
獲取單元301,用于獲取新的地址轉(zhuǎn)換機(jī)制,其中,上述新的地址轉(zhuǎn)換機(jī)制以第一偽裝地址偽裝服務(wù)器主機(jī)的真實(shí)地址;
檢測單元302,用于檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件;
機(jī)制變換處理單元303,用于當(dāng)檢測單元302檢測出當(dāng)前滿足上述機(jī)制變換條件時(shí),將舊的地址轉(zhuǎn)換機(jī)制替換為上述獲取單元獲取的新的地址轉(zhuǎn)換機(jī)制,其中,上述舊的地址轉(zhuǎn)換機(jī)制以第二偽裝地址偽裝上述服務(wù)器主機(jī)的真實(shí)地址;當(dāng)檢測單元302檢測出當(dāng)前不滿足上述機(jī)制變換條件時(shí),保留上述舊的地址轉(zhuǎn)換機(jī)制;
地址轉(zhuǎn)換單元304,用于當(dāng)接收到目的地址為上述第一偽裝地址的數(shù)據(jù)包時(shí),根據(jù)上述新的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主 機(jī)的真實(shí)地址;當(dāng)接收到目的地址為上述第二偽裝地址的數(shù)據(jù)包,且本地同時(shí)存在上述新的地址轉(zhuǎn)換機(jī)制和上述舊的地址轉(zhuǎn)換機(jī)制時(shí),根據(jù)上述舊的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包中的目的地址轉(zhuǎn)換為上述服務(wù)器主機(jī)的真實(shí)地址。
可選的,上述預(yù)設(shè)的機(jī)制變化條件為上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間超過預(yù)設(shè)的時(shí)長,其中,上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)是指采用上述舊的地址轉(zhuǎn)換機(jī)制的所有傳輸層協(xié)議會(huì)話已經(jīng)終止且老化;檢測單元302具體用于:檢測上述舊的地址轉(zhuǎn)換機(jī)制的空閑狀態(tài)的持續(xù)時(shí)間是否超過預(yù)設(shè)的時(shí)長;若超過上述時(shí)長,則判定當(dāng)前滿足上述機(jī)制變換條件;若未超過上述時(shí)長,則判定當(dāng)前不滿足上述機(jī)制變換條件。
可選的,上述預(yù)設(shè)的機(jī)制變化條件為接收到機(jī)制變換完成消息,其中,上述機(jī)制變換完成消息指示位于客戶端側(cè)已全部完成將上述舊的地址轉(zhuǎn)換機(jī)制替換為上述新的地址轉(zhuǎn)換機(jī)制的過程;檢測單元302具體用于:檢測是否接收到上述機(jī)制變換完成消息;若接收到上述機(jī)制變換完成消息,則判定當(dāng)前滿足上述機(jī)制變換條件;若接收不到上述機(jī)制變換完成消息,則判定當(dāng)前不滿足上述機(jī)制變換條件。
可選的,上述第一偽裝地址包含:IP地址。本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理裝置還包括:免費(fèi)地址解析協(xié)議單元,用于在獲取單元301獲取上述新的地址轉(zhuǎn)換機(jī)制之后,向網(wǎng)絡(luò)側(cè)設(shè)備發(fā)送免費(fèi)ARP報(bào)文,上述免費(fèi)ARP報(bào)文攜帶與上述第一偽裝地址信息包含的IP地址對應(yīng)的物理地址。
可選的,上述第一偽裝地址包含:IP地址。本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理裝置還包括:動(dòng)態(tài)網(wǎng)絡(luò)地址更新單元,用于在獲取單元301獲取上述新的地址轉(zhuǎn)換機(jī)制之后,將與上述服務(wù)器主機(jī)連接的域名系統(tǒng)服務(wù)器或Windows網(wǎng)絡(luò)名稱服務(wù)器中記錄的上述服務(wù)器主機(jī)的動(dòng)態(tài)IP地址更新為上述第一偽裝地址所包含的IP地址。
應(yīng)理解,本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理裝置可以用于實(shí)現(xiàn)上述圖1或圖2-b所示方法實(shí)施例中的全部技術(shù)方案,其各個(gè)功能模塊的功能可以根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn)或,其具體實(shí)現(xiàn)過程可參照上述實(shí)施例中的相關(guān)描述,此處不再贅述。
由上可見,本發(fā)明中當(dāng)獲取到新的地址轉(zhuǎn)換機(jī)制時(shí),檢測當(dāng)前是否滿足預(yù)設(shè)的機(jī)制變換條件,若滿足,則,將舊的地址轉(zhuǎn)換機(jī)制替換為新的地址轉(zhuǎn)換地址,若不滿足,則保留舊的地址轉(zhuǎn)換機(jī)制,以便在接收到目的地址為舊的地址轉(zhuǎn)換機(jī)制指示的第二偽裝地址的數(shù)據(jù)包時(shí),還能夠根據(jù)該舊的地址轉(zhuǎn)換機(jī)制將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址,從而避免了因舊的地址轉(zhuǎn)換機(jī)制被替換,使得該數(shù)據(jù)包的目的地址無法被轉(zhuǎn)換為服務(wù)器主機(jī)的真實(shí)地址而導(dǎo)致該數(shù)據(jù)包丟失的事件發(fā)生。通過本發(fā)明方案,能夠有效減少因執(zhí)行地址轉(zhuǎn)換機(jī)制變換不同步而導(dǎo)致的丟包事件的發(fā)生。將本發(fā)明實(shí)施例中的地址轉(zhuǎn)換處理方法應(yīng)用于長連接場景之后,能夠減少網(wǎng)絡(luò)變形(即地址轉(zhuǎn)換機(jī)制變換)時(shí)對已有連接的影響,提高QoS。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,上述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
上述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部 單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元可以采用軟件、固件和/或硬件的不同組合來實(shí)現(xiàn)。
上述集成的單元可以在網(wǎng)絡(luò)元件(例如交換器,路由器,橋接器,防火墻等)上實(shí)現(xiàn),這里所說的網(wǎng)絡(luò)元件是一件連網(wǎng)設(shè)備,包括軟件與硬件,其在通信上與網(wǎng)絡(luò)上的其他設(shè)備(例如,其他網(wǎng)絡(luò)元件,計(jì)算機(jī)終端站等)互連,一些網(wǎng)絡(luò)元件是多功能網(wǎng)絡(luò)元件,其為多個(gè)連網(wǎng)功能(例如,路由選擇、橋接、交換、第二層聚合、會(huì)話邊界控制、服務(wù)質(zhì)量和/或用戶管理)提供支持和/或?yàn)槎鄠€(gè)應(yīng)用服務(wù)提供支持。
上述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例上述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
需要說明的是,對于前述的各方法實(shí)施例,為了簡便描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其它順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定都是本發(fā)明所必須的。在上述實(shí)施例中,對 各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其它實(shí)施例的相關(guān)描述。
以上為對本發(fā)明所提供的一種地址轉(zhuǎn)換處理方法和地址轉(zhuǎn)換處理裝置的描述,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。