虚拟专用网之L2TP协议介绍

L2TP简介

第二层隧道协议(L2TP)是一种虚拟隧道协议,是为在用户和企业的服务器之间透明传输PPP报文而设置的隧道协议。L2TP协议本身不提供加密与可靠性验证的功能,可以和安全协议搭配使用,从而实现数据的加密传输。

L2TP构建图解

在这里插入图片描述
L2TP隧道建立在LAC和LNS之间,由一条控制连接和至少一个L2TP会话组成。在一对LAC和LNS之间可以建立多条L2TP隧道。
会话连接的建立必须在隧道(控制连接)成功建立之后进行。每个会话连接对应于LAC和LNS之间的一个PPP数据流。与隧道的建立过程不同,会话连接的建立是有方向性的。
LAC请求LNS接受一个对应于“入呼叫”的会话,或者LNS请求LAC接受一个对应于“出呼叫”的请求。
L2TP报文头中包含隧道标识(TunnelID)和会话标识(Session ID)信息,用来标识不同的隧道和会话。隧道标识与会话标识是由对端分配的,只对接收端有意义,对发送端没有意义。

L2TP建立及拆除流程

L2TP的会话建立由PPP触发,隧道建立由会话触发。由于多个会话可以复用在一条隧道上,如果会话建立前隧道已经建立,则隧道不用重新建立。

L2TP隧道的建立

在这里插入图片描述
L2TP隧道的建立是一个三次握手的过程。
SCCRQ(Start-Control-Connection-Request):控制连接发启请求。由LAC或者LNS向对端发送,用来初始化LAC和LNS之间的隧道,开始隧道的建立过程。NGFW(下一代防火墙)的应用场景中,一般都是由LAC向LNS发起请求。
SCCRP(Start-Control-Connection-Reply):表示接受了对端的连接请求,隧道的建立过程可以继续。
SCCCN(Start-Control-Connection-Connected):对SCCRP的回应,完成隧道的建立。

L2TP会话的建立

在这里插入图片描述
会话的建立与隧道类似,也是一个三次握手的过程。
ICRQ(Incoming-Call-Request):当LAC检测到有用户拨入电话的时候,向LNS发送ICRQ,请求在已经建立的隧道中建立会话。
ICRP(Incoming-Call-Reply):用来回应ICRQ,表示ICRQ成功,LNS也会在ICRP中标识L2TP会话必要的参数。
ICCN(Incoming-Call-Connected):用来回应ICRP,L2TP会话建立完成。

L2TP隧道和会话维护和拆除流程

在这里插入图片描述
维护和拆除的过程比较简单,都是一方发出请求,一方确认就好了。
StopCCN(Stop-Control-Connection-Notification):由LAC或者LNS发出,通知对端隧道将要停止,控制连接将要关闭。另外,所有活动的会话都会被清除。
HELLO:隧道保活控制消息。L2TP使用Hello报文来检测隧道的连通性。LAC和LNS定时向对端发送Hello报文,如果在一段时间内未收到Hello报文的应答,隧道将被清除。
CDN(Call-Disconnect-Notify):由LAC或者LNS发出,通知对端会话将要停止。

L2TP协议栈结构及数据包的封装过程

在这里插入图片描述

L2TP隧道和会话的验证过程

在这里插入图片描述
LCP:负责链路的建立,维护以及拆除
CHAP:对客户端进行身份认证
IPCP:负责协商IP地址以及DNS等信息

L2TP和PPTP的区别

PPTP只能在两端间建立单一隧道,L2TP支持在两端点间使用多隧道,这样可以针对不同的用户创建不同的服务质量
L2TP可以提供隧道验证机制,而PPTP不能提供这样的机制,但当L2TP或PPTP与IPSec共同使用时,可以由IPSec提供隧道验证,不需要在第二层协议上提供隧道验证机制
PPTP要求互联网络为IP网络,而L2TP只要求隧道媒介提供面向数据包的点对点连接,L2TP可以在IP(使用UDP),FR,ATM,x.25网络上使用
L2TP可以提供包头压缩。当压缩包头时,系统开销(voerhead)占用4个字节,而PPTP协议下要占用6个字节

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Debian支持L2TP(Layer 2 Tunneling Protocol),这是一种用于建立虚拟专用网络(VPN)连接的协议。要在Debian上设置L2TP连接,你需要进行以下步骤: 1. 确保你的Debian系统上已安装了必要的软件包。你可以通过运行以下命令来安装所需的软件包: ``` sudo apt-get update sudo apt-get install xl2tpd strongswan ``` 2. 配置strongSwan。编辑`/etc/ipsec.conf`文件,并添加以下内容: ``` conn l2tp keyexchange=ikev1 authby=secret auto=add type=transport left=%defaultroute leftprotoport=udp/l2tp right=<服务器IP地址> rightprotoport=udp/l2tp dpddelay=10 dpdtimeout=20 dpdaction=clear ``` 替换`<服务器IP地址>`为你的VPN服务器的IP地址。 3. 配置L2TP。编辑`/etc/xl2tpd/xl2tpd.conf`文件,并添加以下内容: ``` [global] ipsec saref = yes [lns default] ip range = 192.168.1.2-192.168.1.254 local ip = 192.168.1.1 refuse pap = yes require authentication = yes name = LinuxVPNserver ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes ``` 4. 创建L2TP用户。编辑`/etc/ppp/chap-secrets`文件,并添加以下内容: ``` # Secrets for authentication using CHAP # client server secret IP addresses <用户名> LinuxVPNserver <密码> * ``` 替换`<用户名>`和`<密码>`为你想要使用的用户名和密码。 5. 重启服务。执行以下命令以重新启动strongSwan和xl2tpd服务: ``` sudo systemctl restart strongswan sudo systemctl restart xl2tpd ``` 现在你应该已经设置好了L2TP连接。你可以使用你的L2TP客户端连接到你的VPN服务器。请确保你的Debian系统可以访问VPN服务器,并且你已正确配置了防火墙规则和路由表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值