L2TP簡介
展開
一、L2TP介紹
1、基礎介紹
L2TP(Layer 2 Tunneling Protocol,二層隧道協議)通過在公共網絡(如Internet)上建立點到點的L2TP隧道,將PPP(Point-to-Point Protocol,點對點協議)數據幀封裝后通過L2TP隧道傳輸,使得遠端用戶(如企業駐外機構和出差人員)利用PPP接入公共網絡后,能夠通過L2TP隧道與企業內部網絡通信,訪問企業內部網絡資源,從而為遠端用戶接入私有的企業網絡提供了一種安全、經濟且有效的方式。
2、L2TP隧道和會話
在一個LNS和LAC對之間存在着兩種類型的連接,一種是隧道(Tunnel)連接,一對LAC和LNS中可以有多個L2TP隧道;另一種是會話(Session)連接,它復用在隧道連接之上,用於表示承載在隧道連接中的每個PPP會話過程。
(1)隧道由一個控制連接和一個或多個會話(Session)組成。會話連接必須在隧道建立(包括身份保護、L2TP版本、幀類型、硬件傳輸類型等信息的交換)成功之后進行,每個會話連接對應於LAC和LNS之間的一個PPP數據流。控制消息和PPP數據報文都在隧道上傳輸。
L2TP使用Hello報文來檢測隧道的連通性。LAC和LNS定時向對端發送Hello報文,若在一段時間內未收到Hello報文的應答,該隧道連接將被斷開。
(2) L2TP報文頭中包含隧道標識符(Tunnel ID)和會話標識符(SessionID)信息,用來標識不同的隧道和會話。隧道標識相同、會話標識不同的報文將被復用在一個隧道上,報文頭中的隧道標識符與會話標識符由對端分配。
(3)隧道(tunnel)和會話(session)的關系,可以形象的理解為會話是建立在隧道之中的,隧道想成一個有10個車道的高速公路,一台撥號PC的數據流為一個會話,相當於占用了一個車道(告訴公路有多少車道是設備規定好的),這個車道只能跑這個運載這個PC的報文的卡車。(比如某型號設備每條隧道最多支持1000個會話)。
二、典型組網
上述組網主要包括三個部分:遠端系統、LAC、LNS
1、遠端系統
遠端系統是要接入企業內部網絡的遠端用戶和遠端分支機構,通常是一個撥號用戶的主機或私有網絡中的一台設備。
2、LAC(L2TP Access Concentrator,L2TP訪問集中器)
LAC是具有PPP和L2TP協議處理能力的設備,通常是一個當地ISP的NAS(Network Access Server,網絡接入服務器),主要用於為PPP類型的用戶提供接入服務。
LAC作為L2TP隧道的端點,位於LNS和遠端系統之間,用於在LNS和遠端系統之間傳遞報文。它把從遠端系統收到的報文按照L2TP協議進行封裝並送往LNS,同時也將從LNS收到的報文進行解封裝並送往遠端系統。
3、LNS(L2TP Network Server,L2TP網絡服務器)
LNS是具有PPP和L2TP協議處理能力的設備,通常位於企業內部網絡的邊緣。
LNS作為L2TP隧道的另一側端點,是LAC通過隧道傳輸的PPP會話的邏輯終點。L2TP通過在公共網絡中建立L2TP隧道,將遠端系統的PPP連接由原來的NAS延伸到了企業內部網絡的LNS設備。
三、L2TP消息類型及封裝結構
L2TP協議定義了兩種消息:
1、控制消息:用於L2TP隧道和L2TP會話的建立、維護和拆除。控制消息的傳輸是可靠的,並且支持流量控制和擁塞控制。
2、數據消息:用於封裝PPP幀,其格式如下圖所示。數據消息的傳輸是不可靠的,若數據消息丟失,不予重傳。數據消息支持流量控制,即支持對亂序的數據消息進行排序L2TP。控制消息和L2TP數據消息均封裝在UDP報文中。
封裝結構如下圖:
舉例做ping操作,icmp報文在l2tp封裝情況:
四、L2TP建立、維護與拆除過程
1、L2TP建立過程
(1)L2TP隧道的建立是一個三次握手的過程,首先由LAC發起隧道建立請求SCCRQ,LNS收到請求后進行應答SCCRP,最后LAC在收到應答后再給LNS返回確認SCCCN;隧道建立。
(2)會話建立的過程與隧道類似,首先由LAC發起會話建立請求ICRQ,LNS收到請求后返回應答ICRP,LAC收到應答后返回確認ICCN,會話建立。
(3)L2TP的會話建立由PPP觸發,隧道建立由會話觸發。由於多個會話可以復用在一條隧道上,如果會話建立前隧道已經建立,則隧道不用重新建立。
建立隧道和會話各個報文如下:
SCCRQ:
SCCRP:
SCCCN:
ICRQ:
ICRP:
ICCN:
2、L2TP維護過程
隧道建立后,要等到該隧道所屬會話全部下線后,再進行拆除,為了確認對端的隧道依然存在,需要定時發送與對端的維護報文,其流程為:LAC或LNS發出Hello報文,對應的LNS或LAC發出確認信息。
3、L2TP拆除過程
隧道拆除流程比其建立過程要簡單,隧道的任何一端發出拆鏈通知StopCCN,對端返回確認;會話的拆除流程為:會話一端發出拆鏈通知CDN,對端返回確認即可。
五、L2TP特點
1、靈活的身份驗證機制以及高度的安全性
L2TP協議本身並不提供連接的安全性,但它可依賴於PPP提供的認證(比如CHAP、PAP等),因此具有PPP所具有的所有安全特性。
L2TP還可以與IPsec結合起來實現數據安全,使得通過L2TP所傳輸的數據更難被攻擊。
2、多協議傳輸
L2TP傳輸PPP數據包,在PPP數據包內可以封裝多種協議。
3、支持RADIUS服務器的認證
LAC和LNS可以將用戶名和密碼發往RADIUS服務器,由RADIUS服務器對用戶身份進行認證。
4、支持內部地址分配
LNS可以對遠端系統的地址進行動態的分配和管理,可支持私有地址應用(RFC 1918)。為遠端系統分配企業內部的私有地址,可以方便地址的管理並增加安全性。
5、網絡計費的靈活性
可在LAC和LNS兩處同時計費,即ISP處(用於產生帳單)及企業網關(用於付費及審計)。L2TP能夠提供數據傳輸的出/入包數、字節數以及連接的起始、結束時間等計費數據,AAA服務器可根據這些數據方便地進行網絡計費。
6、可靠性
L2TP協議支持備份LNS,當主LNS不可達之后,LAC可以與備份LNS建立連接,增加了L2TP服務的可靠性。
7、支持由RADIUS服務器為LAC下發隧道屬性
L2TP隧道采用NAS-Initiated模式時,LAC上的L2TP隧道屬性可以通過RADIUS服務器來下發。此時,在LAC上只需開啟L2TP服務,並配置采用AAA遠程認證方式對PPP用戶進行身份驗證,無需進行其他L2TP配置。
當L2TP用戶撥入LAC時,LAC作為RADIUS客戶端將用戶的身份信息發送給RADIUS服務器。RADIUS服務器對L2TP用戶的身份進行驗證。RADIUS服務器將驗證結果返回給LAC,並將該用戶對應的L2TP隧道屬性下發給LAC。LAC根據下發的隧道屬性,創建L2TP隧道和會話。