12-L2TP配置
本章节下载: 12-L2TP配置 (456.83 KB)
目 录
L2TP(Layer 2 Tunneling Protocol,二层隧道协议)通过在公共网络(如Internet)上建立点到点的L2TP隧道,将PPP(Point-to-Point Protocol,点对点协议)数据帧封装后通过L2TP隧道传输,使得远端用户(如企业驻外机构和出差人员)利用PPP接入公共网络后,能够通过L2TP隧道与企业内部网络通信,访问企业内部网络资源,从而为远端用户接入私有的企业网络提供了一种安全、经济且有效的方式。
图1-1 L2TP典型组网
如图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两种模式。
如图1-4所示,NAS-Initiated模式L2TP隧道的建立由LAC(即NAS)发起。远端系统的拨号用户通过PPPoE拨入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认证。
(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为Host A分配一个企业网内部的IP地址。
(13) 获得IP地址后,PPP用户可以通过Host A访问企业内部资源。
在步骤(12)和(13)中,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隧道的建立流程
L2TP协议本身并不提供连接的安全性,但它可依赖于PPP提供的认证(比如CHAP、PAP等),因此具有PPP所具有的所有安全特性。
L2TP还可以与IPsec结合起来实现数据安全,使得通过L2TP所传输的数据更难被攻击。
L2TP传输PPP数据包,在PPP数据包内可以封装多种协议。
LAC和LNS可以将用户名和密码发往RADIUS服务器,由RADIUS服务器对用户身份进行认证。
LNS可以对远端系统的地址进行动态的分配和管理,可支持私有地址应用(RFC 1918)。为远端系统分配企业内部的私有地址,可以方便地址的管理并增加安全性。
可在LAC和LNS两处同时计费,即ISP处(用于产生帐单)及企业网关(用于付费及审计)。L2TP能够提供数据传输的出/入包数、字节数以及连接的起始、结束时间等计费数据,AAA服务器可根据这些数据方便地进行网络计费。
L2TP协议支持备份LNS,当主LNS不可达之后,LAC可以与备份LNS建立连接,增加了L2TP服务的可靠性。
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下发的属性列表
属性编号 |
属性名称 |
描述 |
64 |
Tunnel-Type |
隧道类型,目前只支持L2TP隧道类型 |
65 |
Tunnel-Medium-Type |
隧道的传输媒介类型,目前只支持IPv4 |
67 |
Tunnel-Server-Endpoint |
LNS的IP地址 |
69 |
Tunnel-Password |
隧道验证密钥 |
81 |
Tunnel-Private-Group-ID |
隧道的Group ID LAC将该值发送给LNS,以便LNS根据该值进行相应的处理 |
82 |
Tunnel-Assignment-ID |
隧道的Assignment ID 用来标识会话承载在哪条隧道上,具有相同Tunnel-Assignment-ID、Tunnel-Server_Endpoint和Tunnel-Password的L2TP用户共用同一条L2TP隧道 |
90 |
Tunnel-Client-Auth-ID |
隧道的名称 用来标识本端隧道 |
目前,仅支持通过RADIUS服务器下发一组L2TP隧道属性,不支持同时下发多组隧道属性。
如果既通过RADIUS服务器为LAC下发了隧道属性,又在LAC上通过命令行手工配置了隧道属性,则以RADIUS服务器下发的属性为准。
如图1-8所示,设备可以同时作为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-8 L2TP隧道交换组网图
L2TP接入的EAD功能是指,在L2TP身份认证的基础之上,通过和安全策略服务器配合进一步对接入网络的用户终端强制实施企业安全策略,加强网络用户终端的主动防御能力,并严格控制终端用户的网络使用行为,保护网络安全。
具体流程如下:
(1) iNode客户端(即主机)通过L2TP接入到LNS设备,通过PPP认证后,CAMS/iMC服务器给设备下发隔离ACL,对报文进行入方向防火墙过滤;
(2) 通过IPCP协商后,CAMS/iMC服务器通过设备把自己的IP地址(该IP地址可以通过隔离ACL)等信息通知给iNode客户端;
(3) iNode客户端直接和CAMS/iMC服务器进行EAD认证和安全检查,通过安全检查后,CAMS/iMC服务器针对这个用户给设备下发安全ACL,使用户可以正常使用网络资源。
与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和LNS两台网络设备。
¡ 对于Client-Initiated模式,只需要配置LNS一台网络设备。
(2) 规划好设备在网络中的角色,然后分别进行LAC或LNS端的相关配置,使设备具有LAC或LNS端功能。
LAC端配置任务如下:
(1) 配置L2TP基本功能
(2) 配置LAC端
NAS-Initiated模式下为必选。
¡ (可选)配置AVP数据的隐藏传输
NAS-Initiated模式下为必选。
(3) (可选)配置L2TP公共参数
¡ 配置隧道验证
LNS端配置任务如下:
(1) 配置L2TP基本功能
(2) 配置LNS端
¡ 配置虚拟模板接口
¡ (可选)配置静态VA池
¡ (可选)配置LNS端的用户验证
¡ (可选)配置LNS端的AAA认证
¡ (可选)配置LNS端每秒能处理ICRQ报文的最大数目
¡ (可选)配置LNS端用户IP地址冲突时强制老用户下线
(3) (可选)配置L2TP公共参数
¡ 配置隧道验证
(4) 配置基于L2TP接入的EAD功能
当需要在L2TP身份认证的基础之上,通过和安全策略服务器配合进一步对用户进行安全性检查时,需要配置本功能。
(6) 当4G路由器作为LAC client并按照Client-Initiated模式接入LNS或4G路由器作为LAC端并按照LAC-Auto-Initiated模式自动触发接入LNS时,需要配置本功能。
L2TP基本功能的配置包括如下内容:
· 启用L2TP功能:只有启用L2TP后,设备上的L2TP功能才能正常发挥作用。
· 创建L2TP组:L2TP组用于配置L2TP的相关参数,它不仅增加了L2TP配置的灵活性,还方便地实现了LAC和LNS之间一对一、一对多的组网应用。L2TP组在LAC和LNS上独立编号,只需要保证LAC和LNS之间关联的L2TP组的相关配置(如隧道对端名称、LNS地址等)保持对应关系即可。
· 配置隧道本端的名称:隧道本端的名称在LAC和LNS进行隧道协商时使用,它用来标识本端隧道,以供对端识别。
(1) 进入系统视图。
system-view
(2) 开启L2TP功能。
l2tp enable
缺省情况下,L2TP功能处于关闭状态。
(3) 创建L2TP组,指定L2TP组的模式,并进入L2TP组视图。
l2tp-group group-number mode { lac | lns }
在LAC端需要指定L2TP组的模式为lac;在LNS端需要指定L2TP组的模式为lns。
(4) 配置隧道本端的名称。
tunnel name name
缺省情况下,隧道本端的名称为设备的名称。
LAC端配置的隧道本端名称要与LNS端配置的允许接受的L2TP隧道请求的隧道对端名称保持一致。
本配置用来指定LAC向LNS发起隧道建立请求的触发条件。只有PPP用户的信息与指定的触发条件匹配时,LAC才认为该PPP用户为L2TP用户,向LNS发起L2TP隧道建立请求。
触发条件分为如下两种:
· 完整的用户名(fullusername):只有PPP用户的用户名与配置的完整用户名匹配时,才会向LNS发起L2TP隧道建立请求。
· 带特定域名的用户名(domain):PPP用户的ISP域名与配置的域名匹配时,即向LNS发起L2TP隧道建立请求。
(1) 进入系统视图。
system-view
(2) 进入LAC模式的L2TP组视图。
l2tp-group group-number [ mode lac ]
(3) 配置向LNS发起隧道建立请求的触发条件。
user { domain domain-name | fullusername user-name }
缺省情况下,没有指定本端作为LAC端时向LNS发起隧道建立请求的触发条件。
LAC上最多可以配置五个LNS地址或域名(LNS地址+域名总和不允许超过5个),即允许存在备用LNS。LAC按照LNS的IP地址或域名配置的先后顺序依次向每个LNS发送建立L2TP隧道的请求。LAC接收到某个LNS的接受应答后,该LNS就作为隧道的对端;否则,LAC向下一个LNS发起隧道建立请求。
当LNS端IP地址固定时,可以通过lns-ip ip-address直接指定LNS端的IP地址;当LNS端IP地址不固定时,可以通过lns-ip hots-name指定LNS端的域名,LAC会将域名交给域名解析模块处理,并根据域名解析模块返回的IP地址发起建立L2TP隧道的请求。关于域名解析的详细描述请参见“网络互通配置指导”中的“域名解析”。
(1) 进入系统视图。
system-view
(2) 进入LAC模式的L2TP组视图。
l2tp-group group-number [ mode lac ]
(3) 配置LNS的IP地址。
lns-ip { ip-address | host-name name }&<1-5>
缺省情况下,没有指定LNS的IP地址和域名。
在LAC上配置了L2TP隧道的源端地址后,LAC会将该地址作为封装后L2TP隧道报文的源IP地址。
建议将L2TP隧道的源端地址配置为设备上某LoopBack接口的IP地址,以减小物理接口故障对L2TP业务造成的影响。但当LAC和LNS之间存在等价路由时,必须将L2TP隧道的源端地址通过source-ip命令配置或通过RADIUS服务器授权为设备上某LoopBack接口的IP地址。
(1) 进入系统视图。
system-view
(2) 进入LAC模式的L2TP组视图。
l2tp-group group-number [ mode lac ]
(3) 配置L2TP隧道的源端地址。
source-ip ip-address
缺省情况下,L2TP隧道的源端地址为本端隧道出接口的IP地址。
L2TP协议通过AVP(Attribute Value Pair,属性值对)来传输隧道协商参数、会话协商参数和用户认证信息等。如果用户不希望这些信息(如用户密码)被窃取,则可以使用本配置将AVP数据的传输方式配置成为隐藏传输,即利用隧道验证密钥(通过tunnel password命令配置)对AVP数据进行加密传输。
只有使能了隧道验证功能,本配置才会生效。隧道验证功能的详细配置,请参见“1.7.1 配置隧道验证”。
(1) 进入系统视图。
system-view
(2) 进入LAC模式的L2TP组视图。
l2tp-group group-number [ mode lac ]
(3) 配置隧道采用隐藏方式传输AVP数据。
tunnel avp-hidden
缺省情况下,隧道采用明文方式传输AVP数据。
本配置用来通过AAA对远端拨入用户的身份信息(用户名、密码)进行认证。用户身份认证通过后,LAC才能发起建立隧道的请求,否则不会为用户建立隧道。
设备支持的AAA认证包括本地和远程两种认证方式:
· 如果选择本地认证方式,则需要在LAC端配置本地用户名和密码。LAC通过检查拨入用户的用户名/密码是否与本地配置的用户名/密码相符来验证用户身份。
· 如果选择远程认证方式,则需要在RADIUS/HWTACACS服务器上配置用户名和密码。LAC将拨入用户的用户名和密码发往服务器,由服务器对用户身份进行认证。
AAA相关的配置请参见“安全配置指导”中的“AAA”。
配置LAC端的AAA认证时,接入用户的接口上需要配置PPP用户的验证方式为PAP或CHAP,配置方法请参见“二层技术-广域网接入配置指导”中的“PPP”。
L2TP会话建立之后,LNS需要创建一个VA(Virtual Access,虚拟访问)接口用于和LAC交换数据。VA接口基于VT(Virtual Template,虚拟模板)接口上配置的参数动态创建。因此,配置LNS时需要首先创建VT接口,并配置该接口的参数。
VT接口的参数主要包括:
· 接口的IP地址
· 对PPP用户的验证方式
· LNS为PPP用户分配的IP地址
关于VT接口配置的详细介绍,请参见“网络互通配置指导”中的“PPP”以及“IP地址”。
VA池是在建立L2TP连接前事先创建的VA接口的集合。VA池可以用来解决大量用户同时上线/下线,无法及时创建/删除VA接口,以至于影响L2TP连接建立和拆除性能的问题。
创建VA池后,当需要创建VA接口时,直接从VA池中获取一个VA接口,加快了L2TP连接的建立速度。当用户下线后,直接把VA接口放入VA池中,不需要删除VA接口,加快了L2TP连接的拆除速度。
每个虚拟模板接口只能关联一个静态VA池。如果想要修改使用的静态VA池的大小,只能先删除原来的配置,然后重新配置静态VA池。
创建/删除静态VA池需要花费一定的时间,请用户耐心等待。在静态VA池创建/删除过程中(还没创建/删除完成)允许用户上线/下线,但正在创建/删除的静态VA池不生效。
系统可能由于资源不足不能创建用户指定容量的静态VA池,用户可以通过display l2tp va-pool命令查看实际可用的静态VA池的容量以及静态VA池的状态。
VA池会占用较多的系统内存,请用户根据实际情况创建大小合适的静态VA池。
删除静态VA池时,如果已有在线用户使用该VA池中的VA接口,不会导致这些用户下线。
(1) 进入系统视图。
system-view
(2) 配置静态VA池。
l2tp virtual-template template-number va-pool va-volume
接收到LAC发来的隧道建立请求后,LNS需要检查LAC的隧道本端名称是否与本地配置的隧道对端名称相符合,从而决定是否与对端建立隧道,并确定创建VA接口时使用的VT接口。
(1) 进入系统视图。
system-view
(2) 进入LNS模式的L2TP组视图。
l2tp-group group-number [ mode lns ]
(3) 配置LNS接受来自指定LAC的隧道建立请求,并指定建立隧道时使用的虚拟模板接口。请选择其中一项进行配置。
¡ L2TP组号不为1。
allow l2tp virtual-template virtual-template-number remote remote-name
¡ L2TP组号为1。
allow l2tp virtual-template virtual-template-number [ remote remote-name ]
缺省情况下,LNS不接受任何LAC的隧道建立请求。
使用L2TP组号1时,可以不指定隧道对端名,即在组1下LNS可以接受任何名称的隧道对端的隧道建立请求。
当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验证和LCP重协商两种验证方式仅对NAS-Initiated模式的L2TP隧道有效。
配置强制CHAP验证时,在LNS的VT接口下必须且只能配置PPP用户的验证方式为CHAP认证。
在某些特定的情况下(如LNS不接受LAC的LCP协商参数,希望和用户重新进行参数协商),需要强制LNS与用户重新进行LCP协商,并采用相应的虚拟模板接口上配置的验证方式对用户进行验证时可配置LCP重协商验证方式。
(1) 进入系统视图。
system-view
(2) 进入LNS模式的L2TP组视图。
l2tp-group group-number [ mode lns ]
(3) 强制LNS重新对用户进行CHAP验证。
mandatory-chap
缺省情况下,LNS不会重新对用户进行CHAP验证。
对于不支持进行第二次验证的用户,不建议配置本功能,否则将因LNS端的CHAP重新验证失败而导致L2TP隧道无法建立。
(4) 退回系统视图。
quit
(5) 进入VT接口并在该接口下配置PPP用户的验证方式为CHAP认证。
关于VT接口配置的详细介绍,请参见“二层技术-广域网接入配置指导”中的“PPP”。
(1) 进入系统视图。
system-view
(2) 进入LNS模式的L2TP组视图。
l2tp-group group-number [ mode lns ]
(3) 配置强制LNS与用户重新进行LCP协商。
mandatory-lcp
缺省情况下,LNS不会与用户重新进行LCP协商。
启用LCP重协商后,如果相应的虚拟模板接口上没有配置验证,则LNS将不对用户进行二次验证(这时用户只在LAC端接受一次验证)。
本配置用来通过AAA对远端拨入用户的身份信息(用户名、密码)进行认证。认证通过后,远端系统可以通过LNS访问企业内部网络。
对于NAS-Initiated隧道模式,当LNS端没有配置强制LCP重新协商时,必须在LNS端配置AAA认证;或者当LNS端配置了强制LCP重新协商,并且虚拟模板接口上配置了需要对PPP用户进行验证时,也必须在LNS端配置AAA认证。对于Client-Initiated隧道模式,当虚拟模板接口上配置了需要对PPP用户进行验证时,必须在LNS端配置AAA认证。其他情况下无需在LNS端配置AAA认证。
LNS端支持的AAA配置与LAC端的相同,具体介绍及配置方法请参见“1.5.5 配置LAC端的AAA认证”。
为避免大量L2TP用户的突发上线请求对设备性能造成影响,同时又确保L2TP用户能够平稳上线,可以通过本节配置调整设备接收处理ICRQ报文的速率。
(1) 进入系统视图。
system-view
(2) 配置LNS端每秒能处理ICRQ报文的最大数目。
l2tp icrq-limit number
缺省情况下,未限制LNS端每秒能处理ICRQ报文的最大数目。
当新上线L2TP用户的IP地址和已在线L2TP用户IP地址冲突时,可根据实际需要选择禁止新用户上线或者强制老用户下线。
(1) 进入系统视图。
system-view
(2) 配置当新上线L2TP用户的IP地址和已在线用户IP地址冲突时,允许新用户上线,并强制老用户下线。
l2tp user-ip-conflict offline
缺省情况下,新上线L2TP用户的IP地址和已在线L2TP用户IP地址冲突时,禁止新用户上线,老用户继续保持在线。
隧道验证请求可由LAC或LNS任何一端发起。
如果LAC和LNS两端都开启了隧道验证功能,则两端密钥(通过tunnel password命令配置)不为空并且完全一致的情况下,二者之间才能成功建立L2TP隧道。
如果LAC和LNS中的一端开启了隧道验证功能,则另一端可不开启隧道验证功能,但需要两端密钥(通过tunnel password命令配置)不为空并且完全一致,二者之间才能成功建立L2TP隧道。
如果LAC和LNS两端都禁用隧道验证功能,则无论两端是否配置密钥、密钥是否相同,都不影响隧道建立。
为了保证隧道安全,建议用户不要禁用隧道验证功能。
隧道建立成功后,修改隧道验证的密钥不影响当前隧道的正常通信;当隧道断开后重新建立时使用修改后的密钥进行隧道验证。
(1) 进入系统视图。
system-view
(2) 进入L2TP组视图。
l2tp-group group-number [ mode { lac | lns } ]
(3) 开启L2TP的隧道验证功能。
tunnel authentication
缺省情况下,L2TP隧道验证功能处于开启状态。
(4) 配置隧道验证密钥。
tunnel password { cipher | simple } password
缺省情况下,未配置隧道验证密钥。
为了检测LAC和LNS之间隧道的连通性,LAC和LNS会定期向对端发送Hello报文,接收方接收到Hello报文后会进行响应。当LAC或LNS在指定时间间隔内未收到对端的Hello响应报文时,重复发送,如果重复发送5次仍没有收到对端的响应信息则认为L2TP隧道已经断开。
(1) 进入系统视图。
system-view
(2) 进入L2TP组视图。
l2tp-group group-number [ mode { lac | lns } ]
(3) 配置隧道中Hello报文的发送时间间隔。
tunnel timer hello hello-interval
缺省情况下,隧道中Hello报文的发送时间间隔为60秒。
L2TP会话的流控功能是指在L2TP会话上传递的报文中携带序列号,通过序列号检测是否丢包,并根据序列号对乱序报文进行排序。
L2TP会话的流控功能应用在L2TP数据报文的接收与发送过程中。只要LAC和LNS中的一端开启了流控功能,二者之间建立的L2TP会话就支持流控功能。
(1) 进入系统视图。
system-view
(2) 进入L2TP组视图。
l2tp-group group-number [ mode { lac | lns } ]
(3) 开启L2TP会话的流控功能。
tunnel flow-control
缺省情况下,L2TP会话的流控功能处于关闭状态。
DSCP(Differentiated Services Code Point,区分服务编码点)携带在IP报文中的ToS字段,用来体现报文自身的优先等级,决定报文传输的优先程度。
通过本配置指定隧道报文的DSCP优先级后,当流量经过L2TP隧道转发时,L2TP将其封装为IP报文并将IP报文头中的DSCP优先级设置为指定的值。
(1) 进入系统视图。
system-view
(2) 进入L2TP组视图。
l2tp-group group-number [ mode { lac | lns } ]
(3) 配置隧道报文的DSCP优先级。
ip dscp dscp-value
缺省情况下,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) 进入系统视图。
system-view
(2) 配置LTS设备的TSA ID,并开启LTS设备的L2TP环路检测功能。
l2tp tsa-id tsa-id
缺省情况下,未指定LTS设备的TSA ID,且LTS设备的L2TP环路检测功能处于关闭状态。
如果乱序报文过多,可以通过调整L2TP接收窗口的大小进行缓解。当出现乱序报文的时候,如果乱序报文NS(L2TP报文中用于标识当前报文序列号的字段)在接收窗范围内,设备会先将报文缓存起来,等待NS等于接收窗下沿的报文到达。当收到NS等于接收窗下沿的报文时,则对其(NS等于接收窗下沿的报文)进行处理,处理完该报文后,接收窗下沿加1;如果此时缓存中存在NS等于接收窗下沿的报文,则继续处理;如不存在,则继续等待NS等于接收窗下沿的报文到达;依次类推。对于超过接收窗范围的报文进行丢弃。
在L2TP隧道建立时,接收窗口大小以L2TP组视图下配置的接收窗口大小为准。隧道建立完成后通过本特性修改L2TP隧道接收窗口的大小对已经建立的隧道接收窗口的大小无影响。
(1) 进入系统视图。
system-view
(2) 进入L2TP组视图。
l2tp-group group-number [ mode { lac | lns } ]
(3) 配置L2TP隧道接收窗口的大小。
tunnel window receive size
缺省情况下,L2TP隧道接收窗口的大小为1024。
在某些组网中可能出现对端的报文接收处理能力和对端接收窗口的大小不匹配的情况(例如:对端实际的报文接收处理能力为10,但接收窗口的大小为20),此时可以通过本特性调整本端L2TP隧道发送窗口的大小来适配对端的实际报文接收处理能力,以保证L2TP用户平稳上线。
在L2TP隧道建立时会获取L2TP组视图下配置的发送窗口大小。如果配置的发送窗口大小为0,则按缺省情况处理;如果配置的发送窗口大小非0,则以配置的发送窗口大小为准。隧道建立完成后通过本配置修改L2TP隧道发送窗口的大小对已经建立的隧道发送窗口的大小无影响。
(1) 进入系统视图。
system-view
(2) 进入L2TP组视图。
l2tp-group group-number [ mode { lac | lns } ]
(3) 配置L2TP隧道发送窗口的大小。
tunnel window send size
缺省情况下,L2TP隧道发送窗口的大小为0,即本端发送窗口的大小以隧道建立过程中对端携带的接收窗口大小的属性值为准,如果隧道建立过程中对端没有携带接收窗口大小属性,则本端隧道发送窗口的大小为4。
为了L2TP控制报文重传的时间和次数,LAC和LNS会将传送失败的报文进行定期的重传处理。
当本端向L2TP隧道的对端发送L2TP控制报文后,如果在一定时间内未收到响应报文,则重传该报文。当本端重传L2TP控制报文的次数达到tunnel retransmit命令配置的次数后,如果依然未收到响应报文,则本端认为该L2TP隧道已经异常中断,将清除该隧道的相关信息。
超时重传时间=初始超时重传时间×2已重传次数。当某次超时重传时间达到或超过16秒时,包括该次在内的所有剩余重传次数的超时重传时间都固定为16秒。例如tunnel retransmit命令配置的重传次数为5次,tunnel timeout命令配置的初始超时重传时间3秒,那么5次重传的超时时间间隔分别为3秒、6秒、12秒、16秒、16秒。
为避免设备在短时间内发送大量L2TP控制报文,影响设备性能,当设备上所有L2TP组中的L2TP隧道之和超过256时,设备会忽略tunnel timeout命令的配置,自动将L2TP控制报文的超时重传时间强制固定为16秒;当L2TP隧道总数下降到256及以下时,设备根据已重传次数和tunnel timeout命令的配置计算下次的超时重传时间。
(1) 进入系统视图。
system-view
(2) 进入L2TP组视图。
l2tp-group group-number [ mode { lac | lns } ]
(3) 配置L2TP控制报文的初始超时重传时间。
tunnel timout timeout
缺省情况下,L2TP控制报文的初始超时重传时间为1秒。
(4) 配置L2TP控制报文的超时重传次数。
tunnel retransmit times
缺省情况下,L2TP控制报文超时重传次数为9次。
在一些安全性要求比较高的网络环境中,可通过配置本功能并和安全策略服务器配合对L2TP认证通过的用户做进一步的安全性检查。只有通过安全检查,用户才可以正常访问网络资源;否则,用户将只能访问隔离区的资源。
如果LNS设备上开启了基于L2TP接入的EAD功能,但未配置认证服务器下发的ACL号或未准确配置ACL规则,会导致认证不通过。
不同的主机用户ACL可以不同,设备根据不同的ACL对不同的用户进行报文过滤。
建议只在跨越Internet的远端客户端使用此功能,局域网用户不建议使用此功能,应该使用Portal认证。
完成L2TP、Portal、AAA、RADIUS及安全策略服务器的相关配置。
关于Portal的相关内容,请参见“安全配置指导”中的“Portal”。
关于AAA和RADIUS的相关内容,请参见“安全配置指导”中的“AAA”。
关于安全策略服务器的配置,请参见“iMC EAD安全策略组件联机帮助”。
(1) 进入系统视图。
system-view
(2) 创建并进入虚拟模板接口。
interface virtual-template interface-number
(3) 开启基于L2TP接入的EAD功能。
ppp access-control enable
缺省情况下,基于L2TP接入的EAD功能处于关闭状态。
在4G网络应用环境中,基于安全性考虑,仅仅根据用户名对客户端或LAC进行认证已不能满足用户需求。通过配置IMSI/SN捆绑协商功能可以进一步提高4G网络的安全性。配置本功能后LNS向AAA服务器进行认证时会上送用户名/密码和IMSI/SN信息,AAA服务器根据已有的配置对这些信息进行认证。只有用户名/密码认证和IMSI/SN信息检测认证都通过时才允许用户上线,否则用户上线失败。有关3G/4G/5G的相关介绍,请参见“二层技术-广域网接入配置指导”中的“移动通信Modem管理”。
当4G路由器作为LAC client并按照Client-Initiated模式接入LNS时,需要配置LNS端发起IMSI/SN捆绑协商功能。
在和本LNS端建立L2TP隧道的LAC client或LAC(4G/5G路由器)上配置其支持与LNS端进行IMSI/SN协商,否则LNS端将因协商不到LAC client或LAC端的IMSI/SN信息导致认证不通过。
(1) 进入系统视图。
system-view
(2) 进入虚拟模板接口视图。
interface virtual-template interface-number
(3) 开启LNS端IMSI/SN捆绑协商功能。请至少选择其中一项进行配置。
¡ 请依次执行以下命令配置LNS端发起IMSI/SN捆绑协商请求。
ppp lcp imsi request
ppp lcp sn request
缺省情况下,LNS端不发起IMSI/SN捆绑协商请求。
¡ 配置协商时拆分对端用户名使用的分隔符。
ppp user accept-format imsi-sn split splitchart
缺省情况下,未配置协商认证时拆分对端用户名使用的分隔符。
如果二者同时配置,则优先使用协商到的IMSI/SN信息进行认证(这里认证是指LNS上送AAA服务器的IMSI/SN信息和AAA服务器上配置的IMSI/SN信息进行对比认证。);如果没有协商到对端的IMSI/SN信息,则使用从对端用户名中拆分出来的IMSI/SN信息进行认证。
(4) (可选)配置使用IMSI/SN信息替换用户名进行认证。
ppp user replace { imsi | sn }
缺省情况下,使用用户名进行认证。
在完成上述配置后,在任意视图下执行display命令可以显示配置后L2TP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以强制断开指定的L2TP隧道。
表1-2 L2TP显示和维护
操作 |
命令 |
显示当前L2TP隧道的信息 |
display l2tp tunnel [ statistics ] |
显示当前L2TP会话的信息 |
display l2tp session [ statistics ] |
显示当前L2TP非稳态会话的信息 |
display l2tp session temporary |
显示虚拟PPP接口的相关信息 |
display interface [ virtual-ppp [ interface-number ] ] [ brief [ description | down ] ] |
显示L2TP的VA池信息 |
display l2tp va-pool [ dynamic ] |
显示VT接口产生的PPP会话的动态防火墙的统计信息 |
display ppp access-control interface virtual-template interface-number |
强制断开指定的L2TP隧道 |
reset l2tp tunnel { id tunnel-id | name remote-name } |
远端系统无法访问企业内部网络。
主要有以下几种原因:
· 可能是如下原因导致Tunnel建立失败:
¡ 在LAC端,LNS的地址设置不正确。
¡ LNS端没有设置可以接收该隧道对端的L2TP组。
¡ 只有一端启用Tunnel验证或两端均启用Tunnel验证但验证密码不一致。
· 可能是如下原因导致PPP协商不通过:
¡ LAC端设置的用户名与密码有误,或者是LNS端没有设置相应的用户。
¡ 密码验证类型不一致。
(1) 检查在LAC端配置的LNS的IP地址是否正确,具体可以查看lns-ip命令的说明。
(2) 检查在LNS端配置的接受来自LAC的L2TP隧道建立请求是否正确,具体可查看allow l2tp命令的说明。
(3) 如果配置了验证,检查并保证双方都启用了隧道验证并且配置相同的验证密钥。
(4) 检查LAC端配置的用户名和密码是否正确,以及LNS端是否配置了相应的用户。
(5) 检查远端系统和LNS对IP地址协商相关的配置是否正确。
(6) 检查密码验证类型是否一致。例如,Windows 2000所创建的VPN连接缺省的验证类型为MSCHAP,如果对端不支持MSCHAP,建议改为CHAP。
数据传输失败,在隧道建立后数据不能传输,如Ping不通对端。
可能有如下原因:
· 路由问题:LAC和LNS上需要存在到达对端私网的路由,否则会导致数据传输失败。
· 网络拥挤:Internet主干网产生拥挤,丢包现象严重。L2TP是基于UDP进行传输的,UDP不对报文进行差错控制。如果是在线路质量不稳定的情况下进行L2TP应用,有可能会产生Ping不通对端的情况。
(1) 在LAC和LNS上执行display ip routing-table命令,查看设备上是否存在到达对端私网的路由。若不存在,则需要配置静态路由或动态路由协议,在设备上添加该路由。
(2) 增加链路带宽,提高线路质量。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!