介绍
VPDN全称是Virtual Private Dial-up Network。中文意思:虚拟专用拨号网络。允许专用网络拨入服务跨越远程访问服务器(定义为L2TP访问集中器[LAC])。当点对点协议(PPP)客户端拨入LAC时,LAC确定应将该PPP会话转发到该客户端的L2TP网络服务器(LNS)。然后,LNS对用户进行身份验证并启动PPP协商。PPP设置完成后,所有帧都将通过LAC发送到客户端和LNS。
词汇表
- 客户端:连接到远程访问网络的PC或路由器,它是呼叫的发起方。
-
L2TP:第2层隧道协议。PPP定义了一种封装机制,用于在第2层(L2)点对点链路之间传输多协议数据包。通常,用户使用拨号普通旧电话服务(POTS)、ISDN或非对称数字用户线路(ADSL)等技术获得与网络访问服务器(NAS)的L2连接。然后,用户通过该连接运行PPP。在此类配置中,L2端点和PPP会话端点驻留在同一物理设备(NAS)上。
L2TP通过允许L2和PPP端点驻留在通过网络互连的不同设备上来扩展PPP模型。使用L2TP,用户与接入集中器建立L2连接,然后集中器将各个PPP帧通过隧道传输到NAS。这允许PPP数据包的实际处理与L2电路的终止分离。 - L2F:第2层转发协议。L2F是比L2TP更早的隧道协议。
- LAC:L2TP接入集中器。充当L2TP隧道端点的一端并且是LNS的对等方的节点。LAC位于LNS和客户端之间,并将数据包转发到每个客户端和从每个客户端转发数据包。从LAC发送到LNS的数据包需要使用L2TP协议建立隧道。从LAC到客户端的连接通常通过ISDN或模拟进行。
- LNS:L2TP网络服务器。充当L2TP隧道端点的一端并且是LAC的对等方的节点。LNS是LAC从客户端通过隧道传输的PPP会话的逻辑终结点。
- 家庭网关:与L2F术语中的LNS定义相同。
- NAS:与L2F术语中的LAC定义相同。
- 隧道:在L2TP术语中,隧道存在于LAC-LNS对之间。隧道由一个控制连接和零个或多个L2TP会话组成。隧道在LAC和LNS之间传输封装的PPP数据报和控制消息。L2F的过程相同。
- 会话:L2TP是面向连接的。LNS和LAC为由LAC发起或应答的每个呼叫维护一个状态。在客户端和LNS之间建立端到端PPP连接时,将在LAC和LNS之间创建L2TP会话。与PPP连接相关的数据报通过LAC和LNS之间的隧道发送。已建立的L2TP会话与其关联的呼叫之间存在一对一的关系。L2F的过程相同。
VPDN流程概述
在下面对VPDN流程的描述中,我们使用L2TP术语(LAC和LNS)。- 客户端呼叫LAC(通常使用调制解调器或ISDN卡)。
- 客户端和LAC通过协商LCP选项(身份验证方法密码身份验证协议[PAP]或质询握手身份验证协议[CHAP]、PPP多链路、压缩等)来启动PPP阶段。
- 假设已在步骤2中协商了CHAP。LAC向客户端发送CHAP质询。
- LAC会获取响应(例如username@DomainName和密码)。
- 根据CHAP响应中收到的域名或ISDN设置消息中收到的被叫号码信息服务(DNIS),LAC检查客户端是否为VPDN用户。它通过使用其本地VPDN配置或联系身份验证、授权和记帐(AAA)服务器来执行此操作。
- 由于客户端是VPDN用户,因此LAC会获取一些信息(从其本地VPDN配置或AAA服务器获取这些信息),这些信息用于启动与LNS的L2TP或L2F隧道。
- LAC使用LNS启动L2TP或L2F隧道。
- 根据从LAC的请求中收到的名称,LNS检查是否允许LAC打开隧道(LNS检查其本地VPDN配置)。此外,LAC和LNS相互进行身份验证(它们使用本地数据库或联系AAA服务器)。然后,隧道在两个设备之间启动。在此隧道中,可以承载多个VPDN会话。
- 对于客户端username@DomainName,将触发从LAC到LNS的VPDN会话。每个客户端有一个VPDN会话。
- LAC将其协商的LCP选项以及从客户端收到的username@DomainName和密码转发给LNS。
- LNS从VPDN配置中指定的虚拟模板克隆虚拟访问。LNS采用从LAC收到的LCP选项,并在本地或通过联系AAA服务器对客户端进行身份验证。
- LNS向客户端发送CHAP响应。
- 执行IP控制协议(IPCP)阶段,然后安装路由:PPP会话在客户端和LNS之间启动并运行。LAC只是转发PPP帧。PPP帧在LAC和LNS之间通过隧道传输。
隧道协议
可以使用第2层转发(L2F)或第2层隧道协议(L2TP)构建VPDN隧道。- L2F由思科在征求意见(RFC)2341中引入,也用于转发多机箱多链路PPP的PPP会话。
- RFC2661中引入的L2TP结合了思科L2F协议和微软点对点隧道协议(PPTP)的优点。此外,L2F仅支持拨入VPDN,而L2TP同时支持拨入和拨出VPDN。
- 在LAC和LNS之间建立隧道。仅当两个设备之间没有活动隧道时,才会发生此阶段。
- 在LAC和LNS之间建立会话。
LAC决定必须启动从LAC到LNS的隧道。
- LAC发送启动-控制-连接-请求(SCCRQ)。此消息中包含CHAP质询和AV对。
- LNS使用启动-控制-连接-应答(SCCRP)进行响应。此消息中包含CHAP质询、对LAC质询的响应和AV对。
- LAC发送启动-控制-连接连接(SCCCN)。CHAP响应包含在此消息中。
- LNS以零长度正文确认(ZLBACK)进行响应。该确认可能会在另一条消息中携带。隧道已启动。
- LAC向LNS发送传入呼叫请求(ICRQ)。
- LNS使用传入-呼叫-回复(ICRP)消息进行响应。
- LAC发送传入呼叫连接(ICCN)。
- LNS以ZLBACK进行响应。该确认也可能在另一条消息中携带。
- 会话已结束。
注意: 隧道ID用于在LAC和LNS之间多路复用和解复用隧道。会话ID用于标识与隧道的特定会话。
对于L2F,隧道传输PPP会话的设置与L2TP相同。它涉及:
- 在NAS和家庭网关之间建立隧道。仅当两个设备之间没有活动隧道时,才会发生此阶段。
- 在NAS和家庭网关之间建立会话。
NAS决定必须启动从NAS到主网关的隧道。
- NAS会向家庭网关发送L2F_Conf。此消息中包含CHAP质询。
- 家庭网关以L2F_Conf响应。此消息中包含CHAP质询。
- NAS发送L2F_Open。此消息中包含家庭网关质询的CHAP响应。
- 家庭网关以L2F_Open响应。NAS质询的CHAP响应包含在此消息中。隧道已启动。
- NAS会向主网关发送L2F_Open。数据包包括客户端的用户名(client_name)、NAS发送到客户端的CHAP质询(challenge_NAS)及其响应(response_client)。
- 家庭网关通过发回L2F_OPEN接受客户端。流量现在可以在客户端和家庭网关之间自由地沿任一方向流动。