• 1. Presented By 3Com CSO Paul XieL2TP 培训李丹/02246
  • 2. 培训提纲L2TP协议简介 L2TP协议组件 L2TP隧道发起方式 由LAC发起 由客户端直接发起 L2TP报文格式 L2TP实现细节 L2TP配置实例
  • 3. L2TP协议简介L2TP-Layer Two Tunneling Protocol,二层隧道协议。 RFC2661。 保护PPP报文。 数据没有加密机制,可通过IPSEC保证数据安全。 主要用途:企业驻外机构和出差人员可从远程经由公共网络,通过虚拟隧道实现和企业总部之间的网络连接。
  • 4. L2TP协议简介L2TP报文封装层次结构此报文格式是LAC与LNS之间的数据报文。 L2TP报文头是VPN协议报文头,其内封装的是PPP报文,因此L2TP是二层VPN协议。IP报文头 (公网地址)UDP 报文头L2TP 报文头PPP 报文头IP报文头 (私网地址)Data
  • 5. 培训提纲L2TP协议简介 L2TP协议组件 L2TP隧道发起方式 由LAC发起 由客户端直接发起 L2TP报文格式 L2TP实现细节 L2TP配置实例
  • 6. L2TP协议组件VPN用户:指通过L2TP协议连入VPN的用户,通常是外地出差员工或办事机构。 L2TP访问集中器(LAC,L2TP Access Concentrator):VPN用户和LNS之间传递数据的设备,通常是当地ISP的接入设备,具有PPP端系统和L2TP协议处理能力。LAC把从VPN用户处收到的信息包按照L2TP协议进行封装并送往LNS,将从LNS收到的信息包进行解封装并送往远端系统。 L2TP网络服务器(LNS,L2TP Network Server):L2TP协议的服务器端部分,通常是企业内部网的边缘设备。LNS作为L2TP隧道的另一侧端点,是LAC的对端设备,是被LAC进行隧道传输的PPP会话的逻辑终止端点。
  • 7. 培训提纲L2TP协议简介 L2TP协议组件 L2TP隧道发起方式 由LAC发起 由客户端直接发起 L2TP报文格式 L2TP实现细节
  • 8. LAC发起连接(LAC-initialized) 用户通过PSTN/ISDN接入NAS(LAC),NAS判断如果是VPN用户,就向指定的LNS发起L2TP连接 用户发起连接(Client-initialized) 用户通过PSTN/ISDN接入NAS,获得访问Internet权限然后直接向远端LNS服务器发起L2TP连接L2TP隧道发起方式
  • 9. L2TP隧道发起方式LAC发起VPN用户:向LAC设备发起PPP连接。 LAC:判断用户是否是L2TP用户,如果是,判断用户向哪个LNS发起隧道请求。 LNS:为用户分配私网地址,准许用户接入内部网络。
  • 10. L2TP隧道发起方式客户端直接发起VPN用户:首先获得公网地址,与LNS之间保持连通,向LNS发起建立隧道请求。 LNS:为用户分配私网地址,准许用户接入内部网络。
  • 11. 培训提纲L2TP协议简介 L2TP协议组件 L2TP隧道发起方式 由LAC发起 由客户端直接发起 L2TP报文格式 L2TP实现细节 L2TP配置实例
  • 12. L2TP报文格式L2TP报文头格式T:消息类型标志位,0为数据报文,1为控制报文。
  • 13. x:保留位。 S:Ns和Nr标志位,控制报文中此位必须是1。 O:Offset标志位,为1说明Offset有效,控制报文此位必须为0。 P:优先级标志位,数据报文此位为1,表示优先处理;控制报文此位为0。 Ver:必须为2。 Length:消息总长度,单位为字节。 Tunnel ID:控制连接标志符,本端有效。 Session ID:控制连接内的会话标志符,本端有效。 Ns:本消息的序列号。 Nr:在控制消息中,表示预期收到的下一个控制消息的序号;数据消息中无效。 Offset:偏移,如果有效,则数据从偏移后的字节开始。L2TP报文格式L2TP报文头字段说明:
  • 14. IP报文头 (公网地址)UDP 报文头L2TP 报文头PPP 报文头IP报文头 (私网地址)DataL2TP数据报文L2TP报文格式
  • 15. IP报文头 (公网地址)UDP 报文头L2TP 报文头AVP1AVP……L2TP控制报文L2TP报文格式
  • 16. 一种对属性类型和属性值统一编码的方法 L2TP控制消息通过AVP携带各种参数 首先说明属性类型,然后说明属性值L2TP报文格式AVP简介
  • 17. L2TP报文格式AVP举例
  • 18. L2TP报文格式AVP结构M:强制位,该位置1时,不识别的AVP将导致相应的session或tunnel终止。 H:隐藏标志位,该位置1,表示AVP值被隐藏显示。 rsvd:保留位。 Length:AVP报文长度。 Attribute Type:属性类型定义。 Attribute Value:属性值。
  • 19. 培训提纲L2TP协议简介 L2TP协议组件 L2TP隧道发起方式 由LAC发起 由客户端直接发起 L2TP报文格式 L2TP实现细节 L2TP配置实例
  • 20. L2TP实现细节用户向LAC设备发起PPPOE连接请求 LAC设备根据本身的设置判断此用户是否L2TP用户,是L2TP用户,向LNS发起建立隧道请求,隧道又称控制连接 建立隧道的请求报文称为SCCRQ:Start-Control-Connection-Request SCCRQ携带的AVP信息如下:Message Type AVP,Protocol Version,Host Name,Framing Capabilities,Assigned Tunnel ID 由于此时Tunnel ID和session ID协商尚未完成,因此此消息的Tunnel ID和session ID都填0 以LAC发起连接为例
  • 21. L2TP实现细节LNS收到一个SCCRQ后,判断是否符合本端配置,合法则应答SCCRP:Start-Control-Connection-Reply;如果不合法,则应答StopCCN,停止隧道建立过程 LAC设备根据本身的设置判断此用户是否L2TP用户,是L2TP用户,向LNS发起建立隧道请求,隧道又称控制连接 建立隧道的请求报文称为SCCRQ:Start-Control-Connection-Request SCCRP携带的AVP信息如下:Message Type,Protocol Version,Framing Capabilities,Host Name,Assigned Tunnel ID 此时Tunnel ID使用对端已指定的Tunnel ID,session ID填0 LNS应答LAC的控制连接建立请求
  • 22. L2TP实现细节LAC收到SCCRP后,发送SCCCN:Start-Control-Connection-Connected,完成隧道建立过程LAC确认连接建立
  • 23. L2TP实现细节在本例中,控制连接建立是由LAC发起的,事实上由LNS发起也是合法的 在本例的消息介绍中未介绍可选的AVP信息,事实上这些可选的AVP也携带了很重要的信息,如控制连接的认证信息 控制连接的认证是可选的 关于控制连接建立的几点说明:
  • 24. L2TP实现细节Session建立的原理与Tunnel建立的原理相似,就不针对每个消息详细介绍AVP的情况了 首先,LAC向LNS发送ICRQ:Incoming-Call-Request LNS收到ICRQ后,如同意建立连接,发送ICRP:Incoming-Call-Reply LAC收到ICRQ后,发送ICCN:Incoming-Call-Connected 至此,会话建立完成 Session建立过程
  • 25. L2TP实现细节session建立过程
  • 26. L2TP实现细节在本例中,session是由LAC发起的,事实上由LNS发起也是合法的,但消息类型有所不同,分别是:关于Session建立的几点说明:
  • 27. L2TP实现细节Tunnel与Session的关系
  • 28. L2TP实现细节在一对LAC和LNS中可以存在多条隧道,每条隧道可以包含多个Session,但只有一个控制连接 Session建立前,必须首先保证控制连接存在,如没有,首先建立控制连接,然后再建立session;如已存在控制连接,直接建立session 在拆除Session时,如果还有其他Session存在,则控制连接不拆除;如果没有其他Session存在,控制连接随之拆除Tunnel与Session的关系
  • 29. L2TP实现细节如上典型组网图中,Dialer为VPN用户,VPN用户发往LNS的数据,首先发给LAC,格式如下图,可以看出此段的数据是未经L2TP保护的数据封装与转发过程:1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer以太网报文头PPPOE 报文头PPP 报文头IP报文头 (私网地址) Data
  • 30. L2TP实现细节LAC收到报文后,发现是去往LNS的,加上L2TP封装后,转发给LNS数据封装与转发过程:1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer以太网 报文头IP报文头 (公网地址)UDP 报文头L2TP 报文头PPP 报文头IP报文头 (私网地址) DataLNS收到报文后解封装时发现是L2TP报文,根据L2TP报文头中的Tunnel ID和Session ID将其交给相应的进程处理
  • 31. L2TP实现细节同样,LNS发给VPN用户的报文由LNS封装好后交给LAC,LAC收到报文后,发现是L2TP报文,根据本地保存的L2TP连接等关系,将其解除L2TP封装后,重新封装成PPPOE报文发给Dialer主机数据封装与转发过程:1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer
  • 32. L2TP实现细节拆除会话的发起端发送一个CDN(Call-Disconnect-Notify)消息,指明要拆除的Session ID,对端收到后发送一个空消息(ZLB ACK)应答,指定的Session既被拆除拆除Session
  • 33. L2TP实现细节拆除Tunnel的发起端发送一个StopCCN(Stop-Control-Connection-Notification)消息,指明要拆除的Tunnel ID,对端收到后发送一个空消息(ZLB ACK)应答,指定的Tunnel既被拆除拆除控制连接
  • 34. L2TP实现细节一般为在客户机上安装L2TP客户端产品 这种L2TP客户端产品一般集成了VPN用户和LAC的功能,在LNS上看来其相当于一个LAC由客户端直接发起的L2TP隧道
  • 35. 培训提纲L2TP协议简介 L2TP协议组件 L2TP隧道发起方式 由LAC发起 由客户端直接发起 L2TP报文格式 L2TP实现细节 L2TP配置实例
  • 36. L2TP配置实例Dialer设备的配置:如果这个位置是一台PC,需要创建一个PPPOE连接;如果是一台设备,应如下配置: interface Dialer0 link-protocol ppp ppp pap local-user 111 password simple 111 mtu 1480 ip address ppp-negotiate dialer user 111 dialer bundle 1 interface Ethernet1/0 pppoe-client dial-bundle-number 1 Dialer设备配置:1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer
  • 37. L2TP配置实例LAC设备配置: #启动L2TP l2tp enable #创建用户,并指定服务为PPP local-user 111 password simple 111 service-type ppp #创建虚模板接口,并指定认证方式 interface Virtual-Template0 ppp authentication-mode pap LAC配置:1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer
  • 38. L2TP配置实例LAC设备配置: #创建L2TP组 l2tp-group 1 tunnel password simple 222 tunnel name LAC start l2tp ip 1.1.1.1 fullusername 111 #在与Dialer设备相连的接口上启动pppoe-server interface Ethernet1/0 pppoe-server bind Virtual-Template 0 LAC配置(续):1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer
  • 39. L2TP配置实例LNS设备配置: #启动L2TP l2tp enable #创建用户,并指定服务为PPP local-user 111 password simple 111 service-type ppp LNS配置:1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer
  • 40. L2TP配置实例LNS设备配置: #创建虚模板接口 interface Virtual-Template1 ppp authentication-mode pap ip address 10.2.2.1 255.255.255.0 remote address 10.2.2.2 #创建L2TP组 l2tp-group 2 allow l2tp virtual-template 1 remote LAC tunnel password simple 222 tunnel name LNS LNS配置(续):1.1.1.2/24LACLNS1.1.1.1/2410.2.2.1/2410.2.2.2/24Dialer
  • 41. 谢 谢!