VPDN+IPsec完整连接过程笔记

本文最后更新于 2025年9月22日 下午

VPDN+IPsec完整连接过程笔记

一、核心概念与对象定义(含英文缩写)

在理解连接流程前,需明确参与交互的核心设备、协议及组件,避免混淆:

英文缩写/全称 中文名称 核心作用
VPDN (Virtual Private Dial-up Network) 虚拟专用拨号网络 基于公共网络(互联网/运营商网络),通过拨号建立远程接入企业内网的逻辑通道
IPsec (Internet Protocol Security) 互联网协议安全 一套协议组合,通过加密、认证保障IP层数据传输的安全性(机密性、完整性、抗重放)
Client 用户终端 发起连接的设备(如办公电脑、工业监控终端、物联网设备)
LAC (L2TP Access Concentrator) L2TP访问集中器 运营商部署的接入设备,接收用户拨号请求,转发至企业侧LNS
LNS (L2TP Network Server) L2TP网络服务器 企业侧部署的服务器,是VPDN隧道终点,负责终结隧道、对接企业内网
RADIUS (Remote Authentication Dial-In User Service) 远程认证拨号用户服务 企业/运营商部署的认证服务器,校验用户身份合法性及权限
PPP (Point-to-Point Protocol) 点对点协议 建立用户终端与LAC、LNS之间的基础数据链路,支持认证、IP分配
L2TP (Layer 2 Tunnel Protocol) 第二层隧道协议 在LAC与LNS之间建立隧道,封装PPP帧(用户数据),实现跨公网传输
IKE (Internet Key Exchange) 互联网密钥交换协议 IPsec的“密钥协商工具”,负责生成加密密钥、建立安全关联(SA),不直接加密数据
IPsec SA (Security Association) IPsec安全关联 IPsec的“通信契约”,记录双方协商的加密算法(如AES)、认证算法(如SHA)、密钥等,单向生效(需 inbound/outbound 成对)
ESP (Encapsulating Security Payload) 封装安全载荷 IPsec核心加密协议,同时实现数据加密和完整性认证(VPDN场景首选)
AH (Authentication Header) 认证头 IPsec协议之一,仅做完整性认证和身份校验,不加密数据(VPDN场景极少用)
SPI (Security Parameter Index) 安全参数索引 标识IPsec SA的唯一编号,用于接收方快速匹配对应的加密规则
ECDH (Elliptic Curve Diffie-Hellman) 椭圆曲线迪菲-赫尔曼 IKE协商中用于生成共享密钥的算法,无需传输密钥本身,仅交换公钥即可计算一致密钥

二、VPDN+IPsec 完整连接流程(5大阶段)

VPDN+IPsec的连接是“拨号建链路→隧道传数据→加密保安全”的复合过程,需经历5个阶段,各阶段环环相扣:

阶段1:用户终端与LAC建立PPP基础链路

核心目标:通过拨号建立用户终端与运营商LAC之间的点对点数据链路,为后续隧道传输打基础。

sequenceDiagram
    participant C as 用户终端(Client)
    participant L as LAC(运营商)

    C->>L: 拨号请求(账号/密码)
    L->>C: LCP 参数协商 (MTU/压缩等)
    C->>L: 回应确认
    L->>C: CHAP 挑战(随机数)
    C->>L: CHAP 响应(加密后的随机数)
    L->>C: 认证结果(成功)
    Note over C,L: PPP 链路建立成功

  1. 参数配置与拨号发起
    用户在终端(如电脑)配置VPDN拨号参数:运营商提供的VPDN账号/密码、LAC公网地址,通过本地网络(宽带、4G/5G)向LAC发起拨号请求。

  2. PPP链路协商(LCP阶段)

    • 终端与LAC通过 LCP(链路控制协议) 协商链路参数:最大传输单元(MTU)、数据压缩方式、链路超时时间等。
    • 协商通过后,建立基础数据链路(物理层/数据链路层连通)。
  3. PPP临时认证(CHAP/PAP阶段)

    • LAC通过 CHAP(挑战-响应认证协议,优先)PAP(密码认证协议,明文传输,安全性低) 校验用户身份:
      • CHAP流程:LAC发送随机“挑战码”→终端用账号密码加密挑战码→LAC解密后比对,确认身份合法。
    • 认证通过后,终端与LAC的PPP链路正式激活。

阶段2:LAC与LNS建立L2TP隧道

核心目标:在LAC与企业侧LNS之间建立L2TP隧道,封装用户PPP帧,实现跨公网传输(此时数据暂未加密,需后续IPsec保护)。

sequenceDiagram
    participant LAC as LAC
    participant LNS as LNS

    LAC->>LNS: 隧道建立请求 (用户信息、LAC 标识)
    LNS->>LAC: 分配 Tunnel ID / Session ID
    LAC->>LNS: 确认隧道参数
    Note over LAC,LNS: L2TP 隧道建立成功

  1. L2TP隧道协商发起
    LAC验证用户拨号请求后,向企业侧LNS发送 L2TP隧道建立请求,携带用户信息(账号、拨号类型)、LAC自身标识(如公网IP)。

  2. L2TP隧道参数确认

    • LAC与LNS通过L2TP协议协商核心参数:
      • 隧道ID(标识唯一隧道,如LAC→LNS为Tunnel ID 100,LNS→LAC为Tunnel ID 200);
      • 会话ID(区分同一隧道内不同用户的连接,如用户A为Session ID 5,用户B为Session ID 6);
      • 隧道验证(可选,通过预共享密钥确认LAC与LNS身份,防止非法设备接入)。
  3. L2TP隧道激活
    协商通过后,LAC与LNS之间形成逻辑隧道,用户终端的PPP帧可通过该隧道传输(此时数据以明文形式封装在L2TP报文中,需进入IPsec阶段加密)。

阶段3:LAC与LNS建立IPsec加密隧道(核心安全环节)

核心目标:通过IKE协商生成加密密钥和安全关联(SA),建立IPsec隧道,加密L2TP隧道的所有流量,防止公网传输中被窃听、篡改。

sequenceDiagram
    participant LAC as LAC
    participant LNS as LNS

    Note over LAC,LNS: 阶段1: 建立 IKE SA
    LAC->>LNS: 提供算法列表 + Nonce + ECDH 公钥
    LNS->>LAC: 选择算法 + Nonce + ECDH 公钥
    Note over LAC,LNS: 双方计算共享密钥
    LAC->>LNS: 身份认证(加密)
    LNS->>LAC: 身份认证响应
    Note over LAC,LNS: IKE SA 建立成功

    Note over LAC,LNS: 阶段2: 建立 IPsec SA
    LAC->>LNS: 提议 ESP + AES + SHA
    LNS->>LAC: 确认参数
    Note over LAC,LNS: 双方生成 IPsec 加密/认证密钥<br/>IPsec SA 生效

3.1 IKE协商:生成密钥与安全关联(2个子阶段)

IKE是IPsec的“前置工具”,分两步完成密钥和规则协商,确保后续加密参数一致。

子阶段1:建立IKE SA(保护后续协商安全)
  • 目的:建立临时加密通道(IKE SA),避免后续IPsec参数协商被窃听。
  • 流程
    1. IKE_SA_INIT Request(LAC→LNS)
      LAC发送支持的算法列表(加密:AES-256-GCM;哈希:SHA-256;密钥交换:ECDH)、随机数(Nonce)、LAC的ECDH公钥。
    2. IKE_SA_INIT Response(LNS→LAC)
      LNS从LAC的算法列表中选择一套(如确定AES-256+SHA-256+ECDH),返回自身随机数、ECDH公钥,可选附加LNS证书(身份标识)。
    3. 共享密钥生成
      LAC和LNS分别用自身私钥、对方公钥、双方随机数,通过ECDH算法计算出 共享密钥(Shared Secret),再衍生出IKE SA的加密密钥、认证密钥(双方结果完全一致,无需传输密钥)。
    4. IKE_AUTH Request/Response(身份认证)
      • LAC用IKE SA密钥加密自身身份(如LAC公网IP)和认证数据(私钥签名的哈希值),发送给LNS;
      • LNS验证LAC身份后,同样加密自身身份返回;
      • 验证通过,IKE SA建立成功(有效期几小时,用于保护后续子SA协商)。
子阶段2:建立IPsec SA(确定数据加密规则)
  • 目的:在IKE SA保护下,协商IPsec的具体加密规则,生成IPsec SA。
  • 流程
    1. CREATE_CHILD_SA Request(LAC→LNS)
      LAC提出IPsec参数需求:隧道模式(必选,保护原始IP地址)、ESP协议(加密+认证)、加密算法(AES-256-GCM)、认证算法(SHA-256)。
    2. CREATE_CHILD_SA Response(LNS→LAC)
      LNS确认参数,双方基于IKE SA密钥,通过密钥派生算法生成 IPsec SA的加密密钥、认证密钥
    3. IPsec SA生效
      双方记录IPsec SA信息(SPI、算法、密钥、有效期:几分钟到1小时),此时IPsec隧道的“加密规则”正式确定。

3.2 IPsec隧道激活:加密L2TP流量

IPsec SA建立后,LAC与LNS之间的所有L2TP隧道流量(用户PPP数据)会被ESP协议加密,封装流程如下:

  1. 原始数据:L2TP封装后的报文(含用户PPP帧,源IP:LAC内网IP,目的IP:LNS内网IP);
  2. ESP加密:用IPsec SA加密密钥(AES-256)加密整个原始数据,同时用认证密钥(SHA-256)计算数据哈希值(存于ESP认证字段,防篡改);
  3. 添加ESP头/尾
    • 头部:SPI(标识对应的IPsec SA)、序列号(防重放攻击,每次发送递增);
    • 尾部:填充信息(确保数据长度符合加密块要求)、Next Header(标识原始协议为L2TP);
  4. 添加公网IP头:源IP(LAC公网IP)、目的IP(LNS公网IP)、协议字段=50(标识ESP协议);
  5. 公网传输:加密后的报文通过互联网发送至LNS,即使被截取也无法解密。

阶段4:用户身份二次认证(企业级权限校验)

核心目标:通过企业内部RADIUS服务器,做更严格的身份和权限校验(避免运营商侧认证通过但非企业合法用户的情况)。

  1. LNS发起认证请求
    LNS从L2TP报文中提取用户账号/密码,发送至企业内部RADIUS服务器,请求校验。

  2. RADIUS认证与权限返回

    • RADIUS服务器查询用户白名单、权限配置(如是否允许访问财务系统、可访问的内网网段);
    • 认证通过:返回用户权限信息(如可访问的内网网段192.168.1.0/24、VLAN ID=10);
    • 认证失败:拒绝用户接入,终止连接。

阶段5:分配内网IP,访问企业资源

核心目标:用户终端获得企业内网IP,通过加密隧道访问内网资源,完成通信闭环。

  1. 分配企业内网IP(IPCP阶段)
    LNS通过 PPP的IPCP(IP控制协议) 给用户终端分配企业内网IP地址(如192.168.1.100,与企业办公区设备同网段),同时返回DNS服务器地址、子网掩码。

  2. 用户访问内网资源

    • 终端发送请求(如访问OA系统):数据先封装为PPP帧→L2TP隧道封装→IPsec加密→公网传输至LNS;
    • LNS处理:解密IPsec流量→解封装L2TP/PPP帧→根据用户权限转发至内网服务器(如OA服务器192.168.1.5);
    • 响应返回:服务器响应数据按原路(内网→LNS→IPsec加密→L2TP隧道→用户终端)返回,用户终端接收后解析显示。
  3. 密钥更新(无缝保障安全)
    IPsec SA到期前(如1小时),LAC与LNS通过IKE的 CREATE_CHILD_SA 消息协商新的IPsec SA(复用已有的IKE SA,无需重新认证),实现密钥“无缝更新”,避免长期使用同一密钥导致安全风险。

三、关键技术总结

3.1 数据封装顺序(从用户到公网)

用户应用数据(如HTTP请求)→ PPP帧封装(含用户标识)→ L2TP隧道封装(跨公网传输)→ IPsec ESP加密(安全保障)→ 公网IP头封装(路由转发)

flowchart TB
    App["用户应用数据<br/>(HTTP 请求)"]
    PPP["PPP 帧封装<br/>(用户认证信息)"]
    L2TP["L2TP 隧道封装<br/>(Tunnel ID / Session ID)"]
    ESP["IPsec ESP 加密<br/>(AES+SHA, SPI, 序列号)"]
    IP["公网IP头<br/>(LAC公网 → LNS公网)"]

    App --> PPP --> L2TP --> ESP --> IP

3.2 IPsec的核心安全保障

安全维度 实现机制
机密性 AES-256等对称加密算法,加密IP层数据
完整性 SHA-256等哈希算法,生成数据摘要,防止篡改
抗重放 ESP头部序列号,拒绝重复接收的数据包
身份认证 IKE协商中的预共享密钥/证书,确保LAC与LNS为授权设备

3.3 适用场景

  • 企业员工远程办公(在家/出差访问内网OA、ERP);
  • 分支机构互联(如上海分公司通过VPDN+IPsec访问杭州总部内网);
  • 物联网设备远程管理(如各地充电桩、ATM机接入企业管理平台);
  • 高安全需求行业(金融、政务、医疗),需符合数据传输合规要求。

四、整体流程图

sequenceDiagram
    participant Client as 用户终端(Client)
    participant LAC as LAC(运营商接入设备)
    participant LNS as LNS(企业L2TP服务器)
    participant RADIUS as RADIUS(企业认证服务器)
    participant Intranet as 企业内网资源

    %% 阶段1 PPP 拨号
    Client->>LAC: 拨号请求(账号/密码)
    LAC->>Client: LCP 参数协商
    Client->>LAC: CHAP/PAP 认证响应
    LAC->>Client: 认证成功 → PPP 链路建立

    %% 阶段2 L2TP 隧道
    LAC->>LNS: 请求建立 L2TP 隧道
    LNS->>LAC: 分配 Tunnel ID / Session ID
    Note over LAC,LNS: L2TP 隧道建立成功

    %% 阶段3 IPsec 建立
    LAC->>LNS: IKE_SA_INIT (算法/Nonce/ECDH 公钥)
    LNS->>LAC: 响应 (选择算法/公钥)
    Note over LAC,LNS: 计算共享密钥,建立 IKE SA
    LAC->>LNS: CREATE_CHILD_SA (ESP/AES/SHA 提议)
    LNS->>LAC: 确认参数
    Note over LAC,LNS: IPsec SA 生效,L2TP 流量受保护

    %% 阶段4 二次认证
    LNS->>RADIUS: 转发用户凭证进行认证
    RADIUS->>LNS: 返回认证结果+权限
    LNS->>Client: 通知认证通过/拒绝

    %% 阶段5 分配内网IP并访问
    LNS->>Client: IPCP 分配内网IP/DNS
    Client->>Intranet: 访问内网应用(OA/ERP等)
    Intranet->>Client: 返回业务数据(通过L2TP+IPsec)

VPDN+IPsec完整连接过程笔记
https://xinhaojin.github.io/2025/09/22/VPDN+IPsec完整连接过程笔记/
作者
xinhaojin
发布于
2025年9月22日
许可协议