拨号虚拟专网(VPDN)的协议参照IETF的L2TP草案。
L2TP由消息通道和控制通道组成。控制通道用于建立、维护和释放隧道和会话;消息通道用于传送数据,即上层载荷。L2TP有16种控制消息,用于建立、维护和释放隧道和会话。具体内容如表4所示。
表4 L2TP的控制消息
-------------------------------------
| 控制连接管理 |
|-----------------------------------|
| 0 |(保留) |
|-----|-----------------------------|
| 1 |(SCCRQ) Start-Control-Connection-Request |
|-----|-----------------------------|
| 2 |(SCCRP) Start-Control-Connection-Reply |
|-----|-----------------------------|
| 3 |(SCCCN) Start-Control-Connection-Notification |
|-----|-----------------------------|
| 4 |(StopCCN) Stop-Control-Connection-Notification |
|-----|-----------------------------|
| 5 |(保留) |
|-----|-----------------------------|
| 6 |(HELLO) Hello |
|-----------------------------------|
| 呼叫管理 |
|-----------------------------------|
| 7 |(OCRQ) Outgoing-Call-Request |
|-----|-----------------------------|
| 8 |(OCRP) Outgoing-Call-Reply |
|-----|-----------------------------|
| 9 |(OCCN) Outgoing-Call-Connected |
|-----|-----------------------------|
| 10 |(ICRQ) Incoming-Call-Request |
|-----|-----------------------------|
| 11 |(ICRP) Incoming-Call-Reply |
|-----|-----------------------------|
| 12 |(ICCN) Incoming-Call-Connected |
|-----|-----------------------------|
| 13 |(保留) |
|-----|-----------------------------|
| 14 |(CDN) Call-Disconnect-Notify |
|-----------------------------------|
| 错误报告 |
|-----------------------------------|
| 15 |(WEN) |WAN-Error-Notify |
|-----------------------------------|
| PPP会话控制 |
|-----------------------------------|
| 16 |(SLI) |Set-Link-Info |
-------------------------------------
L2TP的通信流程见图17。
一个远程用户、LAC(L2TP接入集中器)和LNS(L2TP网络服务器)的VPDN连接需要经过以下步骤:
(1)远程用户通过模拟电话线或ISDN向LAC请求建立PPP连接。LAC接受远程用户的PPP连接。
图17 L2TP通信流程(略)
(2)LAC认证远程用户是否VPDN用户。如果远程用户不是VPDN客户,则以普通用户方式接入Internet;如果远程用户是VPDN客户,就连接某一指定的LNS。
(3)建立控制连接(Control Connection),创建L2TP隧道控制连接是LAC和LNS之间的初始连接,在控制连接建立后,LAC和LNS才可以建立会话连接。见图18控制连接主要用于双方的安全认证和L2TP版本、数据格式、载体性能的协商。建立控制连接需要进行3种信息交换:
LAC/LNS LNS/LAC
| SCCPQ |
|-----------→|
| SCCRP |
|←-----------|
| SCCCN |
|-----------→|
| ZLB ACK |
|←-----------|
| |
图18 创建L2TP隧道通信流程
·SCCRQ(Start-Control-Connection-Request):LAC或LNS向对端发出开始控制连接请求,等待对方回应。组成SCCRQ控制消息的AVP应包括:消息类型、协议版本、主机名、Tunnel ID、数据包属性等。
·SCCRP(Start-Control-Connection-Reply):对端回送响应。组成SCCRP的AVP应包括:消息类型、协议版本、主机名、Tunnel ID、数据包属性等。
·SCCCN(Start-Control-Connection-Connected):发起端向对端发送控制连接已经建立的消息。
·ZLB ACK:对端回送响应。
(4)建立L2TP会话(Session)
会话在控制连接建立后建立,每一个会话对应于一个LAC和LNS之间的PPP流。会话连接的建立与控制连接建立不同,对于呼入和呼出,会话连接的建立有不同的流程。
a)呼入连接的建立
LAC LNS
| ICRQ |
|-----------→|
| ICRP |
|←-----------|
| ICCN |
|-----------→|
| ZLB ACK |
|←-----------|
| |
图19 建立L2TP会话通信流程(呼入连接的建立)
·ICRQ(Incoming-Call-Requeat):LAC向LNS发出Incoming Call请求。组成I-CRQ的AVP应包括:消息类型、Session ID、呼叫序列号等。