10-L2TP配置
本章节下载 (636.57 KB)
VPDN(Virtual Private Dial-up Network,虚拟专用拨号网络)是指利用公共网络(如ISDN或PSTN)的拨号功能接入公共网络,实现虚拟专用网,从而为企业、小型ISP、移动办公人员等提供接入服务。即,VPDN为远端用户与私有企业网之间提供了一种经济而有效的点到点连接方式。
VPDN采用隧道协议在公共网络上为企业建立安全的虚拟专网。企业驻外机构和出差人员可从远程经由公共网络,通过虚拟隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源。
VPDN隧道协议主要包括以下三种:
· PPTP(Point-to-Point Tunneling Protocol,点到点隧道协议)
· L2F(Layer 2 Forwarding,二层转发)
· L2TP(Layer 2 Tunneling Protocol,二层隧道协议)
L2TP结合了L2F和PPTP的各自优点,是目前使用最为广泛的是VPDN隧道协议。
L2TP(RFC 2661)是一种对PPP链路层数据包进行封装,并通过隧道进行传输的技术。L2TP允许连接用户的二层链路端点和PPP会话终点驻留在通过分组交换网络连接的不同设备上,从而扩展了PPP模型,使得PPP会话可以跨越分组交换网络,如Internet。
使用L2TP协议构建的VPDN应用的典型组网如图1-1所示。
图1-1 应用L2TP构建的VPDN服务
在L2TP构建的VPDN中,网络组件包括以下三个部分:
· 远端系统
远端系统是要接入VPDN网络的远地用户和远地分支机构,通常是一个拨号用户的主机或私有网络的一台路由设备。
· LAC(L2TP Access Concentrator,L2TP访问集中器)
LAC是具有PPP和L2TP协议处理能力的设备,通常是一个当地ISP的NAS(Network Access Server,网络接入服务器),主要用于为PPP类型的用户提供接入服务。
LAC作为L2TP隧道的端点,位于LNS和远端系统之间,用于在LNS和远端系统之间传递信息包。它把从远端系统收到的信息包按照L2TP协议进行封装并送往LNS,同时也将从LNS收到的信息包进行解封装并送往远端系统。
VPDN应用中,LAC与远端系统之间通常采用PPP链路。
· LNS(L2TP Network Server,L2TP网络服务器)
LNS既是PPP端系统,又是L2TP协议的服务器端,通常作为一个企业内部网的边缘设备。
LNS作为L2TP隧道的另一侧端点,是LAC的对端设备,是LAC进行隧道传输的PPP会话的逻辑终止端点。通过在公网中建立L2TP隧道,将远端系统的PPP连接由原来的NAS在逻辑上延伸到了企业网内部的LNS。
L2TP中存在两种消息:
· 控制消息:用于隧道和会话连接的建立、维护和拆除。它的传输是可靠传输,并且支持对控制消息的流量控制和拥塞控制。
· 数据消息:用于封装PPP帧,并在隧道上传输。它的传输是不可靠传输,若数据报文丢失,不予重传,不支持对数据消息的流量控制和拥塞控制。
控制消息和数据消息共享相同的报文头,通过报文头中的Type字段来区分控制消息和数据消息。
图1-2描述了控制通道以及PPP帧和数据通道之间的关系。PPP帧在不可靠的L2TP数据通道上进行传输,控制消息在可靠的L2TP控制通道内传输。
图1-2 L2TP协议结构
图1-3描述了LAC与LNS之间的L2TP数据报文的封装结构。通常L2TP数据以UDP报文的形式发送。L2TP注册了UDP 1701端口,但是这个端口仅用于初始的隧道建立过程中。L2TP隧道发起方任选一个空闲的端口(未必是1701)向接收方的1701端口发送报文;接收方收到报文后,也任选一个空闲的端口(未必是1701),给发送方的指定端口回送报文。至此,双方的端口选定,并在隧道保持连通的时间段内不再改变。
图1-3 L2TP报文封装结构图
在一个LNS和LAC对之间存在着两种类型的连接。
· 隧道(Tunnel)连接:它对应了一个LNS和LAC对。
· 会话(Session)连接:它复用在隧道连接之上,用于表示承载在隧道连接中的每个PPP会话过程。
在同一对LAC和LNS之间可以建立多个L2TP隧道,隧道由一个控制连接和一个或多个会话连接组成。会话连接必须在隧道建立(包括身份保护、L2TP版本、帧类型、硬件传输类型等信息的交换)成功之后进行,每个会话连接对应于LAC和LNS之间的一个PPP数据流。
控制消息和PPP数据报文都在隧道上传输。L2TP使用Hello报文来检测隧道的连通性。LAC和LNS定时向对端发送Hello报文,若在一段时间内未收到Hello报文的应答,隧道断开。
L2TP隧道的建立包括以下三种典型模式。
· NAS-Intiated
如图1-4所示,由LAC端(指NAS)发起L2TP隧道连接。远程系统的拨号用户通过PPPoE/ISDN拨入LAC,由LAC通过Internet向LNS发起建立隧道连接请求。拨号用户的私网地址由LNS分配;对远程拨号用户的验证与计费既可由LAC侧代理完成,也可在LNS侧完成。
· Client-Initiated
如图1-5所示,直接由LAC客户(指本地支持L2TP协议的用户)发起L2TP隧道连接。LAC客户获得Internet访问权限后,可直接向LNS发起隧道连接请求,无需经过一个单独的LAC设备建立隧道。LAC客户的私网地址由LNS分配。
在Client-Initiated模式下,LAC客户需要具有公网地址,能够直接通过Internet与LNS通信。
图1-5 Client-Initiated L2TP隧道模式
· LAC-Auto-Initiated
采用NAS-Intiated方式建立L2TP隧道时,要求远端系统必须通过PPPoE/ISDN等拨号方式拨入LAC,且只有远端系统拨入LAC后,才能触发LAC向LNS发起建立隧道连接的请求。
在LAC-Auto-Initiated模式下,LAC上创建一个虚拟的PPP用户,执行l2tp-auto-client enable命令后,LAC将自动向LNS发起建立隧道连接的请求,为该虚拟PPP用户建立L2TP隧道。远端系统访问LNS连接的内部网络时,LAC将通过L2TP隧道转发这些访问数据。
在该模式下,远端系统和LAC之间可以是任何基于IP的连接,不局限于拨号连接。
图1-6 LAC-Auto-Initiated L2TP隧道模式
L2TP应用的典型组网如图1-7所示。
图1-7 L2TP应用的典型组网
下面以NAS-Initiated模式的L2TP隧道为例,介绍L2TP的呼叫建立流程。
图1-8 L2TP隧道的呼叫建立流程
如图1-8所示,L2TP隧道的呼叫建立流程过程为:
(1) 远端系统Host发起呼叫连接请求;
(2) Host和LAC端(Router A)进行PPP LCP协商;
(3) LAC对Host提供的用户信息进行PAP、CHAP或MS-CHAP认证;
(4) LAC将认证信息(用户名、密码)发送给RADIUS服务器进行认证;
(5) RADIUS服务器认证该用户,如果认证通过,LAC准备发起Tunnel连接请求;
(6) LAC端向指定LNS发起Tunnel连接请求;
(7) 在需要对隧道进行认证的情况下,LAC端向指定LNS发送CHAP challenge信息,LNS回送该challenge响应消息CHAP response,并发送LNS侧的CHAP challenge,LAC返回该challenge的响应消息CHAP response;
(8) 隧道验证通过;
(9) LAC端将用户CHAP response、response identifier和PPP协商参数传送给LNS;
(10) LNS将接入请求信息发送给RADIUS服务器进行认证;
(11) RADIUS服务器认证该请求信息,如果认证通过则返回响应信息;
(12) 若用户在LNS侧配置强制本端CHAP认证,则LNS对用户进行认证,发送CHAP challenge,用户侧回应CHAP response;
(13) LNS再次将接入请求信息发送给RADIUS服务器进行认证;
(14) RADIUS服务器认证该请求信息,如果认证通过则返回响应信息;
(15) 验证通过,LNS端会给远端用户分配一个企业网内部IP地址,用户即可以访问企业内部资源。
L2TP协议本身并不提供连接的安全性,但它可依赖于PPP提供的认证(比如CHAP、PAP等),因此具有PPP所具有的所有安全特性。L2TP可与IPsec结合起来实现数据安全,这使得通过L2TP所传输的数据更难被攻击。L2TP还可根据特定的网络安全要求在L2TP之上采用隧道加密技术、端对端数据加密或应用层数据加密等方案来提高数据的安全性。
L2TP传输PPP数据包,在PPP数据包内可以封装多种协议。
LAC和LNS可以将用户名和密码发往RADIUS服务器进行验证申请,RADIUS服务器负责接收用户的验证请求,完成验证。
LNS可放置于企业网的防火墙之后,它可以对远端用户的地址进行动态的分配和管理,可支持私有地址应用(RFC 1918)。为远端用户所分配的地址不是Internet地址而是企业内部的私有地址,这样方便了地址的管理并可以增加安全性。
可在LAC和LNS两处同时计费,即ISP处(用于产生帐单)及企业网关(用于付费及审计)。L2TP能够提供数据传输的出入包数、字节数以及连接的起始、结束时间等计费数据,可根据这些数据方便地进行网络计费。
L2TP协议支持备份LNS,当主LNS不可达之后,LAC可以与备份LNS建立连接,增加了VPN服务的可靠性和容错性。
PPP用户通过接入认证后,EAD服务器将对其进行安全认证。如果认证通过,用户可以正常访问网络资源;如果认证不通过,用户则只能访问隔离区的资源。
具体流程如下:
(1) iNode客户端(就是主机)通过L2TP接入到LNS设备,通过PPP认证后,CAMS/iMC服务器给设备下发隔离ACL,对报文进行入方向防火墙过滤;
(2) 通过IPCP协商后,CAMS/iMC服务器通过设备把自己的IP地址(该IP地址可以通过隔离ACL)等信息通知给iNode客户端;
(3) iNode客户端直接和CAMS/iMC服务器进行EAD认证和安全检查,通过安全检查后,CAMS/iMC服务器针对这个用户给设备下发安全ACL,使用户可以正常使用网络资源。
· 如果LNS设备上配置了EAD功能,但是没有配置好认证服务器下发的ACL号或rule,会导致认证不通过。
· 不同的主机用户ACL可以不同,设备根据不同的ACL对不同的用户进行报文过滤。
· 建议只在跨越Internet的远端客户端使用此功能,局域网用户不建议使用此功能,应该使用Portal认证。
· 关于包过滤防火墙的相关内容,请参见“安全配置指导”中的“防火墙”。
· 关于AAA和RADIUS的相关内容,请参见“安全配置指导”中的“AAA”。
· 关于Portal的相关内容,请参见“安全配置指导”中的“PORTAL”。
与L2TP相关的协议规范有:
· RFC 1661:The Point-to-Point Protocol (PPP)
· RFC 1918:Address Allocation for Private Internets
· RFC 2661:Layer Two Tunneling Protocol "L2TP"
配置L2TP时,需要执行以下操作:
(1) 根据实际组网环境,判断需要的网络设备。对于NAS-Intiated和LAC-Auto-Initiated模式,需要配置LAC和LNS两台网络设备;对于Client-Initiated模式,只需要配置LNS一台网络设备。
(2) 根据设备在网络中的角色,分别进行LAC或LNS端的相关配置,使设备具有LAC或LNS端功能。
表1-1 LAC端配置任务简介(NAS-Intiated和LAC-Auto-Initiated模式)
配置任务 |
说明 |
详细配置 |
|
配置L2TP基本功能 |
启用L2TP功能 |
必选 |
|
创建L2TP组 |
|||
配置隧道本端的名称 |
|||
配置LAC端功能 |
配置LAC发起L2TP连接请求 |
必选 |
|
配置AVP数据的隐藏传输 |
可选 |
||
配置LAC侧VPN用户的AAA认证 |
必选 |
||
配置LAC自动建立L2TP隧道 |
对于LAC-Auto-Initiated模式,为必选;NAS-Intiated模式下无需配置 |
||
配置L2TP连接参数 |
配置隧道验证 |
可选 |
|
配置隧道Hello报文发送时间间隔 |
|||
开启L2TP隧道流控功能 |
|||
强制断开指定的隧道连接 |
表1-2 LNS配置任务简介(NAS-Intiated、Client-Initiated和LAC-Auto-Initiated模式)
配置任务 |
说明 |
详细配置 |
|
配置L2TP基本功能 |
启用L2TP功能 |
必选 |
|
创建L2TP组 |
|||
配置隧道本端的名称 |
|||
配置LNS端功能 |
配置虚拟模板接口 |
必选 |
|
配置本端地址及分配的地址池 |
必选 |
||
配置LNS接收L2TP连接请求 |
必选 |
||
配置LNS侧的用户验证 |
可选 |
||
配置LNS侧VPN用户的AAA认证 |
可选 |
||
配置L2TP多实例功能 |
可选 |
||
配置LNS支持PPP LCP协商IMSI/SN号 |
可选 |
||
配置L2TP连接参数 |
配置隧道验证 |
可选 |
|
配置隧道Hello报文发送时间间隔 |
|||
开启L2TP隧道流控功能 |
|||
强制断开指定的隧道连接 |
|||
配置基于L2TP接入的EAD功能 |
可选 |
只有启用L2TP后,设备上的L2TP功能才能正常发挥作用;如果禁止L2TP,则即使配置了L2TP的参数,设备也不会提供相关功能。
为了进行L2TP的相关参数配置,还需要创建L2TP组,在L2TP组中配置L2TP的各项功能。这不仅增加了L2TP配置的灵活性,而且方便地实现了LAC和LNS之间一对一、一对多的组网应用。L2TP组在LAC和LNS上独立编号,只需要保证LAC和LNS之间关联的L2TP组的相关配置(如隧道对端名称、LNS地址等)保持对应关系即可。
隧道本端的名称在LAC和LNS进行隧道协商时使用。
表1-3 配置L2TP基本功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启用L2TP功能 |
l2tp enable |
必选 缺省情况下,L2TP功能处于关闭状态 |
创建L2TP组,并进入L2TP组视图 |
l2tp-group group-number |
必选 缺省情况下,没有创建任何L2TP组 |
配置隧道本端的名称 |
tunnel name name |
可选 缺省情况下,隧道本端的名称为系统的名称 |
LAC侧隧道名称要与LNS侧配置的接收L2TP连接请求的隧道对端名称保持一致。
L2TP用户上线时,LAC负责和相应的LNS建立隧道连接,并负责将用户报文通过隧道发送到LNS。
在L2TP的配置中,LAC端和LNS端的配置有所不同,本节介绍LAC端基本特性的配置。
进行LAC端的各项配置任务前,必须先启动L2TP、创建L2TP组。
只有在满足一定的条件下,LAC端才会向LNS服务器发出建立L2TP连接的请求。通过配置接入用户信息的判别条件,并指定相应的LNS端的IP地址,设备可以鉴别用户是否为VPN用户,并决定是否向LNS发起连接。
LAC发起L2TP连接请求时,支持两种触发条件:
· 完整的用户名(fullusername):只有接入用户的用户名与配置的完整用户名匹配时,才会向指定的LNS发起连接请求。
· 带特定域名的用户名(domain):接入用户的域名与配置的域名匹配时,即向指定的LNS发起连接请求。
表1-4 配置LAC发起L2TP连接请求
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入L2TP组视图 |
l2tp-group group-number |
- |
配置本端作为L2TP LAC端时发起呼叫的触发条件 |
start l2tp { ip ip-address }&<1-5> { domain domain-name | fullusername user-name } |
必选 |
最多可以设置五个LNS,即允许存在备用LNS。LAC按照LNS配置的先后顺序,依次向对端(LNS)进行L2TP连接请求,直到接收到某个LNS的接受应答,该LNS就成为L2TP隧道的对端。
L2TP协议的一些参数是通过AVP(Attribute Value Pair,属性值对)数据来传输的,如果用户对这些数据的安全性要求高,可以使用本配置将AVP数据的传输方式配置成为隐藏传输,即对AVP数据进行加密。
表1-5 配置AVP数据的隐藏传输
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入L2TP组视图 |
l2tp-group group-number |
- |
配置隧道采用隐藏方式传输AVP数据 |
tunnel avp-hidden |
可选 缺省情况下,隧道采用明文方式传输AVP数据 此命令需在使能了隧道验证的情况下生效 |
通过在LAC侧配置对VPN用户的AAA认证,可以对远程拨入用户的身份信息(用户名、密码)进行验证。验证通过后,才能发起建立隧道连接的请求,否则不会为用户建立隧道连接。
设备支持的AAA认证包括本地和远程两种认证方式:
· 如果选择本地认证方式,则需要在LAC侧配置本地用户名和密码。LAC通过检查用户名/密码是否与本地配置的用户名/密码相符来验证用户身份。
· 如果选择远程认证方式,则需要在RADIUS/HWTACACS服务器上配置用户名和密码。LAC将用户名和密码发往服务器进行验证申请,服务器负责验证用户身份。
表1-6 配置本地认证
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
添加本地用户并进入本地用户视图 |
local-user username |
必选 缺省情况下,LAC侧未配置本地用户名和密码 |
设置本地用户的密码 |
password { cipher | simple } password |
|
授权用户可以使用PPP服务 |
service-type ppp |
必选 |
退回系统视图 |
quit |
- |
创建一个ISP域,并进入ISP域视图 |
domain isp-name |
必选 |
配置PPP用户采用本地认证/授权/计费方案 |
authentication ppp local |
可选 缺省情况下,PPP用户采用本地认证/授权/计费方案 |
authorization ppp local |
||
accounting ppp local |
· 如果要使LAC端成功对用户进行认证,还需要在相应的LAC端的接口(例如接入用户的异步串口)下进行PPP的相关配置,具体步骤请参见“二层技术-广域网接入配置指导”中的“PPP和MP”。
· 接入用户的接口上需要配置PPP用户的验证方式为PAP、CHAP或MS-CHAP。
· 本小节只介绍本地认证方式的基本配置步骤,关于以上各配置命令的详细介绍及远程认证方式下的具体配置,请参见“安全配置指导”中的“AAA”。
采用LAC-Auto-Initiated模式建立L2TP隧道时,LAC上需要创建虚拟PPP用户,LAC的PPP验证对象为该虚拟PPP用户,即LAC同时作为PPP验证的验证方和被验证方。
配置LAC自动建立L2TP隧道,需要进行以下操作:
· 创建虚拟模板接口,并配置该接口的IP地址。
· 在虚拟模板接口下,配置PPP验证的验证方,即通过ppp authentication-mode命令指定LAC验证虚拟PPP用户时采用的验证方法。
· 在虚拟模板接口下,配置PPP验证的被验证方,即通过ppp pap或ppp chap命令指定虚拟PPP用户支持的验证方法、虚拟PPP用户的用户名和密码。其中,虚拟PPP用户支持的验证方法,必须与LAC验证虚拟PPP用户时采用的验证方法保持一致。
· 配置LAC侧VPN用户的AAA认证,配置的用户名和密码必须与虚拟模板接口下配置的虚拟PPP用户的用户名和密码一致。
· 触发LAC建立L2TP隧道。
表1-7 配置LAC自动建立L2TP隧道
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建并进入虚拟模板接口 |
interface virtual-template virtual-template-number |
必选 缺省情况下,系统没有创建虚拟模板接口 |
|
配置虚拟模板接口的IP地址 |
ip address address mask |
二者必选其一 缺省情况下,没有配置接口的IP地址 |
|
配置虚拟模板接口的IP地址可协商属性,使该接口接受PPP协商产生的由对端分配的IP地址 |
ip address ppp-negotiate |
||
配置LAC验证虚拟PPP用户的验证方式 |
ppp authentication-mode { chap | pap } * [ domain isp-name ] |
必选 缺省情况下,PPP协议不进行验证 |
|
配置采用PAP认证时,虚拟PPP用户使用的用户名和密码 |
ppp pap local-user username password { cipher | simple } password |
必选 缺省情况下,虚拟PPP用户使用的PAP用户名和密码均为空 |
根据配置的LAC验证虚拟PPP用户的验证方式,选择其一 |
配置采用CHAP认证时,虚拟PPP用户使用的用户名 |
ppp chap user username |
必选 缺省情况下,虚拟PPP用户使用的CHAP用户名和密码均为空 |
|
配置采用CHAP认证时,虚拟PPP用户使用的密码 |
ppp chap password { cipher | simple } password |
||
配置LAC侧VPN用户的AAA认证 |
详细配置方法请参见“1.4.3 配置LAC侧VPN用户的AAA认证” |
必选 |
|
触发LAC自动建立L2TP隧道 |
l2tp-auto-client enable |
必选 缺省情况下,LAC没有建立L2TP隧道 |
· interface virtual-template、ppp authentication-mode、ppp pap和ppp chap命令的详细介绍,请参见“二层技术-广域网接入命令参考”中的“PPP和MP”。
· 触发LAC建立L2TP隧道后,该隧道将始终存在,直到通过undo l2tp-auto-client enable命令拆除该隧道。
LNS响应LAC的隧道建立请求,负责对用户进行认证,并为用户分配IP地址。
在L2TP的配置中,LAC端和LNS端的配置有所不同,本节介绍LNS端基本特性的配置。
进行LNS端的各项配置任务前,必须先启动L2TP、创建L2TP组。
虚拟模板接口主要用于配置设备在运行过程中动态创建的虚拟访问接口的工作参数,如MP捆绑逻辑接口和L2TP逻辑接口等。
L2TP会话连接建立之后,需要创建一个虚拟访问接口用于和对端交换数据。LNS可以使用不同的虚拟访问接口与不同的LAC交换数据。配置LNS接收L2TP连接请求时需要指定虚拟模板接口,系统根据该虚拟模板接口的配置参数,动态地创建一个虚拟访问接口。
表1-8 配置虚拟模板接口
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚拟模板接口视图 |
interface virtual-template virtual-template-number |
必选 缺省情况下,系统没有创建虚拟模板接口 |
当LAC与LNS之间的L2TP隧道连接建立之后,LNS需要为VPN用户分配IP地址。地址分配包括两种方式:指定地址池或直接配置IP地址。在指定地址池之前,需要在系统视图或ISP域视图下用ip pool命令先定义一个地址池。对于需要进行认证的VPN用户,使用ISP域视图下的地址池分配IP地址;对于不需要进行认证的VPN用户,则使用系统视图下定义的全局地址池分配IP地址。
关于ip pool命令的详细描述,请参见“安全命令参考”中的“AAA”。
表1-9 配置本端地址及分配的地址池
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚拟模板接口视图 |
interface virtual-template virtual-template-number |
- |
配置本端IP地址 |
ip address ip-address { mask | mask-length } [ sub ] |
必选 |
配置本端对PPP用户进行验证 |
ppp authentication-mode { chap | ms-chap | pap } * [ [ call-in ] domain isp-name ] |
可选 缺省情况下,不进行认证 |
指定给PPP用户分配地址所用的地址池或直接给PPP用户分配IP地址 |
remote address { pool [ pool-number ] | ip-address } |
可选 缺省情况下,从地址池0(缺省地址池)中给PPP用户分配地址 |
接收到LAC发来的创建隧道请求后,LNS需要检查LAC的名称是否与合法隧道对端名称相符合,从而决定是否允许隧道对方创建隧道,及创建虚拟访问接口时使用的虚拟模板接口。
表1-10 配置LNS接收L2TP连接请求
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入L2TP组视图 |
l2tp-group group-number |
- |
|
L2TP组号不为1 |
allow l2tp virtual-template virtual-template-number remote remote-name [ domain domain-name ] |
二者必选其一 缺省情况下,禁止接受呼入 使用L2TP组号1时,可以不指定隧道对端名,即在组1下任何名字的对端都能发起隧道请求 |
|
L2TP组号为1(缺省的L2TP组号) |
allow l2tp virtual-template virtual-template-number [ remote remote-name ] [ domain domain-name ] |
· 命令start l2tp和allow l2tp是互斥的,配了一条命令之后另一条就自动失效。
· LNS侧接收L2TP连接请求的隧道对端名称要与LAC侧配置的隧道名称保持一致。
当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验证,则LNS对用户进行CHAP验证。
· 如果既不配置LCP重协商,也不配置强制CHAP验证,则LNS对用户进行的是代理验证。
配置强制本端CHAP验证,则对于由NAS初始化(NAS-Initiated)隧道连接的VPN用户端来说,会经过两次验证:一次是用户端在接入服务器端的验证,另一次是用户端在LNS端的CHAP验证。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入L2TP组视图 |
l2tp-group group-number |
- |
配置强制LNS与用户端之间重新进行CHAP验证 |
mandatory-chap |
必选 缺省情况下,系统不进行CHAP的重新验证 |
一些PPP用户端可能不支持进行第二次验证,这时,本端的CHAP验证会失败。
对于由NAS初始化(NAS-Initiated)隧道连接的PPP用户端,在PPP会话开始时,用户先和NAS进行PPP协商。若协商通过,则由NAS初始化L2TP隧道连接,并将用户信息传递给LNS,由LNS根据收到的代理验证信息,判断用户是否合法。
但在某些特定的情况下(如在LNS侧也要进行验证与计费),需要强制LNS与用户间重新进行LCP协商,并采用相应的虚拟模板接口上配置的验证方式对用户进行验证。
启用LCP重协商后,如果相应的虚拟模板接口上没有配置验证,则LNS将不对接入用户进行二次验证(这时用户只在LAC侧接受一次验证),直接将全局地址池的地址分配给PPP用户端。
表1-12 配置强制本端LCP重新协商
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入L2TP组视图 |
l2tp-group group-number |
- |
配置强制LNS与用户端之间重新进行LCP的协商 |
mandatory-lcp |
必选 缺省情况下,系统不重新进行LCP协商 |
LNS采用代理验证和强制CHAP验证方式认证用户时,需要在LNS侧配置AAA认证;LNS采用强制LCP重协商方式认证用户,且虚拟模板接口上配置需要对PPP用户进行验证时,也需要在LNS侧配置AAA认证。
通过在LNS侧配置对VPN用户的AAA认证,可以再次对远程拨入用户的身份信息(用户名、密码)进行验证,验证通过后就可以进行VPN用户和LNS的通信,否则将清除此L2TP连接。
LNS侧支持的AAA配置与LAC侧的相同,具体介绍及配置方法请参见“1.4.3 配置LAC侧VPN用户的AAA认证”。
如果不同的企业共用一台LNS设备,且采用相同的LAC隧道对端名,那么LNS将不能够区分用户属于哪个企业。在这种情况下,只有在设备上启用L2TP多实例功能,该设备才能同时作为多个VPN域的LNS,实现多个企业共用一台LNS设备。
在L2TP多实例应用中,执行allow l2tp virtual-template命令时,必须通过domain参数指定发起连接的VPN用户所属的域。L2TP隧道建立成功后,LNS获取会话协商报文中携带的域名,并在本地配置的VPN用户所属域中查找与其相同的域名。如果存在隧道对端名称和域名均匹配的L2TP组,则根据该L2TP组的配置信息建立会话,从而实现为不同域的VPN用户建立不同的会话。
表1-13 配置L2TP多实例功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启用L2TP多实例功能 |
l2tpmoreexam enable |
必选 缺省情况下,L2TP多实例功能处于关闭状态 |
在L2TP多实例的应用中,如果LNS侧不同L2TP组中配置了相同的隧道对端名称,则L2TP组的隧道验证配置也必须相同,否则会因为隧道验证密钥不一致造成隧道和会话建立失败。
表1-14 配置LNS支持PPP LCP协商IMSI/SN号(LNS端)
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚拟模板接口视图 |
interface virtual-template virtual-template-number |
必选 缺省情况下,系统没有创建虚拟模板接口 |
配置发起IMSI/SN捆绑协商请求 |
ppp lcp { imsi | sn } request |
必选 缺省情况下,未发起IMSI/SN捆绑协商请求 |
配置协商时拆分对端用户名使用的分隔符 |
ppp user accept-format imsi-sn split splitchart |
可选 缺省情况下,未配置协商时拆分对端用户名使用的分隔符 如果协商认证时没有协商到对端的IMSI/SN信息,则使用拆分出来的IMSI/SN信息。 |
配置使用IMSI/SN信息替换用户名进行认证 |
ppp user replace { imsi | sn } |
可选 缺省情况下,使用用户名进行认证 |
表1-15 配置LNS支持PPP LCP协商IMSI/SN号(Client端)
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入虚拟模板接口视图 |
interface virtual-template virtual-template-number |
必选 缺省情况下,系统没有创建虚拟模板接口 |
配置接受LNS侧IMSI/SN捆绑协商请求 |
ppp lcp { imsi | sn } accept |
必选 缺省情况下,不接受IMSI/SN捆绑协商请求 |
配置IMSI/SN信息 |
ppp lcp { imsi | sn } string info |
可选 缺省情况下,自动从设备获取IMSI/SN信息 |
配置协商认证时用户名发送格式 |
ppp user attach-format imsi-sn split splitchart |
可选 缺省情况下,未配置协商认证时用户名发送格式 |
本节介绍L2TP连接的可选配置,这些配置在设备作为LAC、LNS时均可使用。
L2TP连接的可选配置包括隧道验证、Hello报文发送时间间隔、开启L2TP隧道流控功能等。
用户可根据实际需要,决定是否在创建隧道连接之前启用隧道验证。
隧道验证请求可由LAC或LNS任何一侧发起。只要有一方启用了隧道验证,则只有在对端也启用了隧道验证,两端密钥完全一致并且不为空的情况下,隧道才能建立;否则本端将自动将隧道连接断开。
若隧道两端都配置了禁止隧道验证,隧道验证的密钥一致与否将不起作用。
表1-16 配置隧道验证
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入L2TP组视图 |
l2tp-group group-number |
- |
启用L2TP的隧道验证功能 |
tunnel authentication |
可选 缺省情况下,L2TP隧道进行验证功能处于开启状态 |
配置隧道验证时的密钥 |
tunnel password { cipher | simple } password |
必选 缺省情况下,系统的隧道验证密钥为空 |
为了保证隧道安全,建议用户最好不要禁用隧道验证的功能。如果用户需要修改隧道验证的密钥,请在隧道完全拆除后进行,否则修改的密钥不生效。
为了检测LAC和LNS之间隧道的连通性,LAC和LNS会定期向对端发送Hello报文,接收方接收到Hello报文后会进行响应。当LAC或LNS在指定时间间隔内未收到对端的Hello响应报文时,重复发送,如果重复发送3次仍没有收到对端的响应信息则认为L2TP隧道已经断开,需要在LAC和LNS之间重新建立隧道连接。
表1-17 配置隧道Hello报文发送时间间隔
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入L2TP组视图 |
l2tp-group group-number |
- |
配置隧道Hello报文发送时间间隔 |
tunnel timer hello hello-interval |
可选 缺省情况下,隧道中Hello报文的发送时间间隔为60秒 |
L2TP隧道的流控功能应用在数据报文的接收与发送过程中。使用流控功能后,会对接收到的乱序报文进行缓存和调整。
表1-18 开启L2TP隧道流控功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入L2TP组视图 |
l2tp-group group-number |
- |
开启L2TP隧道流控功能 |
tunnel flow-control |
可选 缺省情况下,L2TP隧道流控功能处于关闭状态 |
当用户数为零或网络发生故障时,可以通过本配置强制断开指定的隧道连接。LAC和LNS任何一端都可主动发起断开连接的请求,连接断开后,该隧道上的控制连接与所有会话连接也将被清除。当有新用户拨入时,还可以重新建立连接。
表1-19 强制断开指定的隧道连接
配置步骤 |
命令 |
说明 |
强制断开指定的隧道连接 |
reset l2tp tunnel { id tunnel-id | name remote-name } |
可选 该配置在用视图下执行 |
完成AAA、RADIUS、L2TP、包过滤防火墙及PPP的相关配置。
表1-1 配置基于L2TP接入的EAD功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入虚拟模板接口 |
interface virtual-template virtual-template-number |
必选 |
开启基于L2TP接入的EAD功能 |
ppp access-control enable |
必选 缺省情况下,关闭基于L2TP接入的EAD功能 |
配置VT接口下所有VA包过滤防火墙的分片匹配模式 |
ppp access-control match-fragments { exactly | normally } |
可选 缺省情况下,VT接口下所有VA包过滤防火墙的分片匹配模式为标准模式 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后L2TP的运行情况,通过查看显示信息验证配置的效果。
表1-20 L2TP显示和维护
操作 |
命令 |
显示当前L2TP隧道的信息 |
display l2tp tunnel [ | { begin | exclude | include } regular-expression ] |
显示当前L2TP会话的信息 |
display l2tp session [ | { begin | exclude | include } regular-expression ] |
显示VT接口产生的VA接口动态防火墙的统计信息 |
display ppp access-control { interface interface-type interface-number } [ | { begin | exclude | include } regular-expression ] |
VPN用户访问公司总部过程如下:
(1) 用户以普通的上网方式进行拨号上网。
(2) 在NAS处对此用户进行验证,发现是VPN用户,则由接入服务器向LNS发起隧道连接的请求。
(3) 在接入服务器与LNS建立隧道后,接入服务器把与VPN用户已经协商的内容作为报文内容传给LNS。
(4) LNS再根据预协商的内容决定是否接受此连接。
(5) 用户与公司总部间的通信都通过接入服务器与LNS之间的隧道进行传输。
(1) LAC侧的配置
在NAS上配置:
# 配置各接口的IP地址(略)。
# 设置用户名、密码及服务类型。
<LAC> system-view
[LAC] local-user vpdnuser
[LAC-luser-vpdnuser] password simple Hello
[LAC-luser-vpdnuser] service-type ppp
[LAC-luser-vpdnuser] quit
# 在Async1/0接口上配置IP地址。
[LAC] interface async 1/0
[LAC-Async1/0] ip address 1.1.1.1 255.255.255.0
[LAC-Async1/0] ppp authentication-mode chap
[LAC-Async1/0] quit
# 启用L2TP服务。
[LAC] l2tp enable
# 设置一个L2TP组,并配置相关属性。
[LAC] l2tp-group 1
[LAC-l2tp1] tunnel name LAC
[LAC-l2tp1] start l2tp ip 1.1.2.2 fullusername vpdnuser
# 启用通道验证并设置通道验证密钥。
[LAC-l2tp1] tunnel authentication
[LAC-l2tp1] tunnel password simple aabbcc
(2) LNS侧的配置
# 配置各接口的IP地址。(略)
# 设置用户名、密码及服务类型(应与用户侧的设置一致)。
<LNS> system-view
[LNS] local-user vpdnuser
[LNS-luser-vpdnuser] password simple Hello
[LNS-luser-vpdnuser] service-type ppp
[LNS-luser-vpdnuser] quit
# 对VPN用户采用本地验证。
[LNS] domain system
[LNS-isp-system] authentication ppp local
[LNS-isp-system] ip pool 1 192.168.0.2 192.168.0.100
[LNS-isp-system] quit
# 启用L2TP服务。
[LNS] l2tp enable
# 配置虚模板Virtual-Template的相关信息。
[LNS] interface virtual-template 1
[LNS-virtual-template1] ip address 192.168.0.1 255.255.255.0
[LNS-virtual-template1] ppp authentication-mode chap domain system
[LNS-virtual-template1] remote address pool 1
[LNS-virtual-template1] quit
# 设置一个L2TP组,指定接收呼叫的虚拟模板接口,配置LNS侧的隧道对端名称。
[LNS] l2tp-group 1
[LNS-l2tp1] tunnel name LNS
[LNS-l2tp1] allow l2tp virtual-template 1 remote LAC
# 启用隧道验证并设置隧道验证密钥。
[LNS-l2tp1] tunnel authentication
[LNS-l2tp1] tunnel password simple aabbcc
(3) 用户侧的配置
在用户侧配置拨号连接,在拨号网络窗口中输入用户名vpdnuser和密码Hello进行拨号。
(4) 验证配置结果
# 用户拨号连接成功后,获取到IP地址192.168.0.2,并可以ping通LNS的私网地址192.168.0.1。
# 在LNS侧,通过命令display l2tp tunnel可查看建立的L2TP隧道。
[LNS] dis l2tp tunnel
Total tunnel = 1
LocalTID RemoteTID RemoteAddress Port Sessions RemoteName
1 1 1.1.2.1 1701 1 LAC
# 在LNS侧,通过命令display l2tp session可查看建立的L2TP会话。
[LNS] display l2tp session
Total session = 1
LocalSID RemoteSID LocalTID
23142 729 1
VPN用户访问公司总部过程如下:
(1) 配置用户侧主机的IP地址和路由,确保用户侧主机和LNS之间路由可达。
(2) 由用户向LNS发起Tunnel连接的请求。
(3) 在LNS接受此连接请求之后,VPN用户与LNS之间就建立了一条虚拟的L2TP tunnel。
(4) 用户与公司总部间的通信都通过VPN用户与LNS之间的隧道进行传输。
(1) LNS侧的配置
# 配置接口的IP地址。(略)
# 配置路由,使得LNS与用户侧主机之间路由可达。(略)
# 设置用户名、密码及服务类型(应与用户侧的设置一致)。
<LNS> system-view
[LNS] local-user vpdnuser
[LNS-luser-vpdnuser] password simple Hello
[LNS-luser-vpdnuser] service-type ppp
[LNS-luser-vpdnuser] quit
# 对VPN用户采用本地验证。
[LNS] domain system
[LNS-isp-system] authentication ppp local
[LNS-isp-system] ip pool 1 192.168.0.2 192.168.0.100
[LNS-isp-system] quit
# 启用L2TP服务。
[LNS] l2tp enable
# 配置虚模板Virtual-Template的相关信息。
[LNS] interface virtual-template 1
[LNS-virtual-template1] ip address 192.168.0.1 255.255.255.0
[LNS-virtual-template1] ppp authentication-mode chap domain system
[LNS-virtual-template1] remote address pool 1
[LNS-virtual-template1] quit
# 设置一个L2TP组,指定接收呼叫的虚拟模板接口。
[LNS] l2tp-group 1
[LNS-l2tp1] tunnel name LNS
[LNS-l2tp1] allow l2tp virtual-template 1
(2) 用户侧的配置
配置用户侧主机的IP地址为2.1.1.1,并配置路由,使得用户侧主机与LNS(IP地址为1.1.2.2)之间路由可达。
在用户侧主机上利用Windows系统创建虚拟专用网络连接,或安装L2TP客户端软件,如WinVPN Client。
在用户侧主机上进行如下配置(设置的过程与相应的客户端软件有关,以下为设置的内容):
# 在用户侧设置VPN用户名为vpdnuser,密码为Hello。
# 将LNS的IP地址设为安全网关的Internet接口地址(本例中LNS侧与隧道相连接的以太网接口的IP地址为1.1.2.2)。
# 修改连接属性,将采用的协议设置为L2TP,将加密属性设为自定义,并选择CHAP验证。
(3) 验证配置结果
# 在用户侧主机上开启L2TP连接。连接成功后,用户主机获取到IP地址192.168.0.2,并可以ping通LNS的私网地址192.168.0.1。
# 在LNS侧,通过命令display l2tp session可查看建立的L2TP会话。
[LNS-l2tp1] display l2tp session
Total session = 1
LocalSID RemoteSID LocalTID
647 1 1
# 在LNS侧,通过命令display l2tp tunnel可查看建立的L2TP隧道。
[LNS-l2tp1] display l2tp tunnel
Total tunnel = 1
LocalTID RemoteTID RemoteAddress Port Sessions RemoteName
1 5 2.1.1.1 1701 1 l2tpuser
VPN用户访问公司总部过程如下:
(1) LAC上创建虚拟PPP用户,LAC自动向LNS发起建立隧道连接的请求,为该虚拟PPP用户建立L2TP隧道。
(2) VPN用户通过LAN将访问公司总部的报文发送给LAC。
(3) LAC封装该报文,并通过已经建立的L2TP隧道将报文发送给LNS,VPN用户与公司总部间的通信都通过LAC与LNS之间的隧道进行传输。
图1-11 LAC-Auto-Initiated VPN组网图
(1) LNS侧的配置
# 配置各接口的IP地址(略)。
# 创建本地用户,配置用户名、密码及服务类型。
<LNS> system-view
[LNS] local-user vpdnuser
[LNS-luser-vpdnuser] password simple Hello
[LNS-luser-vpdnuser] service-type ppp
[LNS-luser-vpdnuser] quit
# 配置虚拟模板接口Virtual-Template1的相关信息。
[LNS] interface virtual-template 1
[LNS-virtual-template1] ip address 192.168.0.20 255.255.255.0
[LNS-virtual-template1] remote address pool 1
[LNS-virtual-template1] ppp authentication-mode pap
[LNS-virtual-template1] quit
# 对VPN用户采用本地验证。
[LNS] domain system
[LNS-isp-system] authentication ppp local
[LNS-isp-system] ip pool 1 192.168.0.2 192.168.0.100
[LNS-isp-system] quit
# 启用L2TP服务,并设置一个L2TP组。
[LNS] l2tp enable
[LNS] l2tp-group 1
# 配置LNS侧本端名称及接收的通道对端名称。
[LNS-l2tp1] tunnel name LNS
[LNS-l2tp1] allow l2tp virtual-template 1 remote LAC
# 启用通道验证并设置通道验证密钥。
[LNS-l2tp1] tunnel authentication
[LNS-l2tp1] tunnel password simple aabbcc
[LNS-l2tp1] quit
# 配置私网路由,访问VPN用户的报文将通过L2TP隧道转发。
[LNS] ip route-static 10.2.0.0 16 virtual-template 1
(2) LAC侧的配置
# 配置各接口的IP地址(略)。
# 启用L2TP服务,并设置一个L2TP组。
<LAC> system-view
[LAC] l2tp enable
[LAC] l2tp-group 1
# 配置LAC侧本端名称,配置对端LNS的IP地址。
[LAC-l2tp1] tunnel name LAC
[LAC-l2tp1] start l2tp ip 3.3.3.2 fullusername vpdnuser
# 启用通道验证并设置通道验证密钥。
[LAC-l2tp1] tunnel authentication
[LAC-l2tp1] tunnel password simple aabbcc
[LAC-l2tp1] quit
# 配置虚拟PPP用户的用户名和密码,及PPP验证方式为PAP。
[LAC] interface virtual-template 1
[LAC-Virtual-Template1] ip address ppp-negotiate
[LAC-Virtual-Template1] ppp pap local-user vpdnuser password simple Hello
[LAC-Virtual-Template1] ppp authentication-mode pap
[LAC-Virtual-Template1] quit
# 配置私网路由,访问公司总部的报文将通过L2TP隧道转发。
[LAC] ip route-static 10.1.0.0 16 virtual-template 1
# 创建本地用户,配置用户名、密码及服务类型。
[LAC] local-user vpdnuser
[LAC-luser-vpdnuser] password simple Hello
[LAC-luser-vpdnuser] service-type ppp
# 触发LAC建立L2TP隧道。
[LAC] interface virtual-template 1
[LAC-virtual-template1] l2tp-auto-client enable
LAC和LNS连接的私网主机应分别将LAC和LNS设置为网关。
(3) 验证配置结果
# 在LNS侧,通过命令display l2tp session可查看建立的L2TP会话。
[LNS] display l2tp session
Total session = 1
LocalSID RemoteSID LocalTID
8279 6822 1
# 在LNS侧,通过命令display l2tp tunnel可查看建立的L2TP隧道。
[LNS] display l2tp tunnel
Total tunnel = 1
LocalTID RemoteTID RemoteAddress Port Sessions RemoteName
1 1 3.3.3.1 1701 1 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: 56 data bytes, press CTRL_C to break
Reply from 10.2.0.1: bytes=56 Sequence=1 ttl=255 time=2 ms
Reply from 10.2.0.1: bytes=56 Sequence=2 ttl=255 time=2 ms
Reply from 10.2.0.1: bytes=56 Sequence=3 ttl=255 time=2 ms
Reply from 10.2.0.1: bytes=56 Sequence=4 ttl=255 time=2 ms
Reply from 10.2.0.1: bytes=56 Sequence=5 ttl=255 time=2 ms
--- 10.2.0.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/2 ms
· 多个企业共用一个LNS,且采用相同的LAC隧道对端名称,不同的企业用户需要与自己的总部进行通讯,网络的地址采用的是私有地址。
· 一般情况下,用户无法通过Internet直接访问企业内部的服务器。通过建立VPN并支持多域,用户就可以访问自己企业内部网络的数据。
图1-12 L2TP支持多域组网图
企业1的域名为aaa.net,Host A为企业1用户;
企业2的域名为bbb.net,Host B为企业2用户。
(1) LAC侧的配置
(本例中LAC侧的Ethernet1/1和Ethernet1/3是用户接入接口,LAC侧与隧道相连接的Ethernet1/2的IP地址为1.1.2.1,LNS侧与隧道相连接的Ethernet1/1的IP地址为1.1.2.2。)
# 设置用户名、密码及服务类型。
<LAC> system-view
[LAC] local-user vpdn1
[LAC-luser-vpdn1] password simple 11111
[LAC-luser-vpdn1] service-type ppp
[LAC-luser-vpdn1] quit
[LAC] local-user vpdn2
[LAC-luser-vpdn2] password simple 22222
[LAC-luser-vpdn2] service-type ppp
[LAC-luser-vpdn2] quit
# 配置域用户采用本地认证。
[LAC] domain aaa.net
[LAC-isp-aaa.net] authentication ppp local
[LAC-isp-aaa.net] quit
[LAC] domain bbb.net
[LAC-isp-bbb.net] authentication ppp local
[LAC-isp-bbb.net] quit
# 在Ethernet1/1和Ethernet1/3接口上配置PPPoE server。
[LAC] interface ethernet 1/3
[LAC-Ethernet1/3] pppoe-server bind virtual-template 100
[LAC-Ethernet1/3] quit
[LAC] interface ethernet 1/1
[LAC-Ethernet1/1] pppoe-server bind virtual-template 101
[LAC-Ethernet1/1] quit
# 在Ethernet1/2接口上配置IP地址。
[LAC] interface ethernet 1/2
[LAC-Ethernet1/2] ip address 1.1.2.1 255.255.255.0
[LAC-Ethernet1/2] quit
# 在虚模板上启动CHAP认证。
[LAC] interface virtual-template 100
[LAC-Virtual-Template100] ppp authentication-mode chap domain aaa.net
[LAC-Virtual-Template100] quit
[LAC] interface virtual-template 101
[LAC-Virtual-Template101] ppp authentication-mode chap domain bbb.net
[LAC-Virtual-Template101] quit
# 设置两个L2TP组并配置相关属性。
[LAC] l2tp enable
[LAC] l2tp-group 1
[LAC-l2tp1] tunnel name LAC-1
[LAC-l2tp1] start l2tp ip 1.1.2.2 domain aaa.net
[LAC-l2tp1] quit
[LAC] l2tp-group 2
[LAC-l2tp2] tunnel name LAC-1
[LAC-l2tp2] start l2tp ip 1.1.2.2 domain bbb.net
# 启用隧道验证并设置隧道验证密钥。
[LAC-l2tp2] tunnel authentication
[LAC-l2tp2] tunnel password simple 12345
[LAC-l2tp2] quit
[LAC] l2tp-group 1
[LAC-l2tp1] tunnel authentication
[LAC-l2tp1] tunnel password simple 12345
(2) LNS侧的配置
# 使能L2TP功能。
<LNS> system-view
[LNS] l2tp enable
# 使能L2TP多实例功能。
[LNS] l2tpmoreexam enable
# 创建两个用户名,并设置密码及服务类型。
[LNS] local-user vpdn1
[LNS-luser-vpdn1] password simple 11111
[LNS-luser-vpdn1] service-type ppp
[LNS-luser-vpdn1] quit
[LNS] local-user vpdn2
[LNS-luser-vpdn2] password simple 22222
[LNS-luser-vpdn2] service-type ppp
[LNS-luser-vpdn2] quit
# 配置LNS侧与隧道相连接的Ethernet1/1的IP地址为1.1.2.2。
[LNS] interface ethernet 1/1
[LNS-Ethernet1/1] ip address 1.1.2.2 255.255.255.0
[LNS-Ethernet1/1] quit
# 创建两个地址池。
[LNS] domain aaa.net
[LNS-isp-aaa.net] authentication ppp local
[LNS-isp-aaa.net] ip pool 1 10.0.1.10 10.0.1.100
[LNS-isp-aaa.net] quit
[LNS] domain bbb.net
[LNS-isp-bbb.net] authentication ppp local
[LNS-isp-bbb.net] ip pool 1 10.0.2.10 10.0.2.100
[LNS-isp-bbb.net] quit
# 创建两个相应的virtual template。
[LNS] interface virtual-template 1
[LNS-Virtual-Template1] ip address 10.0.1.1 255.255.255.0
[LNS-Virtual-Template1] remote address pool 1
[LNS-Virtual-Template1] ppp authentication-mode chap domain aaa.net
[LNS-Virtual-Template1] quit
[LNS] interface virtual-template 2
[LNS-Virtual-Template2] ip address 10.0.2.1 255.255.255.0
[LNS-Virtual-Template2] remote address pool 1
[LNS-Virtual-Template2] ppp authentication-mode chap domain bbb.net
[LNS-Virtual-Template2] quit
# 创建两个相应的L2TP-group组。
[LNS] l2tp-group 3
[LNS-l2tp3] tunnel name LNS
[LNS-l2tp3] tunnel authentication
[LNS-l2tp3] allow l2tp virtual-template 1 remote LAC-1 domain aaa.net
[LNS-l2tp3] tunnel password simple 12345
[LNS-l2tp3] quit
[LNS] l2tp-group 4
[LNS-l2tp4] tunnel name LNS
[LNS-l2tp4] tunnel authentication
[LNS-l2tp4] allow l2tp virtual-template 2 remote LAC-1 domain bbb.net
[LNS-l2tp4] tunnel password simple 12345
上述配置中,如果LNS端需要采用RADIUS验证,请修改AAA配置即可。关于AAA的具体配置请参见“安全配置指导”中的“AAA”。
(3) 用户侧的配置
在用户侧配置拨号连接。
对于Host A,在弹出的拨号终端窗口中输入用户名[email protected],密码为11111。
对于Host B,在弹出的拨号终端窗口中输入用户名[email protected],密码为22222。
(4) 验证配置结果
# 企业1用户拨号连接成功后,Host A获取IP地址10.0.1.10,并可以ping通LNS的私网地址10.0.1.1。
# 企业2用户拨号连接成功后,Host B获取IP地址10.0.2.10,并可以ping通LNS的私网地址10.0.2.1。
# 在LNS侧,通过命令display l2tp session可查看建立的L2TP会话。
[LNS-l2tp1] display l2tp session
Total session = 2
LocalSID RemoteSID LocalTID
17345 4351 1
23914 10923 2
# 在LNS侧,通过命令display l2tp tunnel可查看建立的L2TP隧道。
[LNS-l2tp1] display l2tp tunnel
Total tunnel = 2
LocalTID RemoteTID RemoteAddress Port Sessions RemoteName
1 1 1.1.2.1 1701 1 LAC-1
2 2 1.1.2.1 1701 1 LAC-1
安全网关支持同时作为LAC及LNS,并支持同时有多路用户呼入;只要内存及线路不受限制,L2TP可以同时接收和发起多个呼叫。这些复杂组网的需求及配置可以综合参考以上的几种组网情况,综合应用。
特别需要注意的是静态路由的配置,许多应用是依靠路由来发起的。
VPN创建连接的过程比较复杂,这里就几种常见的情况进行分析。在进行VPN排错之前,请先确认LAC与LNS已在公共网上建立了正确的连接。
用户登录失败
用户登录失败主要有以下几种原因:
(1) Tunnel建立失败,Tunnel不能建立的原因有:
· 在LAC端,LNS的地址设置不正确。
· LNS(通常为路由器)端没有设置可以接收该隧道对端的L2TP组,具体可以查看allow命令的说明。
· Tunnel验证不通过,如果配置了验证,应该保证双方都启用了隧道验证并且配置的隧道密钥一致。
· 如果是本端强制挂断了连接,但由于网络传输时延等原因,对端还没有收到相应的Disconnect报文,此时对端发起的隧道连接无法成功建立。
(2) PPP协商不通过,可能原因有:
· LAC端设置的用户名与密码有误,或者是LNS端没有设置相应的用户。
· LNS端不能分配地址,比如地址池设置的较小,或没有进行设置。
· 密码验证类型不一致。如Windows 2000所创建的VPN连接缺省的验证类型为MSCHAP,如果对端不支持MSCHAP,建议改为CHAP。
数据传输失败,在建立连接后数据不能传输,如Ping不通对端。
可能有如下原因:
(1) 路由问题:LAC和LNS上需要存在到达对端私网的路由,否则会导致数据传输失败。在LAC和LNS上执行display ip routing-table命令,查看设备上是否存在到达对端私网的路由。若不存在,则需要配置静态路由或动态路由协议,在设备上添加该路由。
(2) 网络拥挤:Internet主干网产生拥挤,丢包现象严重。L2TP是基于UDP进行传输的,UDP不对报文进行差错控制。如果是在线路质量不稳定的情况下进行L2TP应用,有可能会产生Ping不通对端的情况。
PPP用户通过接入认证后,EAD服务器将对其进行安全认证。如果认证通过,用户可以正常访问网络资源;如果认证不通过,用户则只能访问隔离区的资源。
具体流程如下:
(1) iNode客户端(就是主机)通过L2TP接入到LNS设备,通过PPP认证后,CAMS/iMC服务器给设备下发隔离ACL,对报文进行入方向防火墙过滤;
(2) 通过IPCP协商后,CAMS/iMC服务器通过设备把自己的IP地址(该IP地址可以通过隔离ACL)等信息通知给iNode客户端;
(3) iNode客户端直接和CAMS/iMC服务器进行EAD认证和安全检查,通过安全检查后,CAMS/iMC服务器针对这个用户给设备下发安全ACL,使用户可以正常使用网络资源。
· 如果LNS设备上配置了EAD功能,但是没有配置好认证服务器下发的ACL号或rule,会导致认证不通过。
· 不同的主机用户ACL可以不同,设备根据不同的ACL对不同的用户进行报文过滤。
· 建议只在跨越Internet的远端客户端使用此功能,局域网用户不建议使用此功能,应该使用Portal认证。
· 关于包过滤防火墙的相关内容,请参见“安全配置指导”中的“防火墙”。
· 关于AAA和RADIUS的相关内容,请参见“安全配置指导”中的“AAA”。
· 关于Portal的相关内容,请参见“安全配置指导”中的“PORTAL”。
完成AAA、RADIUS、L2TP、包过滤防火墙及PPP的相关配置。
表2-1 配置基于L2TP接入的EAD功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入虚拟模板接口 |
interface virtual-template virtual-template-number |
必选 |
开启基于L2TP接入的EAD功能 |
ppp access-control enable |
必选 缺省情况下,关闭基于L2TP接入的EAD功能 |
配置VT接口下所有VA包过滤防火墙的分片匹配模式 |
ppp access-control match-fragments { exactly | normally } |
可选 缺省情况下,VT接口下所有VA包过滤防火墙的分片匹配模式为标准模式 |
在完成上述配置后,在任意视图下执行display命令可以显示配置基于L2TP接入的EAD功能后的运行情况,通过查看显示信息验证配置的效果。
表2-2 基于L2TP接入的EAD功能的显示和维护
操作 |
命令 |
显示VT接口产生的VA接口动态防火墙的统计信息 |
display ppp access-control { interface interface-type interface-number } [ | { begin | exclude | include } regular-expression ] |
在图2-1中,通过对Router进行配置实现EAD功能。
· Host和LNS通过L2TP隧道进行三层互通(公网)。
· 公司内部局域网使用10.100.0.0/24网段。
· 安全策略服务器、RADIUS服务器统一由CAMS/iMC平台来实现,其IP地址是10.110.91.146/24。
· 病毒补丁服务器位于隔离区,IP地址为10.22.2.2/24。
· 客户端管理代理位于隔离区,IP地址为10.22.2.1/24。
· 用户通过Host与LNS建立L2TP连接后,LNS为用户分配10.200.1.0/24网段的IP地址。
· 如果用户没有通过安全认证,则只能访问病毒补丁服务器;只有用户通过安全认证后,才能够访问其它网络资源。
图2-1 基于L2TP接入的EAD功能的典型配置举例
(1) 配置Router
# 配置连接CAMS/iMC服务器的接口Ethernet1/1的IP地址。
<Router> system-view
[Router] interface ethernet1/1
[Router-Ethernet1/1] ip address 10.110.91.1 255.255.255.0
[Router-Ethernet1/1] quit
# 配置连接iNode客户端PC的接口Ethernet1/2的IP地址。
[Router] interface ethernet1/2
[Router-Ethernet1/2] ip address 172.21.1.1 255.255.0.0
[Router-Ethernet1/2] quit
# 配置Ethernet1/3的IP地址。
[Router] interface ethernet1/3
[Router-Ethernet1/3] ip address 10.22.2.10 255.255.255.0
[Router-Ethernet1/3] quit
# 配置RADIUS方案,CAMS/iMC的IP地址为10.110.91.146/24;密钥为sysname。
[Router] radius scheme cams
[Router-radius-cams] server-type extended
[Router-radius-cams] primary authentication 10.110.91.146
[Router-radius-cams] primary accounting 10.110.91.146
[Router-radius-cams] key authentication sysname
[Router-radius-cams] key accounting sysname
[Router-radius-cams] quit
# 配置system域内PPP用户采用RADIUS认证方案,并配置给对端分配IP的地址池10.200.1.0/24。
[Router] domain system
[Router-isp-system] authentication ppp radius-scheme cams
[Router-isp-system] ip pool 1 10.200.1.2 10.200.1.254
[Router-isp-system] quit
# 配置虚拟模板接口的IP地址,在该接口上启动PAP认证,指定为PPP用户分配地址的地址池,开启基于L2TP接入的EAD功能,并配置分片匹配模式为精确模式。
[Router] interface virtual-template 1
[Router-Virtual-Template1] ip address 10.200.1.1 255.255.255.0
[Router-Virtual-Template1] ppp authentication-mode pap
[Router-Virtual-Template1] remote address pool 1
[Router-Virtual-Template1] ppp access-control enable
[Router-Virtual-Template1] ppp access-control match-fragments exactly
[Router-Virtual-Template1] quit
# 开启L2TP服务,并配置L2TP组,隧道本端名称为LNS,关闭隧道验证功能。
[Router] l2tp enable
[Router] l2tp-group 1
[Router-l2tp1] tunnel name LNS
[Router-l2tp1] undo tunnel authentication
[Router-l2tp1] allow l2tp virtual-template 1
[Router-l2tp1] quit
# 启用防火墙功能,指定防火墙的缺省过滤方式为禁止报文通过,并打开分片报文检测开关。
[Router] firewall enable
[Router] firewall default deny
[Router] firewall fragments-inspect
# 配置安全ACL 2000,安全认证通过后,用户可以访问所有网络。
[Router] acl number 2000
[Router-acl-basic-2000] rule 0 permit
[Router-acl-basic-2000] quit
# 配置隔离ACL 3000,如果没有通过安全认证,则用户只能访问隔离区10.22.2.0/24。
[Router] acl number 3000
[Router-acl-adv-3000] rule 0 permit ip destination 10.22.2.0 0.0.0.255
(2) 配置CAMS/iMC服务器
指定用户安全策略中安全ACL为2000,隔离ACL为3000。
具体配置请参考CAMS/iMC相关资料。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!