介紹
VPDN全稱是Virtual Private Dial-up Network。中文意思:虛擬專用撥號網(wǎng)絡(luò)。允許專用網(wǎng)絡(luò)撥入服務(wù)跨越遠程訪問服務(wù)器(定義為L2TP訪問集中器[LAC])。
當點對點協(xié)議(PPP)客戶端撥入LAC時,LAC確定應(yīng)將該PPP會話轉(zhuǎn)發(fā)到該客戶端的L2TP網(wǎng)絡(luò)服務(wù)器(LNS)。然后,LNS對用戶進行身份驗證并啟動PPP協(xié)商。PPP設(shè)置完成后,所有幀都將通過LAC發(fā)送到客戶端和LNS。
詞匯表
客戶端:連接到遠程訪問網(wǎng)絡(luò)的PC或路由器,它是呼叫的發(fā)起方。
L2TP:第2層隧道協(xié)議。PPP定義了一種封裝機制,用于在第2層(L2)點對點鏈路之間傳輸多協(xié)議數(shù)據(jù)包。通常,用戶使用撥號普通舊電話服務(wù)(POTS)、ISDN或非對稱數(shù)字用戶線路(ADSL)等技術(shù)獲得與網(wǎng)絡(luò)訪問服務(wù)器(NAS)的L2連接。然后,用戶通過該連接運行PPP。在此類配置中,L2端點和PPP會話端點駐留在同一物理設(shè)備(NAS)上。
L2TP通過允許L2和PPP端點駐留在通過網(wǎng)絡(luò)互連的不同設(shè)備上來擴展PPP模型。使用L2TP,用戶與接入集中器建立L2連接,然后集中器將各個PPP幀通過隧道傳輸?shù)絅AS。這允許PPP數(shù)據(jù)包的實際處理與L2電路的終止分離。
L2F:第2層轉(zhuǎn)發(fā)協(xié)議。L2F是比L2TP更早的隧道協(xié)議。
LAC:L2TP接入集中器。充當L2TP隧道端點的一端并且是LNS的對等方的節(jié)點。LAC位于LNS和客戶端之間,并將數(shù)據(jù)包轉(zhuǎn)發(fā)到每個客戶端和從每個客戶端轉(zhuǎn)發(fā)數(shù)據(jù)包。從LAC發(fā)送到LNS的數(shù)據(jù)包需要使用L2TP協(xié)議建立隧道。從LAC到客戶端的連接通常通過ISDN或模擬進行。
LNS:L2TP網(wǎng)絡(luò)服務(wù)器。充當L2TP隧道端點的一端并且是LAC的對等方的節(jié)點。LNS是LAC從客戶端通過隧道傳輸?shù)腜PP會話的邏輯終結(jié)點。
家庭網(wǎng)關(guān):與L2F術(shù)語中的LNS定義相同。
NAS:與L2F術(shù)語中的LAC定義相同。
隧道:在L2TP術(shù)語中,隧道存在于LAC-LNS對之間。隧道由一個控制連接和零個或多個L2TP會話組成。隧道在LAC和LNS之間傳輸封裝的PPP數(shù)據(jù)報和控制消息。L2F的過程相同。
會話:L2TP是面向連接的。LNS和LAC為由LAC發(fā)起或應(yīng)答的每個呼叫維護一個狀態(tài)。在客戶端和LNS之間建立端到端PPP連接時,將在LAC和LNS之間創(chuàng)建L2TP會話。與PPP連接相關(guān)的數(shù)據(jù)報通過LAC和LNS之間的隧道發(fā)送。已建立的L2TP會話與其關(guān)聯(lián)的呼叫之間存在一對一的關(guān)系。L2F的過程相同。
VPDN流程概述
在下面對VPDN流程的描述中,我們使用L2TP術(shù)語(LAC和LNS)。
客戶端呼叫LAC(通常使用調(diào)制解調(diào)器或ISDN卡)。
客戶端和LAC通過協(xié)商LCP選項(身份驗證方法密碼身份驗證協(xié)議[PAP]或質(zhì)詢握手身份驗證協(xié)議[CHAP]、PPP多鏈路、壓縮等)來啟動PPP階段。
假設(shè)已在步驟2中協(xié)商了CHAP。LAC向客戶端發(fā)送CHAP質(zhì)詢。
LAC會獲取響應(yīng)(例如username@DomainName和密碼)。
根據(jù)CHAP響應(yīng)中收到的域名或ISDN設(shè)置消息中收到的被叫號碼信息服務(wù)(DNIS),LAC檢查客戶端是否為VPDN用戶。它通過使用其本地VPDN配置或聯(lián)系身份驗證、授權(quán)和記帳(AAA)服務(wù)器來執(zhí)行此操作。
由于客戶端是VPDN用戶,因此LAC會獲取一些信息(從其本地VPDN配置或AAA服務(wù)器獲取這些信息),這些信息用于啟動與LNS的L2TP或L2F隧道。
LAC使用LNS啟動L2TP或L2F隧道。
根據(jù)從LAC的請求中收到的名稱,LNS檢查是否允許LAC打開隧道(LNS檢查其本地VPDN配置)。此外,LAC和LNS相互進行身份驗證(它們使用本地數(shù)據(jù)庫或聯(lián)系A(chǔ)AA服務(wù)器)。然后,隧道在兩個設(shè)備之間啟動。在此隧道中,可以承載多個VPDN會話。
對于客戶端username@DomainName,將觸發(fā)從LAC到LNS的VPDN會話。每個客戶端有一個VPDN會話。
LAC將其協(xié)商的LCP選項以及從客戶端收到的username@DomainName和密碼轉(zhuǎn)發(fā)給LNS。
LNS從VPDN配置中指定的虛擬模板克隆虛擬訪問。LNS采用從LAC收到的LCP選項,并在本地或通過聯(lián)系A(chǔ)AA服務(wù)器對客戶端進行身份驗證。
LNS向客戶端發(fā)送CHAP響應(yīng)。
執(zhí)行IP控制協(xié)議(IPCP)階段,然后安裝路由:PPP會話在客戶端和LNS之間啟動并運行。LAC只是轉(zhuǎn)發(fā)PPP幀。PPP幀在LAC和LNS之間通過隧道傳輸。
隧道協(xié)議
可以使用第2層轉(zhuǎn)發(fā)(L2F)或第2層隧道協(xié)議(L2TP)構(gòu)建VPDN隧道。
L2F由思科在征求意見(RFC)2341中引入,也用于轉(zhuǎn)發(fā)多機箱多鏈路PPP的PPP會話。
RFC2661中引入的L2TP結(jié)合了思科L2F協(xié)議和微軟點對點隧道協(xié)議(PPTP)的優(yōu)點。此外,L2F僅支持撥入VPDN,而L2TP同時支持撥入和撥出VPDN。
兩種協(xié)議都使用UDP端口1701通過IP網(wǎng)絡(luò)構(gòu)建隧道以轉(zhuǎn)發(fā)鏈路層幀。對于L2TP,隧道PPP會話的設(shè)置包括兩個步驟:
在LAC和LNS之間建立隧道。僅當兩個設(shè)備之間沒有活動隧道時,才會發(fā)生此階段。
在LAC和LNS之間建立會話。
LAC決定必須啟動從LAC到LNS的隧道。
LAC發(fā)送啟動-控制-連接-請求(SCCRQ)。此消息中包含CHAP質(zhì)詢和AV對。
LNS使用啟動-控制-連接-應(yīng)答(SCCRP)進行響應(yīng)。此消息中包含CHAP質(zhì)詢、對LAC質(zhì)詢的響應(yīng)和AV對。
LAC發(fā)送啟動-控制-連接連接(SCCCN)。CHAP響應(yīng)包含在此消息中。
LNS以零長度正文確認(ZLBACK)進行響應(yīng)。該確認可能會在另一條消息中攜帶。隧道已啟動。
LAC向LNS發(fā)送傳入呼叫請求(ICRQ)。
LNS使用傳入-呼叫-回復(fù)(ICRP)消息進行響應(yīng)。
LAC發(fā)送傳入呼叫連接(ICCN)。
LNS以ZLBACK進行響應(yīng)。該確認也可能在另一條消息中攜帶。
會話已結(jié)束。
注意: 上述用于打開隧道或會話的消息帶有RFC2661中定義的屬性值對(AVP)。它們描述屬性和信息(例如持有者帽、主機名、供應(yīng)商名稱和窗口大小)。一些AV對是必需的,而另一些是可選的。
注意: 隧道ID用于在LAC和LNS之間多路復(fù)用和解復(fù)用隧道。會話ID用于標識與隧道的特定會話。
對于L2F,隧道傳輸PPP會話的設(shè)置與L2TP相同。它涉及:
在NAS和家庭網(wǎng)關(guān)之間建立隧道。僅當兩個設(shè)備之間沒有活動隧道時,才會發(fā)生此階段。
在NAS和家庭網(wǎng)關(guān)之間建立會話。
NAS決定必須啟動從NAS到主網(wǎng)關(guān)的隧道。
NAS會向家庭網(wǎng)關(guān)發(fā)送L2F_Conf。此消息中包含CHAP質(zhì)詢。
家庭網(wǎng)關(guān)以L2F_Conf響應(yīng)。此消息中包含CHAP質(zhì)詢。
NAS發(fā)送L2F_Open。此消息中包含家庭網(wǎng)關(guān)質(zhì)詢的CHAP響應(yīng)。
家庭網(wǎng)關(guān)以L2F_Open響應(yīng)。NAS質(zhì)詢的CHAP響應(yīng)包含在此消息中。隧道已啟動。
NAS會向主網(wǎng)關(guān)發(fā)送L2F_Open。數(shù)據(jù)包包括客戶端的用戶名(client_name)、NAS發(fā)送到客戶端的CHAP質(zhì)詢(challenge_NAS)及其響應(yīng)(response_client)。
家庭網(wǎng)關(guān)通過發(fā)回L2F_OPEN接受客戶端。流量現(xiàn)在可以在客戶端和家庭網(wǎng)關(guān)之間自由地沿任一方向流動。
注意: 隧道由CLID(客戶端ID)標識。多路復(fù)用ID(MID)標識隧道內(nèi)的特定連接。