在探讨远程接入方案时,我们经常会遇到NAS-Initiated L2TP VPN这种场景。那么,拨号用户究竟是如何通过它一步步访问到企业内部资源的呢?今天我们就来把整个过程拆解清楚。
核心概念
- NAS(Network Access Server)网络接入服务器:通常指运营商用来向拨号用户提供PPP/PPPoE接入服务的设备。
- LNS(L2TP Network Server)L2TP网络服务器:通常指企业总部的出口网关,负责终结L2TP隧道。
- LAC(L2TP Access Concentrator)L2TP访问集中器:通常指企业分支的出口网关,在另一种场景(Client-Initiated)中由它主动发起隧道。本文聚焦于NAS-Initiated场景。
1. 隧道协商:五步建立连接
拨号用户在向企业内网发送业务数据前,必须先协商好传输数据所需的隧道。下图完整展示了从拨号发起,到成功访问内网的全过程:

1. 拨号用户与NAS建立PPPoE连接
拨号用户发出PPPoE广播报文寻找NAS,这台NAS将成为后续访问企业内网的隧道入口。
🚇 交互过程:
- PPPoE Client:发送PADI广播报文,寻找PPPoE Server。
- PPPoE Server (NAS):返回PADO报文,告知可建立连接。
- PPPoE Client:发送PADR报文,请求会话ID。
- PPPoE Server:返回PADS报文,分配Session ID(例如“1”)。
- PPPoE Client:发送LCP Request,协商链路参数(如MRU值)。
- PPPoE Server:回应LCP ACK,完成链路层协商。
- PPPoE Client:发送PAP/CHAP报文进行身份认证(例如用户
test@test,密码test@123)。认证通过后,PPPoE连接建立。
注意:L2TP VPN隧道本身不提供数据加密功能。为确保安全,实际部署中常结合IPSec技术对隧道进行加密。
2. NAS与LNS建立L2TP VPN隧道
PPPoE连接建立会触发NAS与LNS之间的隧道协商。
📡 交互过程:
- NAS:向LNS的UDP 1701端口发送SCCRQ报文,提议Tunnel ID(初始为0,协商后例如为1)。
- LNS:返回SCCRP报文,确认Tunnel ID(例如也为1)。
- NAS:发送SCCCN确认报文。
- 隧道建立完毕,双方使用确定的UDP端口进行通信。
一个NAS或LNS可建立多条隧道,用不同的Tunnel ID区分,以承载不同用户的业务。
3. NAS与LNS建立L2TP会话
L2TP会话用于管理后续拨号用户与LNS之间的PPP连接状态。
🛡️ 交互过程:
- NAS:发送ICRQ报文,提议Session ID(初始为0,例如提议28)。
- LNS:返回ICRP报文,确认Session ID(例如为20)。
- NAS:发送ICCN确认报文。
- L2TP会话建立完毕。
4. 拨号用户与LNS建立PPP连接(获取内网IP)
拨号用户通过此连接从LNS获取企业内网IP地址。
a. 可选:LNS对用户进行身份认证
NAS-Initiated场景下,认证有两种方案:仅NAS认证,或NAS与LNS双重认证(二次认证)。由LNS的配置决定:
- 代理认证(默认):信任NAS的认证结果,LNS不再二次认证。
- 强制CHAP认证:要求用户用CHAP方式向LNS重新认证。
- LCP重协商:不信任NAS,要求与用户重新进行完整的LCP协商和认证。
b. & c. IP地址分配
认证通过后:
- 拨号用户向LNS发送IPCP Request消息,请求内网IP地址。
- LNS回复IPCP ACK消息,携带分配的内网IP(来自LNS的地址池)。例如下图中,分配的地址是
172.16.1.51。

5. 拨号用户访问企业总部
至此,所有连接准备就绪。拨号用户可以使用刚获取的内网IP(如172.16.1.51)访问企业服务器(如192.168.1.1)。数据报文将经过NAS和LNS的封装与解封装。

2. 报文封装:数据如何穿越隧道
理解了连接建立,我们再看看数据报文是如何被“包装”和“拆包”的:

- 拨号用户 → NAS:原始数据添加PPP头和PPPoE头。由于是点到点连接,PC无需路由选择,直接发给NAS。
- NAS处理:NAS用VT(Virtual-Template)接口剥掉PPPoE头,然后加上L2TP头、UDP头和公网IP头,按公网路由发往Internet。
- LNS处理:LNS收到后,剥掉L2TP头和PPP头,恢复出原始数据,再按企业内网路由转发给目标服务器。
- 响应路径:服务器返回的响应报文,逆向经历类似的封装过程到达拨号用户。
3. 安全策略:流量如何被放行
防火墙或安全设备上的安全策略是通道畅通的保障。我们需要明确流量经过的安全区域。
💻 NAS侧流量与安全域
下图展示了NAS设备上的安全区域划分:

经过NAS的流量主要有两类:
- PPPoE报文:包括建链报文和业务数据的PPPoE封装报文。PPPoE广播报文不受安全策略控制,因此NAS上无需专门为这类流量配置策略。
- L2TP报文:包括隧道协商报文和业务数据的L2TP封装报文。这些报文从Local区域流向Untrust区域,需要配置安全策略允许。
🖥️ LNS侧流量与安全域
下图展示了LNS设备上的安全区域划分:

经过LNS的流量也主要有两类:
- L2TP报文:从NAS发来的L2TP报文,由Untrust区域进入Local区域,需要配置安全策略允许。
- 解封装后的业务报文:LNS通过VT接口解封装后,业务报文从DMZ区域(VT接口所在区域)流向Trust区域(连接内网的接口所在区域),同样需要配置安全策略。
策略配置汇总
综上所述,NAS和LNS上需要配置的安全策略匹配条件如下表所示:

注:表中的“*”表示应用类型与实际业务相关,可根据需要配置为tcp、udp、icmp等。
总结
NAS-Initiated L2TP VPN是一种经典的远程接入架构,特别适用于运营商提供拨号接入、企业总部提供内网服务的场景。其核心在于分阶段建立连接(PPPoE -> L2TP隧道 -> L2TP会话 -> PPP连接),并通过多层封装使私有数据能在公网上安全传输。作为网络运维人员,理解其原理、协商过程、封装方式和必要的配置管理(尤其是安全策略),对于部署和排查问题至关重要。希望这篇深入的原理剖析能帮助你更好地掌握这项技术。如果你想与更多同行交流网络技术,欢迎访问云栈社区的网络技术板块。
|