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