IP 隧道技術:基礎篇
隧道技術是一種通過使用互聯網絡的基礎設施在網絡之間傳遞數據的方式。使用隧道傳遞的數據(或負載)可以是不同協議的數據桢(此字不正確)或包。隧道協議將這些其它協議的數據桢或包重新封裝在新的包頭中發送。新的包頭提供了路由信息,從而使封裝的負載數據能夠通過互聯網絡傳遞。
被封裝的數據包在隧道的兩(電腦沒聲音)個端點之間通過公共互聯網絡進行路由。被封裝的數據包在公共互聯網絡上傳遞時所經過的邏輯路徑稱為隧道。一旦到達網絡終點,數據將被解包並轉發到最終目的地。注意隧道技術是指包括數據封裝,傳輸和解包在內的全過程。
隧道所使用的傳輸網絡可以是任何類型的公共互聯網絡,本文主要以目前普遍使用Internet為例進行說明。此外,在企業網絡同樣可以創建隧道。隧道技術在經過一段時間的發展和完善之後,目前較為成熟的技術包括:
1.IP網絡上的SNA隧道技術
當系統網絡結構(System Network Architecture)的數據流通過企業IP網絡傳送時,SNA數據桢將被封裝在UDP和IP協議包頭中。
2.IP網絡上的NovellNetWareIPX隧道技術
當一個IPX數據包被發送到NetWare服務器或IPX路由器時,服務器或路由器用UDP和IP包頭封裝IPX數據包後通過IP網絡發送。另一端的IP-TO-IPX路由器在去除UDP和IP包頭之後,把數據包轉發到IPX目的地。
近幾年不斷出現了一些新的隧道技術,本文將主要介紹這些新技術。具體包括:
1.點對點隧道協議(PPTP)
PPTP協議允許對IP,IPX或NetBEUI數據流進行加密,然後封裝在IP包頭中通過企業IP網絡或公共互聯網絡發送。
2.第2層隧道協議(L2TP)
L2TP協議允許對IP,IPX或NetBEUI數據流進行加密,然後通過支持點對點數據報傳遞的任意網絡發送,如IP,X.25,桢中繼或ATM。
3.安全IP(IPSec)隧道模式
IPSec隧道模式允許對IP負載數據進行加密,然後封裝在IP包頭中通過企業IP網絡或公共IP互聯網絡如Internet發送。
隧道協議
為創建隧道,隧道的客戶機和服務器雙方必須使用相同的隧道協議。
隧道技術可以分別以第2層或第3層隧道協議為基礎。上述分層按照開放系統互聯(OSI)的參考模型劃分。第2層隧道協議對應OSI模型中的數據鏈路層,使用桢作為數據交換單位。PPTP,L2TP和L2F(第2層轉發)都屬於第2層隧道協議,都是將數據封裝在點對點協議(PPP)桢中通過互聯網絡發送。第3層隧道協議對應OSI模型中的網絡層,使用包作為數據交換單位。IP overIP以及IPSec隧道模式都屬於第3層隧道協議,都是將IP包封裝在附加的IP包頭中通過IP網絡傳送。
隧道技術的實現
對於象PPTP和L2TP這樣的第2層隧道協議,創建隧道的過程類似於在雙方之間建立會話;隧道的兩(電腦沒聲音)個端點必須同意創建隧道並協商隧道各種配置變量,如地址分配,加密或壓縮等參數。絕大多數情況下,通過隧道傳輸的數據都使用基於數據報的協議發送。隧道維護協議被用來作為管理隧道的機制。
第3層隧道技術通常假定所有配置問題已經通過手工過程完成。這些協議不對隧道進行維護。與第3層隧道協議不同,第2層隧道協議(PPTP和L2TP)必須包括對隧道的創建,維護和終止。
隧道一旦建立,數據就可以通過隧道發送。隧道客戶端和服務器使用隧道數據傳輸協議准備傳輸數據。例如,當隧道客戶端向服務器端發送數據時,客戶端首先給負載數據加上一個隧道數據傳送協議包頭,然後把封裝的數據通過互聯網絡發送,並由互聯網絡將數據路由到隧道的服務器端。隧道服務器端收到數據包之後,去除隧道數據傳輸協議包頭,然後將負載數據轉發到目標網絡。
隧道協議和基本隧道要求
因為第2層隧道協議(PPTP和L2TP)以完善的PPP協議為基礎,因此繼承了一整套的特性。
數據傳輸階段
一旦完成上述 4階段的協商,PPP就開始在連接對等雙方之間轉發數據。每個被傳送的數據報都被封裝在PPP包頭內,該包頭將會在到達接收方之後被去除。如果在階段1選擇使用數據壓縮並且在階段4完成了協商,數據將會在被傳送之間進行壓縮。類似的,如果如果已經選擇使用數據加密並完成了協商,數據(或被壓縮數據)將會在傳送之前進行加密。
點對點隧道協議(PPTP)
PPTP是一個第2層的協議,將PPP數據桢封裝在IP數據報內通過IP網絡,如Internet傳送。PPTP還可用於專用局域網絡之間的連接。RFC草案“點對點隧道協議”對PPTP協議進行了說明和介紹。該草案由PPTP論壇的成員公司,包括微軟,Ascend,3Com,和ECI等公司在1996年6月提交至IETF。可在如下站點 http://www.ietf.org 參看草案的在線拷...桓鯬PTP數據包。
第2層轉發(L2F)
L2F是Cisco公司提出隧道技術,作為一種傳輸協議L2F支持撥號接入服務器將撥號數據流封裝在PPP桢內通過廣域網鏈路傳送到L2F服務器(路由器)。L2F服務器把數據包解包之重新注入(inject)網絡。與PPTP和L2TP不同,L2F沒有確定的客戶方。應當注意L2F只在強http://.制隧道中有效。(自願和強http://.制隧道的介紹參看“隧道類型”)。
第2層隧道協議(L2TP)
L2TP結合了PPTP和L2F協議。設計者希望L2TP能夠綜合PPTP和L2F的優勢。
L2TP是一種網絡層協議,支持封裝的PPP桢在IP,X.25,桢中繼或ATM等的網絡上進行傳送。當使用IP作為L2TP的數據報傳輸協議時,可以使用L2TP作為Internet網絡上的隧道協議。L2TP還可以直接在各種WAN媒介上使用而不需要使用IP傳輸層。草案RFC“第2層隧道協議”對L2TP進行了說明和介紹。該文檔於1998年1月被提交至IETF。可以在以下網站http://www.ietf.org 獲得草案拷貝。
IP網上的L2TP使用UDP和一系列的L2TP消息對隧道進行維護。L2TP同樣使用UDP將L2TP協議封裝的PPP桢通過隧道發送。可以對封裝PPP桢中的負載數據進行加密或壓縮。圖8所示為如何在傳輸之前組裝一個L2TP數據包。
PPTP與L2TP
PPTP和L2TP都使用PPP協議對數據進行封裝,然後添加附加包頭用於數據在互聯網絡上的傳輸。盡管兩(電腦沒聲音)個協議非常相似,但是仍存在以下幾方面的不同:
IPSec隧道模式
IPSEC是第3層的協議標准,支持IP網絡上數據的安全傳輸。本文將在“高級安全”一部分中對IPSEC進行詳細的總體介紹,此處僅結合隧道協議討論IPSEC協議的一個方面。除了對IP數據流的加密機制進行了規定之外,IPSEC還制定了IPoverIP隧道模式的數據包格式,一般被稱作IPSEC隧道模式。一個IPSEC隧道由一個隧道客戶和隧道服務器組成,兩(電腦沒聲音)端都配置使用IPSEC隧道技術,采用協商加密機制。
為實現在專用或公共IP網絡上的安全傳輸,IPSEC隧道模式使用的安全方式封裝和加密整個IP包。然後對加密的負載再次封裝在明文IP包頭內通過網絡發送到隧道服務器端。隧道服務器對收到的數據報進行處理,在去除明文IP包頭,對內容進行解密之後,獲的最初的負載IP包。負載IP包在經過正常處理之後被路由到位於目標網絡的目的地。
IPSEC隧道模式具有以下功能和局限: