第十三章,L2TP VPN
概述
早期:
个人用户和企业用户使用电话线上网的年代。企业分支机构、出差用户--->PSTN(
公共交换电话网
)/
综合业务数据网
接入企业总部。
VPN被命名为
VPDN---
虚拟专用拨号网

发展:
个人用户和企业用户可以直接通过以太网接入Internet。
- PPP协议屈尊于以太网
- 用户可以安装PPPoE Client,直接实现在以太网上的拨号行为。
- L2TP延伸到PC
- PC可以通过系统自带的L2TP Client来直接与LNS建立L2TP VPN隧道。
基于LAC拨号的L2TP VPN场景
PPPoc
PPP over Ethernet--->以太网承载
PPP
协议。
把
PPP
协议的数据帧封装在以太网的数据链路层中
。
一般在需要服务器为客户端提供认证、授权、控制、计费等场景中使用。
- 发现阶段 --- 进行PPPoE协商。建立PPPoE虚拟链路。
-
会话阶段 --- 进行 PPP 协商, LCP 、 PAP/CHAP 认证、 NCP 协商阶段。
-
终结阶段 --- 用户下线,断开连接
配置
第一步:建立PPPoE连接,设定拨号接口VT接口
PPPoE发明了两个虚拟接口,
Dialer
接口
(
客户端
)
,
VT
接口
(
服务端
)
。
Client
1 、创建拨号接口[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 --- 设定 IP 地址获取方式为 PPP 邻居分配,PPP 邻居通过 IPCP 协议进行分配,即 PPP 的 NCP 协商过程所用协议[PPPoE Client-Dialer1]ppp chap user user1[PPPoE Client-Dialer1]ppp chap password cipher Password123[PPPoE Client]dialer-rule 1 ip permit --- 配置拨号访问控制列表,允许所有 IPv4 报文通过拨号口,数字 1 必须与拨号组编号相同。[PPPoE Client]int g 1/0/0[PPPoE Client-GigabitEthernet1/0/0]pppoe-client dial-bundle-number 1 --- 在物理接口上启动 PPPoE Client 程序,绑定拨号程序包,编号为 1
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
说明:1.
该
VT
接口的
IP
地址不参与报文封装,只需要指定一个合法的
IP
地址即可,但需要注意跟其
他接口
IP
地址区分;
2.
该
VT
接口需要加入到任意安全区域,否则
VT
接口不能正常运行,但是安全区域可
以随意选择,因为该接口不参与数据转发,即不受到安全策略控制
。
[NAS-GigabitEthernet1/0/0]pppoe-server bind virtual-template 1 --- 将 VT 接口绑定在物理接口[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
用户的IP
地址,都是由总部
LNS
进行统一分配的,所以在
LAC
上不需要配置地址池信息
。即使你配
置了地址池,在
L2TP
隧道建立的情况下,也会优先使用总部的地址进行分配。而如果是普通的
PPPoE
配
置,则必须配置地址池
。
第二步:建立L2TP隧道
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 --- 设定 LAC 模式,以及 LNS 地址,以及认证用户名的方式为 “ 完全用户认证 ” ,并指定用户名

LNS配置
L2TP VPN协议中,
LNS
进行分配
IP
,认证通过
。
在默认情况下,LAC
的作用,是完成用户的认证,然后将用户的认证成功信息反馈给
LNS
设备,然后LNS设备进行地址分配。
- LAC代理认证模式 ---- 默认情况
- 强制CHAP认证
- 不相信LAC设备,要求重新对用户进行审查。
- LCP重协商
- 不仅不相信LAC设备,还对前面LAC和客户端签订的服务不满意,要求与客户端重新洽谈业务。
- 重新发起LCP协商
强制CHAP
认证,以及
LCP
重协商,都属于
LNS
二次认证
。选配。特点:
LNS
都绕过了
LAC
,直接验证Client
,可以提高更高的安全保障。但是
--->
如果
PPPoE Server
,即
LAC
不支持二次认证,那么
L2TP VPN无法建立。
[LNS]l2tp-group 1 --- 只能在命令行配置[LNS-l2tp-1]mandatory-chap[LNS-l2tp-1]mandatory-lcp

当一个用户触发拨号行为时,才会触发建立LAC
和
LNS
之间的
L2TP
隧道。只要该用户未下线,则其
余用户拨号时,会在已建立的
L2TP
隧道的基础上,直接建立
L2TP
会话,然后协商
PPP
会话。如果没有任
何用户,则隧道超过一定时间后会被拆除
。
安全策略配置思路
LAC
LAC上只存在一条会话信息,并且该会话属于
L2TP
协议,并没有
ICMP
会话,所以
LAC
上配置安全策略时,只需要配置一条从
Local
区域
--->Untrust
区域的安全策略,允许
LAC
和
LNS
建立
L2TP
隧道
。


基于Client的L2TP VPN拨号场景
VPN客户端的作用:帮助用户在
PC
或手机上触发建立一条直通公司总部网络的隧道,实现用户自由访问公司总部的资源。
用户可以轻松进入隧道,并自由离开隧道。
用户需要借助L2TP
客户端,来进入隧道,从而进入到公司网络。
--->
LNS
,公司总部守门员,需要
对请求建立隧道的数据,进行身份验证
。如果身份验证通过,
那么
LNS
会为用户发放通行证
(
公司内网
IP
地址
)
。

案例以及配置思路
服务器地址 --- >就是LNS上的VT接口配置。虚拟模板接口,可以理解防火墙上的环回接口。
目的:允许总部设备对客户的请求进行回复,而回复的报文会被送到VT
接口进行
VPN
封装,所以目的IP
为客户端的
IP
,即地址池地址。目的区域为
VT
接口所在区域。
目的:允许客户端发送的L2TP隧道建立报文可以被防火墙进行处理,此时客户端
IP
不固定,所以为any,而目的则为防火墙对外的公网
IP
地址,即
192.168.0.0/24
网段。
当该报文被防火墙接收,并且防火墙认证通过后,会建立L2TP VPN
隧道,之后基于隧道,为客户端分配地址池中的IP
地址,即
172.16.1.0/24
网段地址信息。
此时,客户端具备与内网设备通信的能力,源IP
为
172.16.1.0/24
网段,目的为内网设备
IP
。
移动办公用户与LNS建立L2TP VPN隧道
第一步,由Client
发送,名称为
SCCRQ
,告知
LNS
使用
158
作为
Tunnel ID
进行通信。此时
Client
本地的Tunnel ID
为
0
。
LNS设备,
Tunnel ID
就是用来区分不同用户申请并建立的隧道。
L2TP报文,使用
UDP
发送,初始化时,源端口随机数,而
目的端口为
1701
端口
。
如果
LNS
收到报文并回复后,则双方的端口选定了
。
第二步,LNS
返回
SCCRP
报文,告知
Client
使用
1
作为
Tunnel ID
进行通信。
第三步,Client
发送
SCCCN
报文,进行确认回复。此时
L2TP VPN
隧道建立完毕。
仅仅交互三个报文,用来协商参数 ---> 隧道 ID , UDP 端口、主机名称、 L2TP 版本 ....
移动办公用户与LNS建立L2TP会话
用户与LNS
之间建立
PPP
连接,
L2TP
会话用来记录和管理它们之间的
PPP
连接。
L2TP
会话的功能
--->为后续建立PPP
连接来进行参数协商。
移动办公用户与LNS建立PPP连接
前两步,完成了隧道ID
和会话
ID
的协商,
Client
终于可以和
LNS
进行对话了。
该步,才是真正L2TP
的工作过程:认证和地址分配
。
PPP 协议1 、 LCP 协商 --- 双向认证1.MRU2.是否认证,以及认证方式, PAP( 明文 )/CHAP( 挑战握手协议,通过对比摘要值来认证 )3.魔术字2 、认证 --- 可选3 、 NCP 协商 --- 网络层协议协商阶段 --- 双向协商1.IP地址是否可用,合法2.网络层压缩方式--- 目的:建立起 PPP 会话连接,存在该连接后,双方才可以正常发送数据报文
选择PPP
协议的原因,就是因为
PPP
协议本身具备认证和地址分配机制。只不过这个
IP
地址是由
L2TP协议选择出来的。
VT接口:
VT
接口是一个虚拟接口,这个接口用途与企业内部网络的终端设备进行通信
。
VT
用来对
L2TP
和
PPP
协议内容进行封装和解封装
。
VT
接口
IP--->1.
地址池中的
IP
需要与
VT
接口
IP
处于相同网段,
但是地址池中不能包含
VT
接口
IP
地址;
2.VT
接口
IP
地址,不能使用内网真实用到的网段
。
1.
移动用户向总部发送数据时,
- 应用层数据+私有IP封装
- 会被L2TP VPN进行封装--->
- 使用PPP头部进行第一次封装
- 使用L2TP头部进行第二次封装
- 使用UDP头部进行封装
- 使用公网IP,即用户的网卡信息和LNS的公网地址信息---VPN隧道两端的地址信息
2. LNS
收到报文后,先通过安全策略检查,
U--->L
- 使用VT接口进行解封装,接触公网IP头部、UDP头部、L2TP头部、PPP头部
- 查找路由表确定转发接口
- 根据安全策略进行检查,是否允许从VT接口发往内部Trust网络。
3.
内网回复报文
总结:GRE
协议是一个没有状态的协议,也就无法查看隧道的状态。但是
L2TP VPN
是存在控制连接
的隧道,可以查看隧道和会话信息。
---
客户端直接访问
LNS
建立隧道,该隧道只有一条
L2TP
会话,而
PPP
连接是承载在这条
L2TP
会话之上的
。

安全策略总结:
- 用户与LNS之间的L2TP报文
- U--->L
- 用户访问企业资源的报文
- VT接口将报文解封装后发送给内网:VT接口区域--->T
- 内网回复报文给VT接口:T--->VT接口区域

在LNS
上,没下放一个
IP
地址给用户,
本地都会产生一条到达用户
IP
的主机路由
,出接口为
VT
接
口,代表该流量会被引导到
L2TP VPN
隧道中
。
命令行配置
1 、配置 IP 地址池[FW]ip pool l2tp[FW-ip-pool-l2tp]section 0 172.16.1.2 172.16.1.10 --- 设定地址池范围2 、业务方案及用户信息[FW]aaa[FW-aaa]service-scheme l2tp -- 服务方案[FW-aaa-service-l2tp]ip-pool l2tp --- 服务任务为分配 IP 地址信息[FW-aaa]domain default --- 进入默认认证域[FW-aaa-domain-default]service-type l2tp[FW]user-manage user user0001 --- 创建用户名[FW-localuser-user0001]parent-group /default[FW-localuser-user0001]password Password1233 、设定 VT 接口[FW]interface Virtual-Template 1[FW-Virtual-Template1]ip address 172.16.1.1 24 --- 该地址必须与地址池处于相同网段,但是在地址池中不能包含该 IP 地址[FW-Virtual-Template1]ppp authentication-mode chap[FW-Virtual-Template1]remote service-scheme l2tp ---- 绑定服务方案[FW]firewall zone dmz[FW-zone-dmz]add int Virtual-Template 14、配置L2TP[FW]l2tp enable[FW]l2tp-group aa --- 创建 L2TP 组[FW-l2tp-aa]allow l2tp virtual-template 1 remote client domain default[FW-l2tp-aa]tunnel authentication --- 开启隧道认证[FW-l2tp-aa]tunnel password cipher Hello1235 、安全策略
LAC-Auto-Initiated VPN
LAC自动拨号到LNS的场景--->省略了员工拨号的行为
LNS只能对
LAC
进行认证。不能对分支员工进行认证
。
认证通过后,LNS
只会给
LAC
分配
IP
地址
。




隧道路由---
指的是需要通过隧道才能到达的目的地,即总部网段
。
在LAC
上必须增加一条
出接口方式的源
NAT
策略
;目的是为了让
LNS
的回程报文可以顺利发送回
LAC
上
。
使用出接口方式的原因,是因为LNS
一旦进行地址分配后,会在本地路由表中添加一条主机路由。
而下一跳就是
LAC
设备的
VT
接口的
IP
地址。
--->
即从分支发送的报文,经过
LAC
时,被
LAC
将源
IP
转换为
VT
接口
IP
地址
。
