基于二維信息進(jìn)行尋路的方法和接入網(wǎng)關(guān)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,特別涉及一種基于二維信息進(jìn)行尋路的方法和接入網(wǎng)關(guān)。
【背景技術(shù)】
[0002]地址轉(zhuǎn)換技術(shù)(NAT)已經(jīng)在家庭網(wǎng)關(guān)和企業(yè)網(wǎng)絡(luò)中大量應(yīng)用,通過(guò)地址/端口號(hào)翻譯,實(shí)現(xiàn)IP地址復(fù)用和內(nèi)外網(wǎng)隔離。由于全球IPv4地址資源分配完畢,IPv4地址短缺的問(wèn)題越來(lái)越嚴(yán)重,運(yùn)營(yíng)商網(wǎng)絡(luò)和業(yè)務(wù)逐步引入運(yùn)營(yíng)級(jí)地址轉(zhuǎn)換網(wǎng)關(guān)(如CGN/AFTR等)。這些技術(shù)已經(jīng)成為主流的IPv6過(guò)渡技術(shù)(如私網(wǎng)雙棧NAT444、輕型雙棧DS-Lite等)的關(guān)鍵組成部分。
[0003]在NAT444、DS_lite等IPv6過(guò)渡技術(shù)中,CGN/AFTR實(shí)現(xiàn)運(yùn)營(yíng)級(jí)地址轉(zhuǎn)換和地址復(fù)用,為每個(gè)用戶終端地址維護(hù)映射關(guān)系:用戶終端地址〈——> (IPv4公有地址,端口范圍)。其中,用戶終端地址由網(wǎng)絡(luò)設(shè)備分配,通常是IPv4私有地址。IPv4公有地址、端口范圍由CGN/AFTR為用戶終端地址指定。用戶終端發(fā)出的報(bào)文到達(dá)CGN/AFTR后,經(jīng)地址轉(zhuǎn)換的源地址和端口號(hào)替換成映射關(guān)系中的IPv4公有地址和端口范圍中選擇的端口號(hào)。對(duì)于返回報(bào)文,則根據(jù)會(huì)話表項(xiàng)中的IPv4私有地址、端口號(hào)替換報(bào)文目的地址中的IPv4公有地址和端口號(hào)。在用戶報(bào)文經(jīng)過(guò)CGN/AFTR的前后,用戶報(bào)文都采用傳統(tǒng)按照目的地址尋路的方式為報(bào)文選擇下一跳。CGN/AFTR等網(wǎng)關(guān)設(shè)備的引入增加了網(wǎng)絡(luò)復(fù)雜性、部署成本和運(yùn)維管理的難度。
[0004]除了 NAT444、DS-Lite等IPv6過(guò)渡技術(shù)之外,網(wǎng)絡(luò)接入網(wǎng)關(guān)(如BRAS等)為用戶終端設(shè)備分配IPv4公有地址、端口范圍,并實(shí)現(xiàn)雙棧用戶接入,是另一種可行的IPv6過(guò)渡技術(shù)。在這種技術(shù)中,網(wǎng)絡(luò)設(shè)備為每個(gè)用戶終端(如主機(jī)或路由型家庭網(wǎng)關(guān))分配和維護(hù)一個(gè)IPv4公有地址、端口范圍。這里的IPv4公有地址、端口范圍與CGN/AFTR維護(hù)的IPv4公有地址、端口范圍相似。在獲得IPv4公有地址、端口范圍后,主機(jī)的后續(xù)通信直接把該IPv4公有地址作為源地址,端口范圍的端口號(hào)作為源端口 ;路由型家庭網(wǎng)關(guān)則運(yùn)行端口范圍受限的地址轉(zhuǎn)換,轉(zhuǎn)換后的IP地址采用分配的IPv4公有地址,轉(zhuǎn)換后的端口號(hào)來(lái)自于分配的端口范圍。在為終端分配IPv4公有地址和端口號(hào)后,網(wǎng)絡(luò)接入網(wǎng)關(guān)設(shè)備維護(hù)用戶信息、IP地址、端口范圍等信息。
[0005]網(wǎng)絡(luò)接入網(wǎng)關(guān)為終端分配相同的IPv6地址和不同的端口范圍時(shí),采用相同IPv6地址和端口范圍的終端復(fù)用相同的IPv6地址。對(duì)于主機(jī)復(fù)用該IPv6地址時(shí),主機(jī)采用該IPv6地址作為通信地址,從分配的端口范圍內(nèi)選擇端口號(hào)作為通信端口號(hào)。對(duì)于路由型網(wǎng)關(guān)復(fù)用該IPv6地址時(shí),路由型網(wǎng)關(guān)實(shí)現(xiàn)端口范圍首先的66轉(zhuǎn)換,即轉(zhuǎn)換后的端口號(hào)從分配的端口范圍內(nèi)選擇。
[0006]在這種技術(shù)中,網(wǎng)絡(luò)接入網(wǎng)關(guān)維護(hù)用戶信息(如用戶ID)、為用戶終端分配的IP地址、端口范圍等信息。由于IP地址由多個(gè)用戶終端復(fù)用,當(dāng)返回用戶終端的報(bào)文到達(dá)網(wǎng)絡(luò)接入網(wǎng)關(guān)后,網(wǎng)絡(luò)接入網(wǎng)關(guān)采用傳統(tǒng)按照目的地址等I維信息為報(bào)文尋路的方法,會(huì)發(fā)現(xiàn)多個(gè)返回路徑,無(wú)法為報(bào)文選擇正確的終端設(shè)備。因此,按照目的地址等I維信息的傳統(tǒng)尋路方法無(wú)法適用動(dòng)態(tài)分配IP地址和端口范圍的網(wǎng)絡(luò)環(huán)境。對(duì)于這個(gè)問(wèn)題,RFC6346等文檔提出了一種在用戶終端與網(wǎng)絡(luò)設(shè)備之間建立隧道、采用隧道頭封裝返回報(bào)文、按照隧道頭的目的地址尋路到返回用戶終端的技術(shù)。在RFC6346提出的技術(shù)中,用戶終端與網(wǎng)絡(luò)設(shè)備之間建立隧道,增加了終端與網(wǎng)絡(luò)設(shè)備之間的通信復(fù)雜性和維護(hù)難度,降低了網(wǎng)絡(luò)效率。傳統(tǒng)策略路由可以指定IP地址和端口號(hào)的匹配條件,并把符合條件的報(bào)文轉(zhuǎn)發(fā)到指定的下一跳。這種實(shí)現(xiàn)方式是在轉(zhuǎn)發(fā)層面實(shí)現(xiàn)的,即通過(guò)解析用戶報(bào)文的IP地址、端口號(hào),把符合匹配條件的報(bào)文轉(zhuǎn)發(fā)到固定的下一跳,也不能適應(yīng)動(dòng)態(tài)分配IP地址和端口號(hào)的環(huán)境。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例提供一種基于二維信息進(jìn)行尋路的方法和接入網(wǎng)關(guān)??捎行Ы鉀Q復(fù)用同一地址的用戶終端返回報(bào)文的尋路問(wèn)題。
[0008]根據(jù)本發(fā)明的一個(gè)方面,提供一種基于二維信息進(jìn)行尋路的方法,包括:
[0009]當(dāng)接收到用戶報(bào)文時(shí),讀取報(bào)文的目的地址和端口號(hào);
[0010]利用報(bào)文的目的地址查詢轉(zhuǎn)發(fā)路由表,按照最長(zhǎng)匹配策略獲取報(bào)文的下一跳信息;
[0011]統(tǒng)計(jì)所述下一跳信息的數(shù)目N ;
[0012]若所述下一跳信息的數(shù)目N大于1,則進(jìn)一步判斷N個(gè)下一跳信息中的下一跳地址是否相同;
[0013]若N個(gè)下一跳信息中的下一跳地址相同,則在二維信息路由表中查找出與所述下一跳地址相關(guān)聯(lián)的二維信息路由表項(xiàng);
[0014]在與所述下一跳地址相關(guān)聯(lián)的二維信息路由表項(xiàng)中,查詢與報(bào)文的端口號(hào)相關(guān)聯(lián)的目的路由表項(xiàng),其中報(bào)文的端口號(hào)歸屬于目的路由表項(xiàng)指定的端口范圍;
[0015]根據(jù)目的路由表項(xiàng)中指定的接入接口信息和MAC地址信息,對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
[0016]在一個(gè)實(shí)施例中,若在與所述下一跳地址相關(guān)聯(lián)的二維信息路由表項(xiàng)中,未查詢到與報(bào)文的端口號(hào)相關(guān)聯(lián)的目的路由表項(xiàng),則丟棄報(bào)文。
[0017]在一個(gè)實(shí)施例中,若N個(gè)下一跳信息中的下一跳地址互不相同,則按照等價(jià)路徑轉(zhuǎn)發(fā)策略對(duì)N個(gè)下一跳信息中的下一跳地址進(jìn)行輪詢以轉(zhuǎn)發(fā)報(bào)文。
[0018]在一個(gè)實(shí)施例中,若所述下一跳信息的數(shù)目N等于1,則根據(jù)所述下一跳信息中指定的接入接口信息和MAC地址信息,對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
[0019]在一個(gè)實(shí)施例中,若所述下一跳信息的數(shù)目N等于0,則丟棄報(bào)文。
[0020]在一個(gè)實(shí)施例中,當(dāng)用戶終端上線時(shí),判斷用戶終端是否通過(guò)認(rèn)證;
[0021]若用戶終端通過(guò)認(rèn)證,則為用戶終端分配IP地址和端口范圍;
[0022]獲取用戶終端的接入接口信息和MAC地址信息;
[0023]在二維信息路由表中創(chuàng)建相應(yīng)的二維信息路由表項(xiàng),以便記錄所述IP地址、端口范圍、接入接口信息和MAC地址信息。
[0024]在一個(gè)實(shí)施例中,當(dāng)用戶終端的接入信息發(fā)生變化時(shí),判斷是否需要為用戶終端重新分配IP地址和端口范圍;
[0025]若需要為用戶終端重新分配IP地址和端口范圍,則在二維信息路由表中,利用用戶終端的MAC地址信息查詢相關(guān)聯(lián)的二維信息路由表項(xiàng),利用重新分配的IP地址和端口范圍,對(duì)相關(guān)聯(lián)的二維信息路由表項(xiàng)進(jìn)行更新;
[0026]若不需要為用戶終端重新分配IP地址和端口范圍,則在二維信息路由表中,利用用戶終端的IP地址和端口范圍查詢相關(guān)聯(lián)的二維信息路由表項(xiàng),利用更新后的接入信息對(duì)相關(guān)聯(lián)的二維信息路由表項(xiàng)進(jìn)行更新。
[0027]在一個(gè)實(shí)施例中,當(dāng)與用戶終端失去聯(lián)系時(shí),判斷二維信息路由表是否為空;
[0028]若二維信息路由表不為空,則查找與失去聯(lián)系的用戶終端相關(guān)聯(lián)的二維信息路由表項(xiàng)并進(jìn)行刪除。
[0029]根據(jù)本發(fā)明的另一方面,提供一種基于二維信息進(jìn)行尋路的接入網(wǎng)關(guān),包括接入單元、第一查詢單元、統(tǒng)計(jì)單元、識(shí)別單元、第二查詢單元、路由表項(xiàng)查詢單元、報(bào)文轉(zhuǎn)發(fā)單元和存儲(chǔ)單元,其中:
[0030]接入單元,用于當(dāng)接收到用戶報(bào)文時(shí),讀取報(bào)文的目的地址和端口號(hào);
[0031]第一查詢單元,用于利用報(bào)文的目的地址查詢轉(zhuǎn)發(fā)路由表,按照最長(zhǎng)匹配策略獲取報(bào)文的下一跳信息;
[0032]統(tǒng)計(jì)單元,用于統(tǒng)計(jì)所述下一跳信息的數(shù)目N ;
[0033]識(shí)別單元,用于根據(jù)統(tǒng)計(jì)單元的統(tǒng)計(jì)結(jié)果,若所述下一跳信息的數(shù)目N大于1,則進(jìn)一步判斷N個(gè)下一跳信息中的下一跳地址是否相同;
[0034]第二查詢單元,用于根據(jù)識(shí)別單元的判斷結(jié)果,若N個(gè)下一跳信息中的下一跳地址相同,則在二維信息路由表中查找出與所述下一跳地址相關(guān)聯(lián)的二維信息路由表項(xiàng);
[0035]路由表項(xiàng)查詢單元,用于在與所述下一跳地址相關(guān)聯(lián)的二維信息路由表項(xiàng)中,查詢與報(bào)文的端口號(hào)相關(guān)聯(lián)的目的路由表項(xiàng),其中報(bào)文的端口號(hào)歸屬于目的路由表項(xiàng)指定的端口范圍;
[0036]報(bào)文轉(zhuǎn)發(fā)單元,用于根據(jù)目的路由表項(xiàng)中指定的接入接口信息和MAC地址信息,對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā);
[0037]存儲(chǔ)單元,用于存儲(chǔ)二維信息路由表。
[0038]在一個(gè)實(shí)施例中,接入網(wǎng)關(guān)還包括報(bào)文丟棄單元,其中:
[0039]報(bào)文丟棄單元,用于根據(jù)路由表項(xiàng)查詢單元的查詢結(jié)果,若在與所述下一跳地址相關(guān)聯(lián)的二維信息路由表項(xiàng)中,未查詢到與報(bào)文的端口號(hào)相關(guān)聯(lián)的目的路由表項(xiàng),則丟棄報(bào)文。
[0040]在一個(gè)實(shí)施例中,報(bào)文轉(zhuǎn)發(fā)單元還用于根據(jù)識(shí)別單元的判斷結(jié)果,若N個(gè)下一跳信息中的下一跳地址互不相同,則按照等價(jià)路徑轉(zhuǎn)發(fā)策略對(duì)N個(gè)下一跳信息中的下一跳地址進(jìn)行輪詢以轉(zhuǎn)發(fā)報(bào)文。
[0041]在一個(gè)實(shí)施例中,報(bào)文轉(zhuǎn)發(fā)單元還用于根據(jù)統(tǒng)計(jì)單元的統(tǒng)計(jì)結(jié)果,若所述下一跳信息的數(shù)目N等于1,則根據(jù)所述下一跳信息中指定的接入接口信息和MAC地址信息,對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
[0042]在一個(gè)實(shí)施例中,報(bào)文丟棄單元還用于根據(jù)統(tǒng)計(jì)單元的統(tǒng)計(jì)結(jié)果,若所述下一跳信息的數(shù)目N等于0,則丟棄報(bào)文。
[0043]在一個(gè)實(shí)施例中,接入網(wǎng)關(guān)還包括二維信息維護(hù)單元,其中:
[0044]接入單元還用于當(dāng)用戶終端上線時(shí),判斷用戶終端是否通過(guò)認(rèn)證;若用戶終端通過(guò)認(rèn)證,則為用戶終端分配IP地址和端口范圍;獲取用戶終端的接入接口信息和MAC地址信息;
[0045]二維信息維護(hù)單元,