「L2TP」- 报文交换过程

概述工作过程

L2TP 能够传输数据,工作过程基本需要 3 个主要节点:

建立 L2TP 隧道(6)

LAC 收到远程用户的 PPP 协商请求时,LAC 向 LNS 发起 L2TP 隧道请求。LAC 和 LNS 之间通过 L2TP 的控制消息,协商隧道 ID、隧道认证等内容,协商成功后则建立起一条 L2TP 隧道,由隧道 ID 进行标识;

建立 L2TP 会话(7)

如果 L2TP 隧道已存在,则在 LAC 和 LNS 之间通过 L2TP 的控制消息,协商会话 ID 等内容,否则先建立 L2TP 隧道连接。会话中携带了 LAC 的 LCP 协商信息和用户认证信息,LNS 对收到的信息认证通过后,则通知 LAC 会话建立成功。L2TP 会话连接由会话 ID 进行标识;

传输 PPP 报文(8)

L2TP 会话建立成功后,PPP 终端将数据报文发送至 LAC,LAC 根据 L2TP 隧道和会话 ID 等信息,进行 L2TP 报文封装,并发送到 LNS,LNS 进行 L2TP 解封装处理,根据路由转发表发送至目的主机,完成报文的传输;

数据报文交换

在建立 L2TP 连接时,在「服务器」和「客户端」间交换许多「控制包」,以为每个方向建立「隧道」和「会话」。「一个对等体」请求「另一个对等体」通过这些「控制包」分配特定的「隧道」和「会话 ID」,然后使用此「隧道」和「会话 ID」,「数据包」同「压缩的 PPP 帧」作为有效负载进行交换;

「LAC」和「LNS」间交换的 L2TP「控制包」列表,用于握手(在「自愿隧道」方法中建立「隧道」和「会话」之前):

Start-Control-Connection-Request (SCCRQ)

通过 Wireshark 进行抓包,其交互过程如下:

708	38.269742497	172.31.252.20	1701	60.176.11.162	1701	L2TP	156	Control Message - SCCRQ (tunnel id=0, session id=0)
709	38.271743904	60.176.11.162	1701	172.31.252.20	1701	L2TP	119	Control Message - SCCRP (tunnel id=57980, session id=0)
710	38.271820108	172.31.252.20	1701	60.176.11.162	1701	L2TP	62	Control Message - SCCCN (tunnel id=2, session id=0)
711	38.272129481	172.31.252.20	1701	60.176.11.162	1701	L2TP	90	Control Message - ICRQ (tunnel id=2, session id=0)
712	38.283319940	60.176.11.162	1701	172.31.252.20	1701	L2TP	70	Control Message - ICRP (tunnel id=57980, session id=24096)
713	38.283450563	172.31.252.20	1701	60.176.11.162	1701	L2TP	92	Control Message - ICCN (tunnel id=2, session id=2)
714	38.298413061	172.31.252.20	1701	60.176.11.162	1701	PPP LCP	72	Configuration Request
715	38.345307252	60.176.11.162	1701	172.31.252.20	1701	L2TP	60	Control Message - ZLB      (tunnel id=57980, session id=0)
772	41.301906122	172.31.252.20	1701	60.176.11.162	1701	PPP LCP	72	Configuration Request
773	41.311269282	60.176.11.162	1701	172.31.252.20	1701	PPP LCP	77	Configuration Request
774	41.311339667	172.31.252.20	1701	60.176.11.162	1701	PPP LCP	77	Configuration Ack
775	41.312169430	60.176.11.162	1701	172.31.252.20	1701	PPP LCP	72	Configuration Ack
...

应用场景

L2TP 主要可分为以下三种工作场景,其工作过程并不相同:
1)CLI-Initiated:移动办公用户访问企业内网,主要应用于出差用户的远程接入;
2)LAC-Initiated:通过 LAC 自主拨号实现企业内网互连;内网无需 PPP 拨号,而是由 LAC 主动拨号,形成一条隧道;
3)NAS-Initiated:拨号用户通过 NAS 访问企业内网;