05-L2TP配置
本章节下载: 05-L2TP配置 (513.76 KB)
目 录
1.8.1 NAS-Initiated模式L2TP隧道配置举例
1.8.2 Client-Initiated模式L2TP隧道配置举例
· 仅CSPEX-1204单板支持配置本功能。
· 当设备上需要配置L2TP功能时,请确保接口报文统计信息的时间间隔为300秒。关于报文统计信息时间间隔的介绍,请参见“接口管理”中的“以太网接口”。
L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是目前使用最为广泛的VPDN(Virtual Private Dial-up Network,虚拟专用拨号网络)隧道协议。L2TP通过在公共网络(如Internet)上建立点到点的L2TP隧道,将PPP(Point-to-Point Protocol,点对点协议)数据帧封装后通过L2TP隧道传输,使得远端用户(如企业驻外机构和出差人员)利用PPP接入公共网络后,能够通过L2TP隧道与企业内部网络通信,访问企业内部网络资源。
L2TP是一种二层VPN(Virtual Private Network,虚拟专用网络)技术,为远端用户接入私有的企业网络提供了一种安全、经济且有效的方式。
图1-1 L2TP典型组网
远端系统是要接入企业内部网络的远端用户和远端分支机构,通常是一个拨号用户的主机或私有网络中的一台设备。
· LAC(L2TP Access Concentrator,L2TP访问集中器)
LAC是具有PPP和L2TP协议处理能力的设备,通常是一个当地ISP的NAS(Network Access Server,网络接入服务器),主要用于为PPP类型的用户提供接入服务。
LAC作为L2TP隧道的端点,位于LNS和远端系统之间,用于在LNS和远端系统之间传递报文。它把从远端系统收到的报文按照L2TP协议进行封装并送往LNS,同时也将从LNS收到的报文进行解封装并送往远端系统。
· LNS(L2TP Network Server,L2TP网络服务器)
LNS是具有PPP和L2TP协议处理能力的设备,通常位于企业内部网络的边缘。
LNS作为L2TP隧道的另一侧端点,是LAC通过隧道传输的PPP会话的逻辑终点。L2TP通过在公共网络中建立L2TP隧道,将远端系统的PPP连接由原来的NAS延伸到了企业内部网络的LNS设备。
L2TP协议定义了两种消息:
· 控制消息:用于L2TP隧道和L2TP会话的建立、维护和拆除。控制消息的传输是可靠的,并且支持流量控制和拥塞控制。
· 数据消息:用于封装PPP帧,其格式如图1-2所示。数据消息的传输是不可靠的,若数据消息丢失,不予重传。数据消息支持流量控制,即支持对乱序的数据消息进行排序。
图1-2 L2TP数据消息格式
如图1-3所示,L2TP控制消息和L2TP数据消息均封装在UDP报文中。
图1-3 L2TP消息封装结构图
L2TP隧道是LAC和LNS之间的一条虚拟点到点连接。控制消息和数据消息都在L2TP隧道上传输。在同一对LAC和LNS之间可以建立多条L2TP隧道。每条隧道可以承载一个或多个L2TP会话。
L2TP会话复用在L2TP隧道之上,每个L2TP会话对应于一个PPP会话。当远端系统和LNS之间建立PPP会话时,LAC和LNS之间将建立与其对应的L2TP会话。属于该PPP会话的数据帧通过该L2TP会话所在的L2TP隧道传输。
L2TP隧道包括NAS-Initiated、Client-Initiated和LAC-Auto-Initiated三种模式。
如图1-4所示,NAS-Initiated模式L2TP隧道的建立由LAC(即NAS)发起。远端系统的拨号用户通过PPPoE/ISDN拨入LAC后,由LAC向LNS发起建立L2TP隧道的请求。
图1-4 NAS-Initiated模式L2TP隧道示意图
NAS-Initiated模式L2TP隧道具有如下特点:
· 远端系统只需支持PPP协议,不需要支持L2TP。
· 对远端拨号用户的身份认证与计费既可由LAC代理完成,也可由LNS完成。
图1-5 NAS-Initiated模式L2TP隧道的建立流程
如图1-5所示,NAS-Initiated模式L2TP隧道的建立过程为:
(1) 远端系统Host A发起呼叫,请求建立连接。
(2) Host A和LAC(Device A)进行PPP LCP协商。
(3) LAC对Host A提供的PPP用户信息进行PAP、CHAP或MS-CHAP认证。
(4) LAC将认证信息(用户名、密码)发送给RADIUS服务器进行认证。
(5) RADIUS服务器认证该用户,并返回认证结果。
(6) 如果认证通过,且根据用户名或用户所属ISP域判断该用户为L2TP用户,则LAC向LNS(Device B)发起L2TP隧道建立请求。
(7) 在需要对隧道进行认证的情况下,LAC和LNS分别发送CHAP challenge信息,以验证对方身份。隧道验证通过后,LAC和LNS之间成功建立了L2TP隧道。
(8) LAC和LNS在L2TP隧道上协商建立L2TP会话。
(9) LAC将PPP用户信息和PPP协商参数等传送给LNS。
(10) LNS将认证信息发送给RADIUS服务器进行认证。
(11) RADIUS服务器认证该用户,并返回认证结果。
(12) 认证通过后,若LNS上配置了强制CHAP验证,则LNS对PPP用户进行认证,发送CHAP challenge,PPP用户回应CHAP response。
(13) LNS再次将认证信息发送给RADIUS服务器。
(14) RADIUS服务器认证该用户,并返回认证结果。
(15) 认证通过后,LNS为Host A分配一个企业网内部的IP地址。
(16) 获得IP地址后,PPP用户可以通过Host A访问企业内部资源。
在步骤(12)、(15)和(16)中,LAC负责在Host A和LNS之间转发报文。Host A和LAC之间交互的是PPP数据帧,LAC和LNS之间交互的是L2TP数据报文。
如图1-6所示,Client-Initiated模式L2TP隧道的建立直接由LAC client(指本地支持L2TP协议的远端系统)发起。LAC client具有公网地址,并能够通过Internet与LNS通信后,如果在LAC client上触发L2TP拨号,则LAC client直接向LNS发起L2TP隧道建立请求,无需经过LAC设备建立隧道。
图1-6 Client-Initiated模式L2TP隧道示意图
Client-Initiated模式L2TP隧道具有如下特点:
· L2TP隧道在远端系统和LNS之间建立,具有较高的安全性。
· Client-Initiated模式L2TP隧道对远端系统要求较高(远端系统必须是支持L2TP协议的LAC client,且能够与LNS通信),因此它的扩展性较差。
如图1-7所示,Client-Initiated模式L2TP隧道的建立过程与NAS-Initiated模式类似,此处不再赘述。
图1-7 Client-Initiated模式L2TP隧道的建立流程
采用NAS-Initiated方式建立L2TP隧道时,要求远端系统必须通过PPPoE/ISDN等拨号方式拨入LAC,且只有远端系统拨入LAC后,才能触发LAC向LNS发起建立隧道的请求。
如图1-8所示,在LAC-Auto-Initiated模式下,不需要远端系统拨号触发,在LAC上通过执行l2tp-auto-client命令即可触发LAC建立L2TP隧道。远端系统访问LNS连接的内部网络时,LAC将通过L2TP隧道转发这些访问数据。
图1-8 LAC-Auto-Initiated模式L2TP隧道示意图
LAC-Auto-Initiated模式L2TP隧道具有如下特点:
· 远端系统和LAC之间可以是任何基于IP的连接,不局限于拨号连接。
· 不需要远端系统上的拨号接入来触发建立L2TP隧道。
· L2TP隧道创建成功后立即建立L2TP会话,然后在LAC和LNS之间进行PPP协商,LAC和LNS分别作为PPP客户端和PPP服务器端。
· 一条L2TP隧道上只承载一个L2TP会话。
· LNS为LAC分配企业网内部的IP地址,而不是为远端系统分配。
如图1-9所示,LAC-Auto-Initiated模式L2TP隧道的建立过程与NAS-Initiated模式类似,此处不再赘述。
图1-9 LAC-Auto-Initiated模式L2TP隧道的建立流程
L2TP协议本身并不提供连接的安全性,但它可依赖于PPP提供的认证(比如CHAP、PAP等),因此具有PPP所具有的所有安全特性。
L2TP传输PPP数据包,在PPP数据包内可以封装多种协议。
LAC和LNS可以将用户名和密码发往RADIUS服务器,由RADIUS服务器对用户身份进行认证。
LNS可以对远端系统的地址进行动态的分配和管理,可支持私有地址应用(RFC 1918)。为远端系统分配企业内部的私有地址,可以方便地址的管理并增加安全性。
可在LAC和LNS两处同时计费,即ISP处(用于产生帐单)及企业网关(用于付费及审计)。L2TP能够提供数据传输的出/入包数、字节数以及连接的起始、结束时间等计费数据,AAA服务器可根据这些数据方便地进行网络计费。
L2TP隧道采用NAS-Initiated模式时,LAC上的L2TP隧道属性可以通过RADIUS服务器来下发。此时,在LAC上只需开启L2TP服务,并配置采用AAA远程认证方式对PPP用户进行身份验证,无需进行其他L2TP配置。
当L2TP用户拨入LAC时,LAC作为RADIUS客户端将用户的身份信息发送给RADIUS服务器。RADIUS服务器对L2TP用户的身份进行验证。RADIUS服务器将验证结果返回给LAC,并将该用户对应的L2TP隧道属性下发给LAC。LAC根据下发的隧道属性,创建L2TP隧道和会话。
目前,RADIUS服务器可以为LAC下发的属性如表1-1所示。
表1-1 RADIUS服务器为LAC下发的属性列表
隧道类型,目前只支持L2TP隧道类型 |
||
66 |
Tunnel-Client-Endpoint |
LAC的IP地址 |
LNS的IP地址 |
||
LAC将该值发送给LNS,以便LNS根据该值进行相应的处理 |
||
用来标识会话承载在哪条隧道上,具有相同Tunnel-Assignment-ID、Tunnel-Client-Endpoint、Tunnel-Server_Endpoint和Tunnel-Password的L2TP用户共用同一条L2TP隧道 |
||
目前,仅支持通过RADIUS服务器下发一组L2TP隧道属性,不支持同时下发多组隧道属性。
如果既通过RADIUS服务器为LAC下发了隧道属性,又在LAC上通过命令行手工配置了隧道属性,则以RADIUS服务器下发的属性为准。
如图1-10所示,设备可以同时作为LNS和LAC,终结来自LAC的L2TP报文后,再将其通过L2TP隧道发送给最终的LNS,实现L2TP隧道的交换,即多跳L2TP隧道。同时作为LNS和LAC的设备称为LTS(L2TP Tunnel Switch,L2TP隧道交换)设备。
L2TP隧道交换功能具有如下作用:
· LAC和LNS位于不同的管理域时,可以简化LAC和LNS的配置与部署。所有的LAC都将LTS当作LNS,不需要感知网络中是否存在多个LNS,不需要区分LNS;所有LNS都将LTS当作LAC,不需要感知LAC的新增和删除。
· 不同用户可以共用LAC和LTS之间的L2TP隧道,由LTS将不同用户的数据分发给不同的LNS。
图1-10 L2TP隧道交换组网图
与L2TP相关的协议规范有:
· RFC 1661:The Point-to-Point Protocol (PPP)
· RFC 1918:Address Allocation for Private Internets
· RFC 2661:Layer Two Tunneling Protocol "L2TP"
· RFC 2868:RADIUS Attributes for Tunnel Protocol Support
配置L2TP时,需要执行以下操作:
(1) 根据实际组网环境,判断需要的网络设备。对于NAS-Initiated和LAC-Auto-Initiated模式,需要配置LAC和LNS两台网络设备;对于Client-Initiated模式,只需要配置LNS一台网络设备。
(2) 根据设备在网络中的角色,分别进行LAC或LNS端的相关配置,使设备具有LAC或LNS端功能。
表1-2 LAC端配置任务简介(NAS-Initiated和LAC-Auto-Initiated模式)
配置L2TP基本功能 |
|||
配置向LNS发起隧道建立请求的触发条件 |
对于NAS-Initiated模式,为必选;LAC-Auto-Initiated模式下无需配置 |
||
配置LNS的IP地址 |
|||
配置AVP数据的隐藏传输 |
|||
配置LAC侧的AAA认证 |
对于NAS-Initiated模式,为必选;LAC-Auto-Initiated模式下无需配置 |
||
配置LAC自动建立L2TP隧道 |
对于LAC-Auto-Initiated模式,为必选;NAS-Initiated模式下无需配置 |
||
配置L2TP可选参数 |
|||
配置隧道Hello报文发送时间间隔 |
|||
配置隧道报文的DSCP优先级 |
|||
配置LTS设备的TSA ID |
表1-3 LNS配置任务简介(NAS-Initiated、Client-Initiated和LAC-Auto-Initiated模式)
配置L2TP基本功能 |
|||
配置VA池 |
|||
配置LNS接受L2TP隧道建立请求 |
|||
配置LNS侧的用户验证 |
|||
配置LNS侧的AAA认证 |
|||
配置L2TP可选参数 |
|||
配置隧道Hello报文发送时间间隔 |
|||
配置隧道报文的DSCP优先级 |
|||
配置LTS设备的TSA ID |
L2TP基本功能的配置包括如下内容:
· 启用L2TP功能:只有启用L2TP后,设备上的L2TP功能才能正常发挥作用。
· 创建L2TP组:L2TP组用于配置L2TP的相关参数,它不仅增加了L2TP配置的灵活性,还方便地实现了LAC和LNS之间一对一、一对多的组网应用。L2TP组在LAC和LNS上独立编号,只需要保证LAC和LNS之间关联的L2TP组的相关配置(如隧道对端名称、LNS地址等)保持对应关系即可。
· 配置隧道本端的名称:隧道本端的名称在LAC和LNS进行隧道协商时使用,它用来标识本端隧道,以供对端识别。
表1-4 配置L2TP基本功能
开启L2TP功能 |
缺省情况下,L2TP功能处于关闭状态 |
|
创建L2TP组,指定L2TP组的模式,并进入L2TP组视图 |
在LAC侧需要指定L2TP组的模式为lac;在LNS侧需要指定L2TP组的模式为lns |
|
LAC侧配置的隧道本端名称要与LNS侧配置的允许接受的L2TP隧道请求的隧道对端名称保持一致 |
LAC负责和相应的LNS建立L2TP隧道,并负责在远端系统和LNS之间转发报文。
本配置用来指定LAC向LNS发起隧道建立请求的触发条件。只有PPP用户的信息与指定的触发条件匹配时,LAC才认为该PPP用户为L2TP用户,向LNS发起L2TP隧道建立请求。
· 完整的用户名(fullusername):只有PPP用户的用户名与配置的完整用户名匹配时,才会向LNS发起L2TP隧道建立请求。
· 带特定域名的用户名(domain):PPP用户的ISP域名与配置的域名匹配时,即向LNS发起L2TP隧道建立请求。
表1-5 配置向LNS发起隧道建立请求的触发条件
进入LAC模式的L2TP组视图 |
||
配置向LNS发起隧道建立请求的触发条件 |
缺省情况下,没有指定本端作为LAC端时向LNS发起隧道建立请求的触发条件 |
LAC上最多可以配置五个LNS地址,即允许存在备用LNS。LAC按照LNS配置的先后顺序依次向每个LNS发送建立L2TP隧道的请求。LAC接收到某个LNS的接受应答后,该LNS就作为隧道的对端;否则,LAC向下一个LNS发起隧道建立请求。
表1-6 配置LNS的IP地址
进入LAC模式的L2TP组视图 |
||
配置LNS的IP地址 |
缺省情况下,没有指定LNS的IP地址 |
在LAC上配置了L2TP隧道的源端地址后,LAC会将该地址作为封装后L2TP隧道报文的源IP地址。
一般情况下,建议尽量将L2TP隧道的源端地址配置为设备上某LoopBack接口的IP地址,以减小物理接口故障对L2TP业务造成的影响;但当LAC和LNS之间存在等价路由时,必须将L2TP隧道的源端地址通过source-ip命令配置或通过RADIUS服务器授权为设备上某LoopBack接口的IP地址。
进入LAC模式的L2TP组视图 |
||
配置L2TP隧道的源端地址 |
缺省情况下,L2TP隧道的源端地址为本端隧道出接口的IP地址 |
L2TP协议通过AVP(Attribute Value Pair,属性值对)来传输隧道协商参数、会话协商参数和用户认证信息等。如果用户不希望这些信息(如用户密码)被窃取,则可以使用本配置将AVP数据的传输方式配置成为隐藏传输,即利用隧道验证密钥(通过tunnel password命令配置)对AVP数据进行加密传输。
只有使能了隧道验证功能,本配置才会生效。隧道验证功能的详细配置,请参见“1.6.1 配置隧道验证”。
表1-8 配置AVP数据的隐藏传输
进入LAC模式的L2TP组视图 |
||
本配置用来通过AAA对远端拨入用户的身份信息(用户名、密码)进行认证。用户身份认证通过后,LAC才能发起建立隧道的请求,否则不会为用户建立隧道。
设备支持的AAA认证包括本地和远程两种认证方式:
· 如果选择本地认证方式,则需要在LAC侧配置本地用户名和密码。LAC通过检查拨入用户的用户名/密码是否与本地配置的用户名/密码相符来验证用户身份。
· 如果选择远程认证方式,则需要在RADIUS/HWTACACS服务器上配置用户名和密码。LAC将拨入用户的用户名和密码发往服务器,由服务器对用户身份进行认证。
AAA相关的配置请参见“安全配置指导”中的“AAA”。
配置LAC侧的AAA认证时,接入用户的接口上需要配置PPP用户的验证方式为PAP、CHAP、MS-CHAP和MS-CHAP-V2,配置方法请参见“二层技术-广域网接入配置指导”中的“PPP”。
配置LAC自动建立L2TP隧道,需要进行以下操作:
· 创建虚拟PPP接口,并配置该接口的IP地址。
· 在虚拟PPP接口下,配置PPP验证的被验证方,即通过ppp pap或ppp chap命令指定PPP用户支持的验证方法、PPP用户的用户名和密码,LNS对该PPP用户进行身份验证。详细介绍请参见“二层技术-广域网接入命令参考”中的“PPP”。
· 触发LAC建立L2TP隧道。
表1-9 配置LAC自动建立L2TP隧道
创建虚拟PPP接口,并进入虚拟PPP接口视图 |
||
配置虚拟PPP接口的IP地址 |
||
配置虚拟PPP接口的IP地址可协商属性,使该接口接受PPP协商产生的由对端分配的IP地址 |
||
配置PPP验证的被验证方 |
配置方法请参见“二层技术-广域网接入命令参考”中的“PPP” |
|
触发LAC自动建立L2TP隧道 |
缺省情况下,LAC没有建立L2TP隧道 触发LAC建立L2TP隧道后,该隧道将始终存在,直到通过undo l2tp-auto-client或undo l2tp-group group-number命令拆除该隧道 |
|
缺省情况下,接口的描述信息为“该接口的接口名 Interface”,比如:Virtual-PPP254 Interface |
||
(可选)指定虚拟PPP接口下流量的业务处理板(独立运行模式) |
缺省情况下,没有指定虚拟PPP接口下流量的业务处理板 |
|
(可选)指定虚拟PPP接口下流量的业务处理板(IRF模式) |
缺省情况下,没有指定虚拟PPP接口下流量的业务处理板 |
|
缺省情况下,接口的期望带宽=接口的波特率÷1000(kbit/s) |
||
LNS响应LAC的隧道建立请求,负责对用户进行认证,并为用户分配IP地址。
L2TP会话建立之后,LNS需要创建一个VA(Virtual Access,虚拟访问)接口用于和LAC交换数据。VA接口基于VT(Virtual Template,虚拟模板)接口上配置的参数动态创建。因此,配置LNS时需要首先创建VT接口,并配置该接口的参数。
VT接口的参数主要包括:
· 接口的IP地址
· 对PPP用户的验证方式
· LNS为PPP用户分配的IP地址
关于VT接口配置的详细介绍,请参见“二层技术-广域网接入配置指导”中的“PPP和MP”以及“三层技术-IP业务配置指导”中的“IP地址”。
L2TP在建立连接时需要创建VA接口(VA接口用于L2TP与用户之间的报文传递),在用户下线后需要删除VA接口。由于创建/删除VA接口需要一定的时间,所以如果有大量用户上线/下线时,L2TP的连接建立、连接拆除性能会受到影响。
使用VA池对L2TP的连接建立、连接拆除性能有显著提高。VA池是在建立L2TP连接前事先创建的VA接口的集合。创建VA池后,当需要创建VA接口时,直接从VA池中获取一个VA接口,加快了L2TP连接的建立速度。当用户下线后,直接把VA接口放入VA池中,不需要删除VA接口,加快了L2TP连接的拆除速度。当VA池中的VA接口耗光后,仍需建立L2TP连接时再创建VA接口,在用户下线后删除VA接口。
配置VA池时需要注意:
· 每个虚拟模板接口只能关联一个VA池。如果想要修改使用的VA池的大小,只能先删除原来的配置,然后重新配置VA池。
· 创建/删除VA池需要花费一定的时间,请用户耐心等待。在VA池创建/删除过程中(还没创建/删除完成)允许用户上线/下线,但正在创建/删除的VA池不生效。
· 系统可能由于资源不足不能创建用户指定容量的VA池,用户可以通过display l2tp va-pool命令查看实际可用的VA池的容量以及VA池的状态。
· VA池会占用较多的系统内存,请用户根据实际情况创建大小合适的VA池。
· 删除VA池时,如果已有在线用户使用该VA池中的VA接口,不会导致这些用户下线。
配置VA池 |
接收到LAC发来的隧道建立请求后,LNS需要检查LAC的隧道本端名称是否与本地配置的隧道对端名称相符合,从而决定是否与对端建立隧道,并确定创建VA接口时使用的VT接口。
表1-11 配置LNS接受L2TP隧道建立请求
进入LNS模式的L2TP组视图 |
|||
配置LNS接受来自指定LAC的隧道建立请求,并指定建立隧道时使用的虚拟模板接口 |
L2TP组号不为1 |
allow l2tp virtual-template virtual-template-number remote remote-name |
缺省情况下,LNS不接受任何LAC的隧道建立请求 使用L2TP组号1时,可以不指定隧道对端名,即在组1下LNS可以接受任何名称的隧道对端的隧道建立请求 |
L2TP组号为1 |
allow l2tp virtual-template virtual-template-number [ remote remote-name ] |
当LAC对用户进行验证后,为了增强安全性,LNS可以再次对用户进行验证。在这种情况下,将对用户进行两次验证,第一次发生在LAC侧,第二次发生在LNS侧,只有两次验证全部成功后,L2TP隧道才能建立。
在L2TP组网中,LNS侧对用户的验证方式有三种:
· 代理验证:由LAC代替LNS对用户进行验证,并将用户的所有验证信息及LAC端本身配置的验证方式发送给LNS。LNS根据接收到的信息及本端配置的验证方式,判断用户是否合法。
· 强制CHAP验证:强制在LAC代理验证成功后,LNS再次对用户进行CHAP验证。
· LCP重协商:忽略LAC侧的代理验证信息,强制LNS与用户间重新进行LCP(Link Control Protocol,链路控制协议)协商。
验证方式的优先级从高到底依次为:LCP重协商、强制CHAP验证和代理验证。
· 如果在LNS上同时配置LCP重协商和强制CHAP验证,L2TP将使用LCP重协商。
· 如果只配置强制CHAP验证,则在LAC代理验证成功后,LNS再次对用户进行CHAP验证。
· 如果既不配置LCP重协商,也不配置强制CHAP验证,则对用户进行代理验证。
配置强制CHAP验证后,对于NAS-Initiated模式L2TP隧道的用户来说,会经过两次验证:一次是在NAS端的验证,另一次是在LNS端的验证。一些用户可能不支持进行第二次验证,这时,LNS端的CHAP重新验证会失败。在这种情况下,请不要开启LNS的强制CHAP验证功能,否则将导致用户因验证失败而无法上线。
配置强制CHAP验证时,需要在LNS的VT接口下配置PPP用户的验证方式为CHAP认证,且仅配置CHAP一种认证,否则可能造成用户拨号上线失败。
进入LNS模式的L2TP组视图 |
||
强制LNS重新对用户进行CHAP验证 |
缺省情况下,LNS不会重新对用户进行CHAP验证 本命令只对NAS-Initiated模式的L2TP隧道有效,对Client-Initiated模式和LAC-Auto-Initiated模式的隧道无效 |
对于NAS-Initiated模式L2TP隧道的PPP用户,在PPP会话开始时,先和NAS进行PPP协商。若协商通过,则由NAS触发建立L2TP隧道,并将用户信息传递给LNS,由LNS根据收到的代理验证信息,判断用户是否合法。
但在某些特定的情况下(如LNS不接受LAC的LCP协商参数,希望和用户重新进行参数协商),需要强制LNS与用户重新进行LCP协商,并采用相应的虚拟模板接口上配置的验证方式对用户进行验证。
启用LCP重协商后,如果相应的虚拟模板接口上没有配置验证,则LNS将不对用户进行二次验证(这时用户只在LAC侧接受一次验证)。
表1-13 配置强制本端LCP重新协商
进入LNS模式的L2TP组视图 |
||
配置强制LNS与用户重新进行LCP协商 |
缺省情况下,LNS不会与用户重新进行LCP协商 本命令只对NAS-Initiated模式的L2TP隧道有效,对Client-Initiated模式和LAC-Auto-Initiated模式的隧道无效 |
本配置用来通过AAA对远端拨入用户的身份信息(用户名、密码)进行认证。认证通过后,远端系统可以通过LNS访问企业内部网络。
对于NAS-Initiated隧道模式,当LNS侧没有配置强制LCP重新协商时,必须在LNS侧配置AAA认证;或者当LNS侧配置了强制LCP重新协商,并且虚拟模板接口上配置了需要对PPP用户进行验证时,也必须在LNS侧配置AAA认证。对于Client-Initiated和LAC-Auto-Initiated隧道模式,当虚拟模板接口上配置了需要对PPP用户进行验证时,必须在LNS侧配置AAA认证。其他情况下无需在LNS侧配置AAA认证。
LNS侧支持的AAA配置与LAC侧的相同,具体介绍及配置方法请参见“1.4.5 配置LAC侧的AAA认证”。
本节中的配置既可以在LAC上执行,也可以在LNS上执行。
隧道验证请求可由LAC或LNS任何一侧发起。只要本端启用了隧道验证,则只有在对端也启用了隧道验证,两端密钥不为空并且完全一致的情况下,隧道才能建立;否则本端将自动断开隧道。
若隧道两端都配置了禁止隧道验证,隧道验证的密钥一致与否将不影响隧道建立。
为了保证隧道安全,建议用户最好不要禁用隧道验证的功能。如果用户需要修改隧道验证的密钥,请在隧道开始协商前进行,否则修改的密钥不生效。
进入L2TP组视图 |
||
开启L2TP的隧道验证功能 |
缺省情况下,L2TP隧道验证功能处于开启状态 |
|
为了检测LAC和LNS之间隧道的连通性,LAC和LNS会定期向对端发送Hello报文,接收方接收到Hello报文后会进行响应。当LAC或LNS在指定时间间隔内未收到对端的Hello响应报文时,重复发送,如果重复发送5次仍没有收到对端的响应信息则认为L2TP隧道已经断开。
表1-15 配置隧道Hello报文发送时间间隔
进入L2TP组视图 |
||
配置隧道中Hello报文的发送时间间隔 |
tunnel timer hello hello-interval |
缺省情况下,隧道中Hello报文的发送时间间隔为60秒 |
DSCP(Differentiated Services Code Point,区分服务编码点)携带在IP报文中的ToS字段,用来体现报文自身的优先等级,决定报文传输的优先程度。
通过本配置指定隧道报文的DSCP优先级后,当流量经过L2TP隧道转发时,L2TP将其封装为IP报文并将IP报文头中的DSCP优先级设置为指定的值。
进入L2TP组视图 |
||
配置隧道报文的DSCP优先级 |
缺省情况下,L2TP隧道报文的DSCP优先级为0 |
在L2TP隧道交换组网中,LTS通过ICRQ(Incoming Call Request,入呼叫请求)报文中的TSA(Tunnel Switching Aggregator,隧道交换聚合) ID AVP来避免环路。
LTS接收到ICRQ报文后,将报文中携带的所有TSA ID AVP中的TSA ID逐一与本地配置的TSA ID进行比较。如果TSA ID AVP中存在与本地相同的TSA ID,则表示存在环路,LTS立即拆除会话。否则,LTS将自己的TSA ID封装到新的TSA ID AVP中,LTS向它的下一跳LTS发送ICRQ报文时携带接收到的所有TSA ID AVP及本地封装的TSA ID AVP。
为不同LTS设备配置的TSA ID不能相同,否则会导致环路检测错误。
表1-17 配置LTS设备的TSA ID
配置LTS设备的TSA ID,并开启LTS设备的L2TP环路检测功能 |
缺省情况下,未指定LTS设备的TSA ID,且LTS设备的L2TP环路检测功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后L2TP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以强制断开指定的L2TP隧道。
表1-18 L2TP显示和维护
PPP用户通过LAC接入LNS,在LAC和LNS之间建立L2TP隧道,以便用户通过该L2TP隧道访问公司总部。
图1-11 NAS-Initiated模式L2TP隧道组网图
(1) LAC侧的配置
# 配置各接口的IP地址(略)。
# 创建本地PPPoE用户vpdnuser,设置密码为Hello。
[LAC] local-user vpdnuser class network
[LAC-luser-network-vpdnuser] password simple Hello
[LAC-luser-network-vpdnuser] service-type ppp
[LAC-luser-network-vpdnuser] quit
# 配置虚拟模板接口1的参数,采用CHAP认证对端。
[LAC] interface virtual-template 1
[LAC-Virtual-Template1] ppp authentication-mode chap domain system
[LAC-Virtual-Template1] quit
# 在接口GigabitEthernet3/1/1上启用PPPoE Server协议,并将该接口与虚拟模板接口1绑定。
[LAC] interface GigabitEthernet 3/1/1
[LAC-GigabitEthernet3/1/1] pppoe-server bind virtual-template 1
[LAC-GigabitEthernet3/1/1] quit
# 在系统缺省的ISP域system下,配置域用户使用本地认证方案。
[LAC] domain system
[LAC-isp-system] authentication ppp local
[LAC-isp-system] quit
# 开启L2TP功能。
# 创建LAC模式的L2TP组1,配置隧道本端名称为LAC,指定接入的PPP用户的用户名为vpdnuser时LAC向LNS发起隧道建立请求,并指定LNS地址为1.1.2.2。
[LAC-l2tp1] tunnel name LAC
[LAC-l2tp1] user fullusername vpdnuser
[LAC-l2tp1] lns-ip 1.1.2.2
# 启用隧道验证功能,并设置隧道验证密钥为aabbcc。
[LAC-l2tp1] tunnel authentication
[LAC-l2tp1] tunnel password simple aabbcc
[LAC-l2tp1] quit
(2) LNS侧的配置
# 配置各接口的IP地址。(略)
# 创建本地PPP用户vpdnuser,设置密码为Hello。
[LNS] local-user vpdnuser class network
[LNS-luser-network-vpdnuser] password simple Hello
[LNS-luser-network-vpdnuser] service-type ppp
[LNS-luser-network-vpdnuser] quit
# 启用DHCP服务。
[LNS] dhcp enable
# 配置DHCP地址池pool1。
[LNS] dhcp server ip-pool pool1
[LNS-dhcp-pool-pool1] network 192.168.0.0 24
[LNS-dhcp-pool-pool1] gateway-list 192.168.0.1 export-route
[LNS-dhcp-pool-pool1] dns-list 192.168.0.100
# 将192.168.0.1和192.168.0.100设置为禁止地址。
[LNS-dhcp-pool-pool1] forbidden-ip 192.168.0.1
[LNS-dhcp-pool-pool1] forbidden-ip 192.168.0.100
[LNS-dhcp-pool-pool1] quit
# 配置ISP域system对PPP用户采用本地验证并授权地址池pool1。
[LNS-isp-system] authentication ppp local
[LNS-isp-system] authorization-attribute ip-pool pool1
[LNS-isp-system] quit
# 开启L2TP功能。
# 创建接口Virtual-Template1,配置PPP认证方式为CHAP。
[LNS] interface virtual-template 1
[LNS-virtual-template1] ppp authentication-mode chap domain system
[LNS-virtual-template1] quit
# 创建LNS模式的L2TP组1,配置隧道本端名称为LNS,指定接收呼叫的虚拟模板接口为VT1,并配置隧道对端名称为LAC。
[LNS-l2tp1] tunnel name LNS
[LNS-l2tp1] allow l2tp virtual-template 1 remote LAC
# 启用隧道验证功能,并设置隧道验证密钥为aabbcc。
[LNS-l2tp1] tunnel authentication
[LNS-l2tp1] tunnel password simple aabbcc
[LNS-l2tp1] quit
(3) Remote host侧的配置
在Remote host上配置拨号连接,在拨号网络窗口中输入用户名vpdnuser和密码Hello进行拨号。
# 拨号连接成功后,Remote host获取到IP地址192.168.0.2,并可以ping通LNS的私网地址192.168.0.1。
# 在LNS侧,通过命令display l2tp tunnel可查看建立的L2TP隧道。
LocalTID RemoteTID State Sessions RemoteAddress RemotePort RemoteName
196 3542 Established 1 1.1.2.1 1701 LAC
# 在LNS侧,通过命令display l2tp session可查看建立的L2TP会话。
LocalSID RemoteSID LocalTID State
2041 64 196 Established
PPP用户直接与LNS建立L2TP隧道,通过L2TP隧道访问公司总部。
图1-12 Client-Initiated模式L2TP隧道组网图
(1) LNS侧的配置
# 配置接口的IP地址。(略)
# 配置路由,使得LNS与用户侧主机之间路由可达。(略)
# 创建本地PPP用户vpdnuser,设置密码为Hello。
[LNS] local-user vpdnuser class network
[LNS-luser-network-vpdnuser] password simple Hello
[LNS-luser-network-vpdnuser] service-type ppp
[LNS-luser-network-vpdnuser] quit
# 启用DHCP服务。
# 配置DHCP地址池pool1。
[LNS] dhcp server ip-pool pool1
[LNS-dhcp-pool-pool1] network 192.168.0.0 24
[LNS-dhcp-pool-pool1] gateway-list 192.168.0.1 export-route
[LNS-dhcp-pool-pool1] dns-list 192.168.0.100
# 将192.168.0.1和192.168.0.100设置为禁止地址。
[LNS-dhcp-pool-pool1] forbidden-ip 192.168.0.1
[LNS-dhcp-pool-pool1] forbidden-ip 192.168.0.100
[LNS-dhcp-pool-pool1] quit
# 配置ISP域system对PPP用户采用本地验证并授权地址池pool1。
[LNS-isp-system] authentication ppp local
[LNS-isp-system] authorization-attribute ip-pool pool1
[LNS-isp-system] quit
# 开启L2TP功能。
# 创建接口Virtual-Template1,配置PPP认证方式为CHAP。
[LNS] interface virtual-template 1
[LNS-virtual-template1] ppp authentication-mode chap domain system
[LNS-virtual-template1] quit
# 创建LNS模式的L2TP组1,配置隧道本端名称为LNS,并指定接收呼叫的虚拟模板接口为VT1。
[LNS-l2tp1] tunnel name LNS
[LNS-l2tp1] allow l2tp virtual-template 1
# 关闭L2TP隧道验证功能。
[LNS-l2tp1] undo tunnel authentication
(2) Remote host侧的配置
配置IP地址为2.1.1.1,并配置路由,使得Remote host与LNS(IP地址为1.1.2.2)之间路由可达。
利用Windows系统创建虚拟专用网络连接,或安装L2TP客户端软件,如WinVPN Client。
在Remote host上进行如下L2TP配置(设置的过程与相应的客户端软件有关,以下为设置的内容):
· 设置PPP用户名为vpdnuser,密码为Hello。
· 将LNS的IP地址设为安全网关的Internet接口地址(本例中LNS侧与隧道相连接的以太网接口的IP地址为1.1.2.2)。
· 修改连接属性,将采用的协议设置为L2TP,将加密属性设为自定义,并选择CHAP验证。
# 在Remote host上触发L2TP拨号。拨号连接成功后,Remote host获取到IP地址192.168.0.2,并可以Ping通LNS的私网地址192.168.0.1。
# 在LNS侧,通过命令display l2tp session可查看建立的L2TP会话。
[LNS-l2tp1] display l2tp session
LocalSID RemoteSID LocalTID State
89 36245 10878 Established
# 在LNS侧,通过命令display l2tp tunnel可查看建立的L2TP隧道。
[LNS-l2tp1] display l2tp tunnel
LocalTID RemoteTID State Sessions RemoteAddress RemotePort RemoteName
10878 21 Established 1 2.1.1.1 1701 PC
PPP用户接入之前,在LAC和LNS之间采用LAC-Auto-Initiated模式建立L2TP隧道。PPP用户接入后,通过已经建立的L2TP隧道访问公司总部。
图1-13 LAC-Auto-Initiated模式L2TP隧道组网图
(1) LNS侧的配置
# 配置各接口的IP地址(略)。
# 创建本地PPP用户vpdnuser,配置密码为Hello。
[LNS] local-user vpdnuser class network
[LNS-luser-network-vpdnuser] password simple Hello
[LNS-luser-network-vpdnuser] service-type ppp
[LNS-luser-network-vpdnuser] quit
# 启用DHCP服务。
[LNS] dhcp enable
# 配置DHCP地址池pool1。
[LNS] dhcp server ip-pool pool1
[LNS-dhcp-pool-pool1] network 192.168.0.0 24
[LNS-dhcp-pool-pool1] address range 192.168.0.1 192.168.0.3
[LNS-dhcp-pool-pool1] gateway-list 192.168.0.1 export-route
[LNS-dhcp-pool-pool1] dns-list 192.168.0.3
# 将192.168.0.1和192.168.0.3设置为禁止地址。
[LNS-dhcp-pool-pool1] forbidden-ip 192.168.0.1
[LNS-dhcp-pool-pool1] forbidden-ip 192.168.0.3
[LNS-dhcp-pool-pool1] quit
# 创建接口Virtual-Template1,配置PPP认证方式为PAP。
[LNS] interface virtual-template 1
[LNS-virtual-template1] ppp authentication-mode pap
[LNS-virtual-template1] quit
# 配置ISP域system对PPP用户采用本地验证并授权地址池pool1。
[LNS-isp-system] authentication ppp local
[LNS-isp-system] authorization-attribute ip-pool pool1
[LNS-isp-system] quit
# 开启L2TP功能,并创建LNS模式的L2TP组1。
[LNS] l2tp-group 1 mode lns
# 配置LNS侧本端名称为LNS,指定接收呼叫的虚拟模板接口为VT1,并配置隧道对端名称为LAC。
[LNS-l2tp1] allow l2tp virtual-template 1 remote LAC
# 启用隧道验证功能,并设置隧道验证密钥为aabbcc。
[LNS-l2tp1] tunnel authentication
[LNS-l2tp1] tunnel password simple aabbcc
[LNS-l2tp1] quit
# 配置私网路由,使得访问PPP用户的报文将通过L2TP隧道转发。
[LNS] ip route-static 10.2.0.0 16 192.168.0.2
(2) LAC侧的配置
# 配置各接口的IP地址(略)。
# 开启L2TP功能。
[LAC] l2tp enable
# 创建LAC模式的L2TP组1。
# 配置LAC侧本端名称为LAC,并指定LNS的IP地址为3.3.3.2。
[LAC-l2tp1] lns-ip 3.3.3.2
# 开启隧道验证功能,并设置隧道验证密钥为aabbcc。
[LAC-l2tp1] tunnel authentication
[LAC-l2tp1] tunnel password simple aabbcc
[LAC-l2tp1] quit
# 创建虚拟PPP接口Virtual-PPP 1,配置PPP用户的用户名为vpdnuser、密码为Hello,并配置PPP验证方式为PAP。
[LAC-Virtual-PPP1] ip address ppp-negotiate
[LAC-Virtual-PPP1] ppp pap local-user vpdnuser password simple Hello
[LAC-Virtual-PPP1] quit
# 配置私网路由,访问公司总部的报文将通过L2TP隧道转发。
[LAC] ip route-static 10.1.0.0 16 virtual-ppp 1
# 触发LAC发起L2TP隧道建立请求。
[LAC-Virtual-PPP1] l2tp-auto-client l2tp-group 1
(3) Remote host侧的配置
Remote host上应将LAC设置为网关。
# 在LNS侧,通过命令display l2tp session可查看建立的L2TP会话。
LocalSID RemoteSID LocalTID State
21409 3395 4501 Established
# 在LNS侧,通过命令display l2tp tunnel可查看建立的L2TP隧道。
LocalTID RemoteTID State Sessions RemoteAddress RemotePort RemoteName
4501 524 Established 1 3.3.3.1 1701 LAC
# 在LNS侧,可以Ping通LAC的私网地址10.2.0.1,说明10.2.0.0/16和10.1.0.0/16网络内的主机可以通过L2TP隧道通信。
[LNS] ping -a 10.1.0.1 10.2.0.1
Ping 10.2.0.1 (10.2.0.1): 56 data bytes, press CTRL_C to break
56 bytes from 10.2.0.1: icmp_seq=0 ttl=128 time=1.000 ms
56 bytes from 10.2.0.1: icmp_seq=1 ttl=128 time=1.000 ms
56 bytes from 10.2.0.1: icmp_seq=2 ttl=128 time=1.000 ms
56 bytes from 10.2.0.1: icmp_seq=3 ttl=128 time=1.000 ms
56 bytes from 10.2.0.1: icmp_seq=4 ttl=128 time=1.000 ms
--- Ping statistics for 10.2.0.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/1.000/1.000/0.000 ms
(1) Tunnel建立失败,原因可能是:
· 在LAC端,LNS的地址设置不正确,具体可以查看lns-ip命令的说明。
· LNS端没有设置可以接收该隧道对端的L2TP组,具体可以查看allow命令的说明。
· Tunnel验证不通过,如果配置了验证,应该保证双方都启用了隧道验证并且配置相同的验证密钥。
(2) PPP协商不通过,可能原因有:
· LAC端设置的用户名与密码有误,或者是LNS端没有设置相应的用户。
· LNS端不能分配地址,请检查远端系统和LNS对IP地址协商相关的配置是否正确。
· 密码验证类型不一致。例如,Windows 2000所创建的VPN连接缺省的验证类型为MS-CHAP,如果对端不支持MS-CHAP,建议改为CHAP。
数据传输失败,在隧道建立后数据不能传输,如Ping不通对端。
(1) 路由问题:LAC和LNS上需要存在到达对端私网的路由,否则会导致数据传输失败。在LAC和LNS上执行display ip routing-table命令,查看设备上是否存在到达对端私网的路由。若不存在,则需要配置静态路由或动态路由协议,在设备上添加该路由。
(2) 网络拥挤:Internet主干网产生拥挤,丢包现象严重。L2TP是基于UDP进行传输的,UDP不对报文进行差错控制。如果是在线路质量不稳定的情况下进行L2TP应用,有可能会产生Ping不通对端的情况。
用户正常上线后,当发送较大L2TP数据报文时,导致L2TP用户下线。
可能原因如下:
在L2TP业务中,当需要传输数据报文的长度大于出端口MTU时,设备一端会把该报文按照出端口MTU分片后传输到目的端,而目的端因不支持硬件分片重组,会直接把这些分片报文上送到CPU进行软件分片重组,如此造成CPU资源被上送的数据报文占用而无法处理协议报文(L2TP使用Hello报文来检测隧道的连通性,LAC和LNS定时向对端发送Hello报文,若在一段时间内未收到Hello报文的应答,隧道断开。),从而导致L2TP用户下线。
处理建议:
此时,应该把LAC或LNS设备的物理出接口的MTU值配置大些,从而尽量避免报文分片的发生。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!