分布式系統(tǒng)中多業(yè)務(wù)板分流時的nat處理方法及設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信和網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及一種分布式系統(tǒng)中多業(yè)務(wù)板分流時的NAT處理方法及設(shè)備。
【背景技術(shù)】
[0002]參考圖1所示,為分布式系統(tǒng)架構(gòu)下的網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)示意圖,分布式系統(tǒng)架構(gòu)的網(wǎng)絡(luò)設(shè)備(例如:路由器、交換機(jī)和防火墻等)主要由設(shè)備機(jī)架和機(jī)架上的插板組成,插板類型主要包括:主控板、接口板和業(yè)務(wù)板,各板之間通過交換網(wǎng)絡(luò)聯(lián)通。主控板主要負(fù)責(zé)對機(jī)架上各類插板的管理和版本生產(chǎn)升級;接口板負(fù)責(zé)報文(比如IP報文)的接收、轉(zhuǎn)發(fā)和發(fā)送;業(yè)務(wù)板實現(xiàn)對報文的各類業(yè)務(wù)處理,例如防火墻業(yè)務(wù)板可以實現(xiàn)各類安全業(yè)務(wù)處理和 NAT (Network Address Translat1n,網(wǎng)絡(luò)地址轉(zhuǎn)換)等功能。
[0003]一個機(jī)架可以插一塊或者多塊接口板和業(yè)務(wù)板,對于多業(yè)務(wù)板的情況,設(shè)備將接口板收到的報文要按照一定算法分流到每一塊業(yè)務(wù)板上,從而實現(xiàn)多業(yè)務(wù)板之間的負(fù)載均擔(dān),這也正是分布式系統(tǒng)的優(yōu)勢所在。hash算法是業(yè)界常用的業(yè)務(wù)板分流算法,即根據(jù)報文的四元組(源IP、目的IP、源端口、目的端口)或者二元組(源IP、目的IP)計算出一個hash值,不同hash值的報文被分流到不同的業(yè)務(wù)板上。
[0004]報文被分到不同的業(yè)務(wù)板上之后,需要進(jìn)行NAT處理,即按照策略描述對報文進(jìn)行地址轉(zhuǎn)換,同時進(jìn)行源端口轉(zhuǎn)換(包括轉(zhuǎn)換前的IP地址和轉(zhuǎn)換后的IP地址一一對應(yīng)的一對一形式的NAT,以及多個不同的IP地址可以轉(zhuǎn)換為同一 IP地址的多對一形式的NAT)。參考圖2所示,為一種場景下的多對一的NAT處理過程,主機(jī)A (IP地址:192.168.1.20)和主機(jī)B (192.168.1.30)發(fā)給主機(jī)C (10.10.0.200)的報文在經(jīng)過NAT設(shè)備時轉(zhuǎn)換為同一源IP地址10.10.0.100。同時,報文經(jīng)過NAT設(shè)備后,源端口號也發(fā)生了改變(分別從5000變?yōu)?10005 和 10006) ο
【發(fā)明內(nèi)容】
[0005]發(fā)明人經(jīng)過大量研宄發(fā)現(xiàn),在現(xiàn)有的分布式系統(tǒng)中實現(xiàn)NAT功能存在如下問題:首先,對于同一主機(jī)來說,其發(fā)送的報文經(jīng)過了 NAT處理,導(dǎo)致報文的四元組信息發(fā)生了變化,從而導(dǎo)致報文的轉(zhuǎn)換前后計算得出的hsah值可能不同,正向報文在報文地址轉(zhuǎn)換后可能和反向報文分流到不同的業(yè)務(wù)板,反向報文無法找到正向報文創(chuàng)建的NAT會話表項,導(dǎo)致反向報文無法成功的發(fā)送回原主機(jī)。其次,由于多塊業(yè)務(wù)板獨立實現(xiàn)NAT功能,當(dāng)分別在不同業(yè)務(wù)板上進(jìn)行NAT處理且具有不同四元組的IP報文,經(jīng)過地址轉(zhuǎn)換后具有相同的源IP地址、相同的目的IP地址和相同的目的端口號時,每塊業(yè)務(wù)板進(jìn)行源端口轉(zhuǎn)換的過程中都不知道其他業(yè)務(wù)板是否用了和自己相同的源端口號,即多對一的NAT時無法保證“四元組不同的兩個或多個報文經(jīng)過地址轉(zhuǎn)換后它們的四元組也不能相同”的約束條件,因此不同地址的報文在不同業(yè)務(wù)板進(jìn)行NAT轉(zhuǎn)換為同一地址的同時,可能也轉(zhuǎn)換了相同的源端口號,導(dǎo)致NAT設(shè)備收到反向報文時無法區(qū)分轉(zhuǎn)換前的正向報文的地址,導(dǎo)致有些主機(jī)的無法接收到反向報文。
[0006]為了解決上述問題,本發(fā)明實施例提供了一種分布式系統(tǒng)中多業(yè)務(wù)板分流時的NAT處理方法及設(shè)備,保證報文的成功傳輸。
[0007]有鑒于此,本發(fā)明第一方面提供一種分布式系統(tǒng)中多業(yè)務(wù)板分流時的NAT處理方法,可包括:
[0008]根據(jù)正向IP報文匹配的NAT策略對所述IP報文的IP地址進(jìn)行地址轉(zhuǎn)換;
[0009]業(yè)務(wù)板根據(jù)預(yù)設(shè)的hash約束條件對所述IP報文四元組中的源端口號進(jìn)行轉(zhuǎn)換,其中所述預(yù)設(shè)的hash約束條件包括:所述IP報文地址轉(zhuǎn)換和端口轉(zhuǎn)換后的報文四元組的hash值與所述IP報文地址轉(zhuǎn)換和端口轉(zhuǎn)換前的報文四元組的hash值相等;
[0010]根據(jù)所述IP報文的IP地址和源端口號的轉(zhuǎn)換過程創(chuàng)建該IP報文的NAT會話表項并轉(zhuǎn)發(fā)該報文。
[0011]在一些實施例中,所述方法還包括:所述方法還包括:當(dāng)接收到所述正向IP報文對應(yīng)的反向報文時,根據(jù)所述正向IP報文創(chuàng)建的NAT會話表項對反向報文進(jìn)行NAT處理并轉(zhuǎn)發(fā)。
[0012]在一些實施例中,所述方法還包括:當(dāng)與所述IP報文匹配的NAT策略不存在時,則直接轉(zhuǎn)發(fā)所述IP報文。
[0013]在一些實施例中,所述正向IP報文采用基于報文四元組的hash算法進(jìn)行分流。
[0014]在一些實施例中,所述IP報文的四元組包括IP報文的源IP地址、源端口號、目的IP地址、目的端口號。
[0015]本發(fā)明第二方面提供一種NAT設(shè)備,可包括:
[0016]地址轉(zhuǎn)換模塊,用于根據(jù)正向IP報文匹配的NAT策略對所述報文的IP地址進(jìn)行地址轉(zhuǎn)換;
[0017]端口轉(zhuǎn)換模塊,用于根據(jù)預(yù)設(shè)的hash約束條件對所述IP報文四元組中的源端口號進(jìn)行轉(zhuǎn)換,其中所述預(yù)設(shè)的hash約束條件包括:所述IP報文地址轉(zhuǎn)換和端口轉(zhuǎn)換后的報文四元組的hash值與所述IP報文地址轉(zhuǎn)換和端口轉(zhuǎn)換前的報文四元組的hash值相等;
[0018]會話創(chuàng)建模塊,用于根據(jù)所述IP報文的IP地址和源端口號的轉(zhuǎn)換過程創(chuàng)建該IP報文的NAT會話表項;
[0019]發(fā)送模塊,用于轉(zhuǎn)發(fā)所述IP報文。
[0020]在一些實施例中,所述裝置還包括:數(shù)據(jù)處理模塊,用于接收到所述正向IP報文對應(yīng)的反向報文時,根據(jù)所述正向IP報文創(chuàng)建的NAT會話表項對反向報文進(jìn)行NAT處理;
[0021]觸發(fā)模塊,用于觸發(fā)所述發(fā)送模塊轉(zhuǎn)發(fā)處理后的IP報文。
[0022]從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0023]本發(fā)明實施例中,對IP報文的IP地址進(jìn)行轉(zhuǎn)換,之后對源端口號進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換時在IP報文的轉(zhuǎn)換后的報文四元組的hash值與IP報文的轉(zhuǎn)換前的報文四元組的hash值相等的條件下進(jìn)行,這樣可以保證同一主機(jī)的正向報文和反向報文被分配到同一業(yè)務(wù)板。保證反向報文能夠查找到根據(jù)正向報文創(chuàng)建的會話表項。同時,當(dāng)分別在不同業(yè)務(wù)板上進(jìn)行NAT處理且具有不同四元組的IP報文,經(jīng)過地址轉(zhuǎn)換后具有相同的源IP地址、相同的目的IP地址和相同的目的端口號時,由于不同的業(yè)務(wù)板對應(yīng)不同的hash值,使得不同業(yè)務(wù)板對應(yīng)的轉(zhuǎn)換后的源端口號是不同的,即四元組不同的兩個或多個報文經(jīng)過地址轉(zhuǎn)換后它們的四元組也不同,從而保證多對一 NAT時,反向報文能夠根據(jù)端口號正確的回到原主機(jī)。
【附圖說明】
[0024]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0025]圖1為分布式系統(tǒng)架構(gòu)下的網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)示意圖;
[0026]圖2為一種場景下的多對一的NAT處理過程;
[0027]圖3為NAT功能在網(wǎng)絡(luò)設(shè)備中的實現(xiàn)的原理圖;
[0028]圖4為現(xiàn)有技術(shù)中NAT功能在網(wǎng)絡(luò)設(shè)備中的實現(xiàn)時存在的一個問題原理圖;
[0029]圖5為現(xiàn)有技術(shù)中NAT功能在網(wǎng)絡(luò)設(shè)備中的實現(xiàn)時存在的另一問題原理圖;
[0030]圖6為本發(fā)明提供的分布式系統(tǒng)中多業(yè)務(wù)板分流時的NAT處理方法實施例的流程圖;
[0031]圖7為本發(fā)明提供的一種NAT設(shè)備實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0032]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0033]為了便于對本發(fā)明技術(shù)方案的理解,首先對本發(fā)明要解決的技術(shù)問題進(jìn)行簡單分析。
當(dāng)前第1頁
1 
2 
3