找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3132

积分

0

好友

424

主题
发表于 3 小时前 | 查看: 3| 回复: 0

在探讨远程接入方案时,我们经常会遇到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. 隧道协商:五步建立连接

拨号用户在向企业内网发送业务数据前,必须先协商好传输数据所需的隧道。下图完整展示了从拨号发起,到成功访问内网的全过程:

L2TP VPN隧道建立与数据访问全过程拓扑图

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

LNS通过IPCP ACK为拨号用户分配内网IP地址的抓包截图

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

拨号用户访问企业内网服务器的ICMP请求抓包截图

2. 报文封装:数据如何穿越隧道

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

L2TP VPN数据封装与解封装流程图

  1. 拨号用户 → NAS:原始数据添加PPP头和PPPoE头。由于是点到点连接,PC无需路由选择,直接发给NAS。
  2. NAS处理:NAS用VT(Virtual-Template)接口剥掉PPPoE头,然后加上L2TP头、UDP头和公网IP头,按公网路由发往Internet。
  3. LNS处理:LNS收到后,剥掉L2TP头和PPP头,恢复出原始数据,再按企业内网路由转发给目标服务器。
  4. 响应路径:服务器返回的响应报文,逆向经历类似的封装过程到达拨号用户。

3. 安全策略:流量如何被放行

防火墙或安全设备上的安全策略是通道畅通的保障。我们需要明确流量经过的安全区域。

💻 NAS侧流量与安全域
下图展示了NAS设备上的安全区域划分:

NAS设备安全区域划分与报文流向拓扑图

经过NAS的流量主要有两类:

  1. PPPoE报文:包括建链报文和业务数据的PPPoE封装报文。PPPoE广播报文不受安全策略控制,因此NAS上无需专门为这类流量配置策略。
  2. L2TP报文:包括隧道协商报文和业务数据的L2TP封装报文。这些报文从Local区域流向Untrust区域,需要配置安全策略允许

🖥️ LNS侧流量与安全域
下图展示了LNS设备上的安全区域划分:

LNS设备安全区域划分与报文流向拓扑图

经过LNS的流量也主要有两类:

  1. L2TP报文:从NAS发来的L2TP报文,由Untrust区域进入Local区域,需要配置安全策略允许
  2. 解封装后的业务报文:LNS通过VT接口解封装后,业务报文从DMZ区域(VT接口所在区域)流向Trust区域(连接内网的接口所在区域),同样需要配置安全策略

策略配置汇总
综上所述,NAS和LNS上需要配置的安全策略匹配条件如下表所示:

NAS与LNS安全策略匹配条件表

注:表中的“*”表示应用类型与实际业务相关,可根据需要配置为tcp、udp、icmp等。

总结

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




上一篇:免费卫星图像数据获取:7个开源情报(OSINT)实战平台详解与场景指南
下一篇:干货分享:开源AI视频剪辑工具CutClaw如何实现音乐感知同步与长视频智能剪辑
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-10 07:50 , Processed in 0.625841 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表