一種報文轉(zhuǎn)發(fā)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種報文轉(zhuǎn)發(fā)方法和裝置。
【背景技術(shù)】
[0002]對于網(wǎng)絡(luò)瀏覽業(yè)務(wù),存在依據(jù)用戶不同的統(tǒng)一資源定位符(Uniform ResourceLocator,URL)請求,進行不同的路由選擇的需求。例如對于國外網(wǎng)站的請求,可以直接路由到國外網(wǎng)絡(luò)的出口路由器,而不是發(fā)送到網(wǎng)絡(luò)的缺省下一跳。
[0003]現(xiàn)有實現(xiàn)中在接收到用戶終端的傳輸控制協(xié)議(Transmiss1n ControlProtocol,TCP)數(shù)據(jù)報文時,進行報文的應(yīng)用層解析,識別出URL后,才進行路由選擇,這種方式有一個缺點,就是在TCP三次握手階段,網(wǎng)絡(luò)設(shè)備無法識別出URL,只能按缺省的路由走,無法進行基于URL的策略路由。極端的,如果缺省路由中不允許訪問指定的網(wǎng)段,會造成用戶的請求無法完成。
[0004]現(xiàn)有實現(xiàn)中還可以通過TCP代理方式實現(xiàn)策略路由。網(wǎng)絡(luò)設(shè)備對用戶的目的因特網(wǎng)協(xié)議(IP)地址進行仿冒,與瀏覽器建立TCP連接。待收到瀏覽器發(fā)送的承載在TCP上的超文本傳輸協(xié)議(Hyper Text Transfer Protocol,Http)請求時,解析出URL,與URL策略路由配置進行比對。如果是需要進行URL策略路由,此時設(shè)備才與真實的服務(wù)器建立TCP連接,并把承載在TCP上的Http請求轉(zhuǎn)發(fā)給真實的服務(wù)器。
[0005]上述兩種實現(xiàn)方案中,對于不能解析出URL的報文,如TCP三次握手報文,無法進行策略路由。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本申請?zhí)峁┮环N報文轉(zhuǎn)發(fā)方法和裝置,以解決TCP報文不能完全進行策略路由的問題。
[0007]為解決上述技術(shù)問題,本申請的技術(shù)方案是這樣實現(xiàn)的:
[0008]一種報文轉(zhuǎn)發(fā)方法,應(yīng)用于應(yīng)用防火墻的網(wǎng)絡(luò)設(shè)備上,該方法包括:
[0009]當(dāng)該網(wǎng)絡(luò)設(shè)備監(jiān)聽到域名系統(tǒng)DNS服務(wù)器發(fā)送的DNS響應(yīng)報文,且該DNS響應(yīng)報文攜帶的主機名稱在統(tǒng)一資源定位符URL策略路由配置中存在時,生成第一轉(zhuǎn)發(fā)表項,所述第一轉(zhuǎn)發(fā)表項包括:所述DNS響應(yīng)報文響應(yīng)的IP地址、所述DNS響應(yīng)報文攜帶的主機名稱在URL策略路由配置中對應(yīng)的服務(wù)端口號和路由下一跳;
[0010]當(dāng)接收到用戶終端發(fā)送的傳輸控制協(xié)議TCP報文時,根據(jù)所述TCP報文的目的因特網(wǎng)協(xié)議IP地址和目的端口號匹配第一轉(zhuǎn)發(fā)表項,若匹配到對應(yīng)的第一轉(zhuǎn)發(fā)表項,則根據(jù)匹配到的第一轉(zhuǎn)發(fā)表項中的路由下一跳查找轉(zhuǎn)發(fā)信息,并根據(jù)查找到的轉(zhuǎn)發(fā)信息轉(zhuǎn)發(fā)該TCP報文。
[0011]一種報文轉(zhuǎn)發(fā)裝置,應(yīng)用于應(yīng)用防火墻的網(wǎng)絡(luò)設(shè)備中,該裝置包括:監(jiān)聽單元、確定單元、生成單元、接收單元、匹配單元和發(fā)送單元;
[0012]所述監(jiān)聽單元,用于監(jiān)聽域名系統(tǒng)DNS服務(wù)器發(fā)送的DNS響應(yīng)報文;
[0013]所述確定單元,進一步用于確定所述監(jiān)聽單元監(jiān)聽到的DNS響應(yīng)報文攜帶的主機名稱在統(tǒng)一資源定位符URL策略路由配置中是否存在;
[0014]所述生成單元,用于當(dāng)所述確定單元確定DNS響應(yīng)報文攜帶的主機名稱在URL策略路由配置中存在時,生成第一轉(zhuǎn)發(fā)表項,所述第一轉(zhuǎn)發(fā)表項包括:所述DNS響應(yīng)報文響應(yīng)的因特網(wǎng)協(xié)議IP地址、所述DNS響應(yīng)報文攜帶的主機名稱在URL策略路由配置中對應(yīng)的服務(wù)端口號和路由下一跳;
[0015]所述接收單元,用于接收傳輸控制協(xié)議TCP報文;
[0016]所述匹配單元,用于當(dāng)所述接收單元接收到用戶終端發(fā)送的TCP報文時,根據(jù)所述TCP報文的目的IP地址和目的端口號在所述生成單元中匹配第一轉(zhuǎn)發(fā)表項,若匹配到對應(yīng)的第一轉(zhuǎn)發(fā)表項,則根據(jù)匹配到的第一轉(zhuǎn)發(fā)表項中的路由下一跳查找轉(zhuǎn)發(fā)信息;
[0017]所述發(fā)送單元,用于將所述接收單元接收到的TCP報文根據(jù)所述匹配單元查找到的轉(zhuǎn)發(fā)信息轉(zhuǎn)發(fā)該TCP報文。
[0018]由上面的技術(shù)方案可知,本申請中網(wǎng)絡(luò)設(shè)備根據(jù)監(jiān)控到的DNS響應(yīng)報文,將URL同URL路由策略配置的關(guān)系轉(zhuǎn)換為,IP地址同URL路由策略配置的關(guān)系,在接收到TCP報文時,直接根據(jù)TCP報文的目的IP地址確定是否進行策略路由處理,能夠針對不同階段的TCP報文進行策略路由處理。
【附圖說明】
[0019]圖1為本申請實施例中報文轉(zhuǎn)發(fā)流程示意圖;
[0020]圖2為本申請實施例中應(yīng)用于上述技術(shù)的報文轉(zhuǎn)發(fā)裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合附圖并舉實施例,對本發(fā)明的技術(shù)方案進行詳細說明。
[0022]本申請實施例中提供一種報文轉(zhuǎn)發(fā)方法,應(yīng)用于應(yīng)用防火墻的網(wǎng)絡(luò)設(shè)備上,該網(wǎng)絡(luò)設(shè)備上配置了 URL策略路由配置。URL策略路由配置中包括:URL和URL對應(yīng)的路由策略;URL —般由協(xié)議、主機名稱(host)、服務(wù)端口號、路徑等組成;路由策略一般為URL對應(yīng)的路由下一跳。
[0023]一個 URL 如:http: //news.sina.com.cn: 8080/finance,其中,http 為協(xié)議,news.sina.com.cn 為 host,8080 為服務(wù)端口號;/finance 為路徑。
[0024]本申請實施例中需先根據(jù)監(jiān)聽到的域名系統(tǒng)(Domain Name System, DNS)響應(yīng)報文建立第一轉(zhuǎn)發(fā)表項,用于指示網(wǎng)絡(luò)設(shè)備在接收到與第一轉(zhuǎn)發(fā)表項匹配的TCP報文時,進行策略路由處理;未匹配到第一轉(zhuǎn)發(fā)表項的TCP報文時,不進行策略路由處理,即使用缺省路由發(fā)送該TCP報文。
[0025]用戶終端需要訪問某個網(wǎng)站之前,會先發(fā)送DNS請求報文向DNS服務(wù)器請求需訪問的網(wǎng)站的IP地址。
[0026]DNS服務(wù)器向該用戶終端發(fā)送DNS響應(yīng)報文,在該DNS響應(yīng)報文中攜帶響應(yīng)的IP地址和主機名稱。其中,DNS響應(yīng)報文響應(yīng)的IP地址,為DNS請求報文請求的IP地址,即DNS請求報文請求的需要訪問的網(wǎng)站的IP地址。
[0027]網(wǎng)絡(luò)設(shè)備監(jiān)聽DNS響應(yīng)報文。
[0028]當(dāng)監(jiān)聽到DNS響應(yīng)報文時,確定該DNS響應(yīng)報文中攜帶的主機名稱在URL策略路由配置中是否存在,即是否配置對該主機名稱對應(yīng)的URL ;
[0029]當(dāng)確定該DNS響應(yīng)報文攜帶的主機名稱在URL策略路由配置中存在時,確定是否存在所述DNS響應(yīng)報文響應(yīng)的IP地址對應(yīng)的第一轉(zhuǎn)發(fā)表項,如果是,使用所述DNS響應(yīng)報文中攜帶的生存時間更新對應(yīng)的第一轉(zhuǎn)發(fā)表項的老化時間;否則,生成第一轉(zhuǎn)發(fā)表項,將所述DNS響應(yīng)報文中攜帶的生存時間,設(shè)置為所述第一轉(zhuǎn)發(fā)表項的老化時間。
[0030]所述第一轉(zhuǎn)發(fā)表項包括:所述DNS響應(yīng)報文響應(yīng)的IP地址、所述DNS響應(yīng)報文攜帶的主機名稱在URL策略路由配置中對應(yīng)的服務(wù)端口號和路由下一跳;
[0031]當(dāng)任一第一轉(zhuǎn)發(fā)表項的老化時間到時,刪除該第一轉(zhuǎn)發(fā)表項。
[0032]下面結(jié)合附圖,詳細說明本申請實施例中對TCP報文轉(zhuǎn)發(fā)過程。
[0033]參見圖1,圖1為本申請實施例中報文轉(zhuǎn)發(fā)流程示意圖。具體步驟為:
[0034]步驟101,網(wǎng)絡(luò)設(shè)備當(dāng)接收到用戶終端發(fā)送的TCP報文時,根據(jù)所述TCP報文的目的IP地址和目的端口號匹配第一轉(zhuǎn)發(fā)表項。
[0035]步驟102,該網(wǎng)絡(luò)設(shè)備若匹配到第一轉(zhuǎn)發(fā)表項,則根據(jù)匹配到的第一轉(zhuǎn)發(fā)表項中的路由下一跳查找轉(zhuǎn)發(fā)信息,并根據(jù)查找到的轉(zhuǎn)發(fā)信息轉(zhuǎn)發(fā)該TCP報文。
[0036]本步驟中根據(jù)路由下一跳查找轉(zhuǎn)發(fā)信息的過程同現(xiàn)有實現(xiàn),根據(jù)路由下一跳在路由轉(zhuǎn)發(fā)表中查找對應(yīng)出端口,并在ARP表項中查找下一跳MAC地址等。
[0037]該網(wǎng)絡(luò)設(shè)備若未匹配到第一轉(zhuǎn)發(fā)表項,則使用缺省路由發(fā)送該TCP報文。
[0038]為了提高網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)報文的效率,本申請實施例還根據(jù)第一轉(zhuǎn)發(fā)表項和查找到的轉(zhuǎn)發(fā)信息生成第二轉(zhuǎn)發(fā)表項,用于接收到與第二轉(zhuǎn)發(fā)表項匹配的TCP報文時,直接根據(jù)第二轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)接收到的TCP報文。
[0039]所述第二轉(zhuǎn)發(fā)表項包括:所述第一轉(zhuǎn)發(fā)表項中的IP地址和服務(wù)端口號,以及所述查找到的轉(zhuǎn)發(fā)信息。
[0040]若本申請實施例中增加了生成第二轉(zhuǎn)發(fā)表項的實現(xiàn),網(wǎng)絡(luò)設(shè)備在接收到TCP報文時,先根據(jù)TCP報文的目的IP地址和目的端口號匹配第二轉(zhuǎn)發(fā)表項;
[0041]當(dāng)匹配到第二轉(zhuǎn)發(fā)表項時,直接根據(jù)匹配到的第二轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)所述TCP報文;
[0042]當(dāng)未匹配到對應(yīng)的第二轉(zhuǎn)發(fā)表項時,再根據(jù)所述TCP報文的目的IP地址和目的端口號匹配第一轉(zhuǎn)發(fā)表項,即再執(zhí)行步驟101。
[0043]通過上述實現(xiàn)方式,無論是TCP三次握手報文,還是TCP數(shù)據(jù)報文,需要進行策略路由處理的TCP報文,都能夠進行策略路由處理。
[0044]基于同樣的發(fā)明構(gòu)思,本申請還提出一種報文轉(zhuǎn)發(fā)裝置,應(yīng)用于應(yīng)用防火墻的網(wǎng)絡(luò)設(shè)備中。參見圖2,圖2為本申請實施例中應(yīng)用于上述技術(shù)的報文轉(zhuǎn)發(fā)裝置結(jié)構(gòu)示意圖。該裝置包括:監(jiān)聽單元201、確定