L2TP虚拟局域网
一、基本概念
早期个人和企业通过电话线接入互联网,部分企业借助 PSTN(公共交换电话网)或 ISDN(综合业务数据网)实现连接,通过这两种网络建立的虚拟局域网技术被称为 VPDN(虚拟专用拨号网)。
二、Client 直接拨号的 L2TP 虚拟局域网
(一)原理
LNS 会对接入的用户进行认证,认证通过后,为用户分配公司内网 IP 地址,使用户能够以私网方式访问企业总部。
(二)配置
1. 用户创建
创建用于认证过程的用户,例如用户名 user0002
,密码 Password123
。
2. LNS 的 L2TP 配置
- 参数:包括对端隧道名称(如
client
)、用户名(如user0001
)、密码(如Password123
)、隧道验证密码(如Hello123
)、地址池(如172.16.1.0/24
,用于分配给 L2TP 用户 )。 - 服务器地址:为 LNS 上的 VT 接口配置,可理解为防火墙上的环回接口。
3. VT 接口配置
[FW]interface Virtual-Template 10
[FW-Virtual-Template10]ip address 172.16.10.200 24
[FW-Virtual-Template10]ppp authentication-mode pap
[FW-Virtual-Template10]remote service-scheme l2tp
[FW-zone-dmz]add int Virtual-Template 10
4. 地址池与业务方案配置
[FW]ip pool pool
[FW-ip-pool-pool]section 1 172.16.10.1 172.16.10.100
[FW]aaa
[FW-aaa]service-scheme l2tp
[FW-aaa-service-l2tp]ip-pool pool
5. 认证域配置
[FW-aaa]domain default
[FW-aaa-domain-default]service-type l2tp
6. L2TP 组配置
[FW]l2tp enable
[FW]l2tp-group 1
[FW-l2tp-1]allow l2tp virtual-template 10 remote client domain default
[FW-l2tp-1]tunnel authentication
[FW-l2tp-1]tunnel password cipher Hello123
7. 安全策略配置
需配置允许移动用户主动发起 L2TP 请求的策略(Untrust-->Local
),以及允许企业总部服务器与用户业务交互的策略(Trust-->VT 接口所在区域
等 )。
(三)报文交互
- Client 发送 SCCRQ 报文,告知对端后续使用的 Tunnel ID,该 ID 用于 LNS 设备区分不同隧道。
- L2TP 报文以 UDP 协议传输,发送时选用一个空闲端口作为源端口,向 LNS 的 1701 端口发送。
- 存在建立 L2TP 隧道(如 SCCRQ、SCCRP、SCCCN 报文 )和会话(如 ICRQ、ICRP、ICCN 报文 )的相关报文。
- 当 LNS 成功为用户分配 IP 地址后,本地会生成一条去往 Client IP 地址的主机路由,协议为 Unr。
(四)VT 接口
- 功能:虚拟接口,用于与企业内部网络的终端设备进行通讯,类似 GRE 的 Tunnel 接口,负责对数据报文中的 L2TP 协议和 PPP 协议内容进行封装和解封装。
- IP 地址和地址池规划:VT 接口可与地址池地址处于同一网段或不同网段,通常将企业内网地址和地址池规划为不同网段。
(五)报文传输流程
- 用户向企业总部发送报文时,业务报文经 PPP 封装和 L2TP 封装,按用户本地路由传输给 LNS。
- LNS 收到报文后,通过 VT 接口拆除 L2TP 头部和 PPP 头部,再按企业内部路由信息转发给企业总部服务器。
- 企业总部服务器收到报文后,回复响应报文。
(六)安全策略
- 用户和 LNS 之间传输的 L2TP 报文:对应
Untrust-->Local
区域策略,允许移动用户主动发起的 L2TP 请求信息,包括建立隧道的 L2TP 报文和被解封装前的业务报文。 - 用户和企业总部服务器传输的业务报文:LNS 通过 VT 接口解封装后,由该接口查找路由表转发,VT 接口所在区域为 Trust,服务器的应答报文对应
Trust-->VT 接口所在区域
策略。
三、基于 LAC 拨号的 L2TP 虚拟局域网
(一)原理
用户通过拨号接入互联网的 LAC 设备,LAC 设备向拨号用户提供 PPP/PPPoE 接入服务,用户发出的 PPP 报文到达 LAC 后,被 LAC 通过 L2TP 虚拟局域网隧道封装为 L2TP 报文在互联网上传输,实现与企业总部的数据通讯。
(二)PPPoE 相关
- 典型的 C/S 架构,由客户端主动向服务端申请认证和 IP。
- PPPoE 发现:进行 PPPoE 协商,可借助 DHCP 协议理解。
- PPPoE 会话:进行 PPP 协商。
- PPPoE 终结:断开 PPPoE 会话。
(三)配置
1. 建立 PPPoE 连接
(1)PPPoE Client 配置
[PPPoE Client]interface Dialer 1
[PPPoE Client-Dialer1]dialer user user1
[PPPoE Client-Dialer1]dialer-group 1
[PPPoE Client-Dialer1]dialer bundle 1
[PPPoE Client-Dialer1]ip address ppp-negotiate
[PPPoE Client-Dialer1]ppp chap user user1
[PPPoE Client-Dialer1]ppp chap password cipher Password123
[PPPoE Client]dialer-rule 1 ip permit
[PPPoE Client]int g 1/0/0
[PPPoE Client-GigabitEthernet1/0/0]pppoe-client dial-bundle-number 1
(2)PPPoE Server 配置
[NAS]interface Virtual-Template 1
[NAS-Virtual-Template1]ppp authentication-mode chap
[NAS-Virtual-Template1]ip address 2.2.2.2 24
[NAS]firewall zone dmz
[NAS-zone-dmz]add interface Virtual-Template 1
[NAS]int g 1/0/0
[NAS-GigabitEthernet1/0/0]pppoe-server bind virtual-template 1
[NAS]aaa
[NAS-aaa]domain default
[NAS-aaa-domain-default]service-type l2tp
[NAS]user-manage user user1 domain default
[NAS-localuser-user1]password Password123
说明:LAC 上无需配置地址池,用户 IP 由 LNS 分配,即使 LAC 配置了地址池,在 L2TP 隧道建立情况下也优先使用 LNS 的地址。
2. 建立 L2TP 隧道
(1)LAC 配置
[NAS]l2tp enable
[NAS]l2tp-group 1
[NAS-l2tp-1]tunnel authentication
[NAS-l2tp-1]tunnel password cipher Hello123
[NAS-l2tp-1]tunnel name lac
[NAS-l2tp-1]start l2tp ip 20.1.1.2 fullusername user1
(2)LNS 配置
[LNS]ip pool l2tp
[LNS-ip-pool-l2tp]section 0 172.16.0.2 172.16.0.100
[LNS]aaa
[LNS-aaa]service-scheme l2tp
[LNS-aaa-service-l2tp]ip-pool l2tp
[LNS]aaa
[LNS-aaa]domain default
[LNS-aaa-domain-default]service-type l2tp
[LNS]user-manage user user1 domain default
[LNS-localuser-user1]password Password123
[LNS]interface Virtual-Template 1
[LNS-Virtual-Template1]ppp authentication-mode chap
[LNS-Virtual-Template1]ip address 172.16.0.1 24
[LNS-Virtual-Template1]remote service-scheme l2tp
[LNS]firewall zone dmz
[LNS-zone-dmz]add int Virtual-Template 1
3. LNS 认证与 IP 分配
- 认证方式:LAC 将用户信息发送给 LNS 验证,LNS 有三种处理态度:
- LAC 代理认证:相信 LAC,直接验证 LAC 发来的用户信息。
- 强制 CHAP 认证:不相信 LAC,要求用 CHAP 协议重新审查用户,配置命令
[LNS-l2tp-1]mandatory-chap
。 - LCP 重协商:不相信 LAC 且对之前协议不满意,重新发起 LCP 协商,配置命令
[LNS-l2tp-1]mandatory-lcp
。
- 后两种为 LNS 二次认证,可绕过 LAC 直接验证 PPPoE 客户端信息。
- 补充路由:
[PPPoE Client]ip route-static 0.0.0.0 0 172.16.0.1
(下一跳为 LNS 的 VT 接口地址 ),并将 Dialer 1 加入安全区域。
4. 报文格式变化
- 用户发送的报文结构:
数据 -- 私有 IP--PPP 头部 --PPPoE 头部 -- 以太网头部
。 - 到达 LAC 后:
数据 -- 私有 IP--PPP 头部 --L2TP 头部 --UDP 头部 -- 公网 IP-- 以太网头部
。 - 到达 LNS 后:
数据 -- 私有 IP-- 以太网头部
。
5. 安全策略配置思路
- LAC 上:配置从
Local-->Untrust
区域的安全策略,允许 LAC 和 LNS 之间建立 L2TP 隧道,用户业务数据会被封装到 L2TP 报文中传输。 - LNS 上:配置两条安全策略,一条从
untrust-->local
放通 L2TP 相关内容,另一条放通 VT 接口所在区域和内部安全区域的业务。
四、LAC 自动拨号
(一)特点
LAC 完成配置后,会自动向 LNS 发起拨号建立 L2TP 隧道,无需用户拨号触发,且 LNS 只对 LAC 进行认证。
(二)配置
- 基础配置:包括设备基本参数设置等。
- 路由信息:配置相关路由,确保数据传输路径正确。
- L2TP 配置:类似基于 LAC 拨号的 L2TP 虚拟局域网的 L2TP 配置,实现隧道建立。
- NAT 配置:采用 easy-ip 方式,因为 LAC 的 VT 接口 IP 可能变化。LAC 内网报文经 LAC 时,源地址需转换为 LAC VT 接口地址,保证 LNS 返回的响应报文能准确进入 L2TP 隧道返回给 LAC。
(三)安全策略
- 用户访问企业总部业务报文:对应
Trust-->VT 接口所在区域
。 - LAC 发出的 L2TP 报文:对应
Local-->Untrust
区域。
(四)说明
- 用户对 L2TP 信息无感知,封装和解封装由 LAC 和 LNS 完成。
- LAC 的 VT 接口起到转发数据的功能。
五、不同版本对比
项目 | Client 虚拟局域网 | PPPoE 版本 | LAC 自动版本 |
---|---|---|---|
协商方式 | 由 Client 主动发起 L2TP 相关协商 | 用户通过 PPPoE 拨号接入 LAC 后,由 LAC 发起 L2TP 协商 | LAC 自动向 LNS 发起拨号协商建立隧道 |
隧道和会话关系 | 每个 Client 与 LNS 建立单独的隧道和会话 | 一对 LNS 和 LAC 之间只有一个 L2TP 隧道,隧道中可存在多个 L2TP 会话,每一条会话承载一个用户的 PPP 连接和业务流量 | 一对 LNS 和 LAC 之间建立一个隧道,承载 LAC 侧多个用户的业务 |
安全性 | 用户直接与 LNS 认证,安全性较高 | 支持 LNS 二次认证,安全性较好 | LNS 只对 LAC 认证,需保证 LAC 自身安全 |
回程路由 | LNS 为用户分配 IP 后生成去往该 IP 的主机路由 | LNS 为用户分配 IP 后生成对应路由,用户侧配置指向 LNS VT 接口的默认路由 | LAC 拨号成功后,LNS 生成目的地址为 LAC VT 接口地址的路由,下一跳为 LAC VT 接口的 IP 地址 |
分配 IP 方式 | 由 LNS 的地址池分配 | 用户 IP 由总部 LNS 直接分配,LAC 上即使配置地址池,在 L2TP 隧道建立情况下也优先使用 LNS 的地址 | 由 LNS 分配 IP 给 LAC 的 VT 接口等 |