三、L2TP二层隧道协议
二层隧道协议是一种典型的Access 商业虚拟专用网络技术。是虚拟私有拨号网隧道协议的一种,扩展了点到点协议PPP(Point-to-Point Protocol)的应用,是远程拨号用户接入企业总部网络的一种重要VPN技术。为在用户和企业的服务器之间透明传输PPP报文而设置的隧道协议。提供了对PPP 链路层数据包的通道传输支持。
应用场景:当个人或少量用户接入企业时,并且是不固定在具体地点或临时公场所这种不是永久性的连接。
首先简单介绍VPDN,VPDN(Virtual Private Dial Network,虚拟私有拨号网)是指利用公共网络(如ISDN和PSTN)的拨号功能及接入网来实现虚拟专用网,从而为企业、小型ISP、移动办公人员提供接入服务。
VPDN隧道协议可分为PPTP、L2F和L2TP三种,目前使用最广泛的是L2TP。
VPDN连接方式是客户的PPP直接连接到企业的网关上,目前可使用的协议有L2F与L2TP 。
L2TP通过拨号网络,基于PPP的协商,建立企业分支用户到企业总部的隧道,使远程用户可以接入企业总部。PPPoE(PPP over Ethernet)技术更是扩展了L2TP的应用范围,通过以太网络连接Internet,建立远程移动办公人员到企业总部的L2TP隧道。
1、L2TP VPN的接入模式
在传统的拨号接入方式中,用户通过PSTN/ISDN之类的技术,直接对NAS(Network Access Server,网络访问服务器)发起远程呼叫,用户端设备与NAS之间通常使用PPP协议,来实现身份验证并支持多种网络协议。
NAS:NAS网络接入服务器(Network Access Server)主要由ISP维护,连接拨号网络,是距离PPP终端地理位置最近的接入点。NAS用于传统的拨号网络中,为远程拨号用户提供VPDN服务,和企业总部建立隧道连接。
传统的拨号网络需要租用因特网服务提供商ISP(Internet Service Provider)的电话线路,申请公共的号码或IP地址,不仅产生高额的 费用,而且无法为远程用户尤其是出差员工提供便利的接入服务。
使用L2TP时用户不用通过长途拨号连接到企业部的出口路由,而是利用ISDN和PSTN拨号、xDSL等方式连接到ISP本地的POP(Point Of Presence,存在点),或者直接到Internet接入路由器获得IP通信服务。后由ISP运营商的设备或者是接入路由器在Internet公网上建立L2TP隧道,使用户与企业总部之间建立数据交换。
L2TP隧道通过PPP连接,承载PPP帧,适应性强,支持任意的网络层协议。
L2TP不具有加密的能力,在要求比较高的情况下,与IPSec结合使用。
L2TP二层隧道协议特征: 身份验证、多协议传输、支持RADIUS、内部地址分配、计费灵活、可靠。
1.1、基本术语
-
LAC:L2TP LAC(L2TP Access Concentrator,访问集中器)是交换网络上具有PPP和L2TP处理能力的设备。LAC根据PPP报文中所携带的用户名或者域名信息,和LNS建立L2TP隧道连接,将PPP协商延展到LNS。 LAC可以是不同的设备:
-
LNS(Network Access Server,网络接入服务器)通常是一个当地ISP网络接入服务器,主要用于为PPP类型的用户提供接入服务。具有PPP和L2TP协议处理能力的设备,作为LAC来使用。 -
LNS:L2TP LNS(L2TP Network Server,网络服务器)是终止PPP会话的一端,通过LNS的认证,PPP会话协商成功,远程用户可以访问企业总部的资源。对L2TP协商,LNS是LAC的对端设备,即LAC和LNS建立了L2TP隧道;对PPP,LNS是PPP会话的逻辑终止端点,即PPP终端和LNS建立了一条点到点的虚拟链路。 LNS位于企业总部私网与公网边界,通常是企业总部的网关设备。必要时,LNS还兼有网络地址转换(NAT)功能,对企业总部网络内的私有IP地址与公共IP地址进行转换。 -
呼叫:指远程系统到LAC的连接,比如上图中出外人员或分支机构使用PSTN拨号连接到LAC,这个连接则称为呼叫。呼叫成功之后,如果隧道已经存在,LAC将会在建好的隧道中发起会话(Session);如果隧道不存在,就会触发隧道的建立。
1.2、隧道和会话
在LAC和LNS的L2TP交互过程中存在两种类型的连接。
- 隧道(Tunnel)连接
L2TP隧道在LAC和LNS之间建立,一对LAC和LNS可以建立多个L2TP隧道,一个L2TP隧道可以包含多个L2TP会话。 - 会话(Session)连接
必须在隧道建立(包括身份保护、L2TP版本、帧类型、硬件传输类型等信息的交换)成功之后进行,每个会话连接对应于LAC和LNS之间的一个PPP数据流。
2、L2TP VPN的工作原理
2.1、L2TP协议架构
L2TP协议包含两种类型的消息,控制消息和数据消息,消息的传输在LAC和LNS之间进行。L2TP协议通过这两种消息,扩展了PPP的应用。
- 控制消息
用于L2TP隧道和会话连接的建立、维护和拆除。在控制消息的传输过程中,使用消息丢失重传和定时检测隧道连通性等机制来保证控制消息传输的可靠性,是可靠传输,支持对控制消息的流量控制和拥塞控制。 - 数据消息
使PPP报文在隧道上传输。数据消息是不可靠的传输,不重传丢失的数据报文,不支持对数据消息的流量控制和拥塞控制。
控制连接 会话
隧道由一个控制连接和一个或多个会话(Session)组成。
L2TP隧道承载L2TP控制消息(Control Message)和封装好的PPP帧。
L2TP控制连接(Control Connection),在在LAC和LNS之间,作用是建立、维护和释放隧道中的会话以及隧道。
远程系统与企业总部建立连接后,来自分支机构呼叫(指远程系统到LAC的连接)的PPP帧,在LAC和LNS之间产生相应的会话,把来自这个呼叫的PPP帧封装在会话中,传送到LNS。呼叫与会话是一 一对应的。
L2TP 协议架构 在L2TP控制通道上承载着控制消息,在控制通道实现了控制消息的可靠传输,将控制消息封装在L2TP报头内,再经过IP网络传输。
在不可靠的数据通道上承载着携带PPP帧的数据消息,将PPP帧封装成L2TP报文类型,再经过公网IP网络传输。
2.2、L2TP 报文结构
2.2.1、L2TP封装后的报文格式:
新的IP报头+UDP报头+L2TP报头+PPP报头+原IP报头+数据
L2TP报文进行了多次封装,增加了4个报头,20+8+6+4=38,比原始IP报文多出38个字节,如果还要携带序列号,就会比原始IP报文多出42个字节,封装后报文的长度可能会超出接口的MTU值,L2TP协议本身不支持报文分片功能。
当L2TP报文长度超出发送接口的MTU值时,由LAC设备在发送接口进行报文分片处理,接收端对收到分片报文进行还原,重组为L2TP报文。
L2TP是PPP的扩展,使PPP报文可以通过隧道方式在公网网络中传输。
2.2.2、L2TP协议报文格式:
1、T:表明消息的类型。“1”表示为此消息是控制消息,“0”为此消息是数据消息。 2、Ver:必须设置为2。 3、Tunnel ID:L2TP隧道的标识符,也是L2TP控制连接的标识符。Tunnel ID是在隧道建立时Assigned Tunnel ID AVP交换的。 4、Session ID:用来标识一个隧道中的各个会话。Session ID是在隧道建立时Assigned Tunnel ID AVP交换的。 5、Ns:是指一个数据消息或者控制消息的序列号。0~216。 6、Nr:是指对下一个收到的控制消息序列号的预期。
承载协议:UDP/IP作为承载协议,L2TP报文封装在UDP数据报中发送。
L2TP协议使用UDP端口1701,这个端口号仅用于初始隧道的建立也就是呼叫时。L2TP隧道发起方任选一个空闲端口向接收方的1701端口发送报文;接收方收到报文后,也任选一个空闲端口,给发起方的选定的端口回送报文。至此,双方的端口选定,并在隧道连通的时间内不再改变。
2.2.3、L2TP 报文传输
远程端首次呼叫,需要建立L2TP隧道和会话的连接。流程如下: 1、建立L2TP隧道连接 LAC收到远程用户的PPP协商请求,LAC向LNS发起L2TP隧道请求。LAC和LNS之间通过L2TP的控制消息,协商(Tunnel ID)进行标识。
2、建立L2TP会话连接
- L2TP隧道已存在,则在LAC和LNS之间通过L2TP的控制消息,协商会话ID等内容;
- 隧道不存在,建立L2TP隧道连接。会话中携带了LAC的LCP协商信息和用户认证信息,LNS对收到的信息认证、授权后,则通知LAC会话建立成功。L2TP会话连接由会话ID(Session ID)进行标识。
3、传输PPP报文 L2TP会话建立成功后,PPP远程终端将数据报文发送至LAC,LAC将根据L2TP隧道和会话ID等信息,对PPP数据进行L2TP报文封装,然后发送LNS,LNS进行L2TP解封装处理,得到IP数据包,根据路由转发表发送至目的主机,完成报文的传输。
2.2.4、L2TP协议操作
L2TP协议的操作主要有以下几种: A、建立控制连接 B、建立会话 C、转发PPP帧 D、Keepalive E、关闭会话 F、关闭控制连接
1、建立控制连接 远程终端呼叫LAC成功后,PPP触发LAC发起控制连接的建立。LAC的任意UDP源端口向LNS的目的端口1701发起制连接建立请求,LNS的UDP端口1701监听L2TP控制连接建立请求。
2、建立会话
LAC与LNS都可以发起会话,LNS发起会话与上图相同,只是发起方不同。
3、转发PPP帧 ZLB消息只是一个L2TP报头的控制消息。在控制连接建立的过程中,可以执行一个隧道验证过程。LAC或LNS都可以验证对方的身份,与CHAP非常相似,LAC和LNS可以在SCCRQ(打开控制连接请求)或SCCRP(打开控制连接应答)消息中添加Challenge AVP(挑战AVP),发起验证;对方收到SCCRQ或SCCRP消息中以Challenge Response AVP(挑战响应AVP)响应验证过程。如果验证不通过,则隧道无法建立。
4、Keepalive 隧道建立后,一直要等到该L2TP隧道所属会话全部下线后,再进行拆除,为了确认对端的隧道结构依然存在,需要定时发送与对端的维护报文,其流程为:LAC或LNS发出Hello报文,对应的LNS或LAC发出确认信息!在指定时间间隔内未收到对端的Hello响应报文时,重复发送,超过规定的次数没有收到Hello响应报文后,则认为L2TP隧道已经断开,隧道会关闭。
5、关闭会话 LAC或LNS双方都可以主动关闭一个会话。会话的关闭不影响隧道的继续运行。
LAC发送一个CDN(Call-Disconnect-Notify,呼叫断开通知)消息,通告对方关闭会话。LNS收到CDN后用ZLB消息应答,会话关闭。
6、关闭控制连接 LAC或LNS双方都可以主动关闭一个隧道。隧道关闭后,会话也同时关闭。
LAC发送一个StopCCN(Stop-Call-Disconnect-Notify,停止控制连接通知)消息,通告对方关闭隧道。LNS收到StopCCN后用ZLB消息应答,会话关闭。
2.2.5、L2TP工作过程
(1)、VPDN连接在远程终端和LNS之间建立。ISP将距离终端用户所在地理位置最近的NAS部署为LAC,企业分支机构或在外人员,通过PSTN/ISDN(拨号操作)接入运营商ISP的LAC设备(访问集中器),通过公共网络向企业总部的LNS(网络服务器)发出请求。如果没有隧道,就建立隧道,完成会话。
(2)、LAC接入远程用户的呼叫,和远程用户进行PPP协商。
(3)、LAC根据远程用户拨号的用户名或者域,判断接入的用户是否为VPDN用户。如果接入用户是VPDN用户,则进行进行L2TP报文封装处理,将PPP报文通过L2TP隧道发送到LNS;如果不是VPDN用户,则正常处理和转发PPP报文。
(4)、LNS接收到L2TP隧道发送的请求信息(封装成L2TP报文的请求信息),对远程用户认证后,为远程用户分配IP地址,通过隧道和LAC发送到远程用户。
(5)、远程用户获取IP地址,向总部主机发送报文进行通信。
(6)、LNS收到经由隧道传输的报文后,根据IP地址查找路由表,转发报文到内部目的主机。
L2TP支持本地和远端的认证、授权和计费功能,也可根据需要采用全用户名、用户域名等方式来识别是否为VPN用户。L2TP也支持对接入用户IP地址的动态分配。
1、企业分支L2TP 隧道的呼叫建立流程: 选择执行步骤12时,需要执行步骤13和14,否则不需要执行。
LCP(Link Control Protocol)用于建立、配置和测试数据通信链路,能够用来协商 PPP 协议的一些配置参数;处理不同大小的数据包;检测链路环路和错误;终止一条链路。
2、外出人员个人PC终端为LAC 对于外出人员个人PC终端为LAC,使用VPDN客户软件通过公网对LNS(网络服务器)发出请求,建立隧道和会话。LNS对来自于个人LAC的隧道和会话请求进行最终验证和授权。
3、L2TP的应用
3.1、独立LAC模式
用户必须完成LAC设备的配置和LNS设备的配置,用户端的操作系统安装专用的VPN客户端,也可以使用Windows操作系统自带的VPN客户端。对于使用手机和电脑移动办公非常方便,不受地域限制。
3.2、分支用户LAC接入拨号
企业向ISP运营商申请L2TP服务,ISP将NAS部署为LAC,将分支机构的拨号连接通过公共网络延展到LNS,再接入企业总部。企业总部的网关设置为LNS,提供接入服务,并管理各分支机构的接入,实现分支机构和总部网关之间的VPDN连接。
3.3、分支用户PPPoE接入
国内目前主要使用PPPoEoA作为ADSL拨号上网方式。分支机构安装PPPoE拨号软件部署为PPPoE Client,把分支机构的网关作为PPPoE Server和LAC,这种方式实现分支机构和总部网关之间连接。
当所有L2TP用户都下线时,隧道自动拆除以节省资源,直至再有用户接入时,重新建立隧道。对于不经常访问企业总部的情况适用。
3.4、分支用户LAC 自拨号接入
分支机构的网关作为LAC并创建虚拟拨号,PPP触发LAC到LNS的L2TP隧道连接。这称为是LAC的自动拨号方式,分支机构的IP数据包到达LAC后,通过路由转发到虚拟拨号接口,由LAC传送到LNS,再到公司部门具体的IP地址。LAC自主拨号场景中,LAC侧不对用户进行认证,只在LNS侧对LAC配置的用户进行PPP认证(PAP或CHAP)。
分支机构员工不需要使用用户接入。LAC为分支机构的多个用户提供L2TP服务,免去了每个用户使用L2TP都需要先拔号的麻烦。
3.5、LAC接入多域用户接入
不同的子公司通过同一LAC向总部的不同部门进行数据交换,因为用户过多,需要配置子公司的网关设备按照域名判断接入用户是否VPDN用户,非多用户是使用用户名来判断。不同的子公司使用不同的不同的L2TP隧道,获取不同网段的IP地址。子公司用户发起到总部的连接时,由总部来分配源地址和目的地址,所以总部可以采用配置ACL的方式对子公司访问权限的管理。
4、L2TP配置
与前面不同的是,L2TP配置较为复杂,分为LAC配置和LNS配置两部分。
4.1、LAC配置流程
1、LAC发起连接部分 (1)、使能L2TP,全局使能L2TP; (2)、配置PPP协商,在虚拟接口模板(VT接口)上配置拨号参数,作为虚拟拨号接口。配置VT接口的IP地址,使接口IP协议生效; (3)、配置L2TP组,配置L2TP参数,包括隧道名称、隧道密码、LNS地址、VPDN用户名。可选配置AVP参数加密、主备LNS、Hello报文时间;
2、AAA认证,二种方式选一: (1)、配置本地认证,在本地保存用户名、密码和类型,认证接入的用户信息。如果配置了LCP重协商或者CHAP强制认证功能,也用于对远程用户进行二次认证。
(2)、配置远程认证,配置RADIUS服务器参数,在RADIUS服务器上保存用户名、密码和用户类型,认证接入的用户信息。如果配置了LCP重协商或者CHAP强制认证功能,也用于对远程用户进行二次认证。
4.2、LNS配置流程
1、配置LNS响应L2TP连接 (1)、使能L2TP 全局使能L2TP。 (2)、配置IP地址池 认证通过后,可以为远程用户动态分配IP地址。如果为远程用户配置静态IP地址,则无需此步骤。 (3)、配置PPP协商
- 在虚拟接口模板(VT接口)上配置PPP认证方式为PAP或者CHAP,认证接入用户,和LAC保持一致。
- 配置IP地址,作为L2TP隧道的私网网关地址。如果为远程用户动态分配IP地址,则引入IP地址池。
如果配置CHAP强制认证功能,则PPP认证方式必须为CHAP。 (4)、配置L2TP组 配置L2TP参数,包括隧道名称、隧道密码、绑定VT接口编号和LAC的隧道名称。可选配置配置AVP参数加密、Hello报文时间。
4.3、配置 AAA 认证和计费
AAA提供了认证、授权和计费三种安全功能,用于管理接入用户,保证安全的连接请求。LAC自拨号场景下,LNS通过配置AAA的本地认证或者远程认证功能,对接入的LAC设备进行身份验证。
当接入用户通过LNS认证时,用户可以访问互联网,此时如果需要对接入用户访问的网络资源进行计费,可以在LNS侧配置AAA计费功能。
4.3.1、操作步骤:
以下分为两部分一是 配置本地认证,二是配置远程认证和计费,计费的操作,一般情况下,很少使用,以下来自于《HuaweiAR120&AR150&AR160&AR200&AR500&AR510&AR1200&AR2200&AR3200&AR3600系列企业路由器 安全配置》中的“AAA配置”供参考: 1、配置本地认证 a. 执行命令system-view,进入系统视图。 b. 执行命令aaa,进入AAA视图。 c. 执行命令authentication-scheme authentication-scheme-name,创建认证方案,并进入认证方案视图。 设备缺省存在名称为default的认证方案,其认证方式为本地认证。 d. 执行命令authentication-mode local,配置认证方式为local,即本地认证。 缺省情况下,认证方式为local,即本地认证方式。 e. 执行命令quit,回到AAA视图。 f. 执行命令domain domain-name,创建用户域,并进入域视图。 设备缺省存在名称为default的域,其认证方式为本地认证。 g. 执行命令authentication-scheme authentication-scheme-name,为创建的域指定认证方案。 h. 执行命令quit,回到AAA视图。 i. 执行命令local-user user-name password cipher password,配置本地用户名和密码,作为VPDN用户信息保存在设备中,用于验证接入的远程用户。 其中密码保存为密文方式。 j. 执行命令local-user user-name service-type ppp,配置本地用户类型,L2TP协议基于PPP协商,需要指定用户类型为ppp。 k. 执行命令return,退回用户视图。 2、配置远程认证和计费 a. 执行命令system-view,进入系统视图。 b. 执行命令radius-server template template-name,创建RADIUS服务器模板,并进入RADIUS服务器模板视图,用于配置RADIUS服务器的参数。 c. 执行命令radius-server authentication ip-address port,配置RADIUS服务器的IP地址和端口号。 d. 执行命令radius-server accounting ip-address port,配置RADIUS计费服务器。 缺省情况下,未配置RADIUS计费服务器。 e. 执行命令radius-server shared-key cipher key-string配置和RADIUS服务器连接时的共享密钥。 缺省情况下,RADIUS共享密钥是huawei,采用密文形式显示用户口令。 f. 执行命令quit,回到系统视图。 g. 执行命令aaa,进入AAA视图。 h. 执行命令authentication-scheme authentication-scheme-name,创建认证方案,并进入认证方案视图。 设备缺省存在名称为default的认证方案,其认证方式为本地认证。 i. 执行命令authentication-mode radius,配置认证方式为radius,即RADIUS服务器认证。 缺省情况下,认证方式为local,即本地认证方式。 j. (可选)执行命令accounting-scheme accounting-scheme-name,创建计费方案,并进入计费方案视图。 缺省情况下,设备中有一个计费方案,计费方案配置名是default,default方案不能删除,只能修改default方案下的参数。 k. (可选)执行命令accounting-mode radius,配置计费模式为RADIUS计费。 缺省情况下,计费模式采用不计费模式none。 l. (可选)执行命令accounting start-fail { online | offline },配置开始计费失败策略。 缺省情况下,如果初始计费失败,不允许用户上线。 m. (可选)执行命令accounting realtime interval,使能实时计费并设置计费间隔。 n. (可选)执行命令accounting interim-fail [ max-times times ] { online |offline },配置允许的实时计费请求最大无响应次数,以及实时计费失败后采取的策略。 o. 执行命令quit,回到AAA视图。 p. 执行命令domain domain-name,创建用户域,并进入域视图。 设备缺省存在名称为default的域,其认证方式为本地认证。 q. 执行命令authentication-scheme authentication-scheme-name,为用户域指定认证方案。 设备缺省存在名称为default的认证方案,认证方式为本地认证。 r. 执行命令radius-server template-name,为用户域指定RADIUS服务器模板。 s. (可选)执行命令accounting-scheme accounting-scheme-name,配置域的计费方案。 缺省情况下,域使用名为“default”的计费方案。“default”计费方案的策略为:计费模式为不计费,关闭实时计费开关。 t. (可选)执行命令statistic enable,如果使用流量计费,需要在域下开启流量统计功能。 缺省情况下,域的流量统计功能处于未使能状态。 u. 执行命令return,退回用户视图。
4.4、配置自拨号发起L2TP连接的LAC
LAC创建虚拟拨号接口,自动拨号,并发起到LNS的L2TP连接。LAC上VT接口的拨号参数(用户名,密码,认证方式),需要和LNS保持一致。 注意:L2TP缺省情况下使能隧道认证功能,未配置认证字。
- 如果使用隧道认证功能,则配置认证字,且LAC和LNS保持一致。
- 如果不使用隧道认证功能,则LAC和LNS都需要去使能隧道认证功能。
4.4.1、操作步骤:
以下来自于《AR120&AR150&AR160&AR200&AR500&AR510&AR1200&AR2200&AR3200&AR3600 系列企业路由器配置指南-VPN 配置》供参考: 配置LAC a. 执行命令system-view,进入系统视图。 b. 执行命令l2tp enable,全局使能L2TP功能。 c. 执行命令interface virtual—template vt-number,创建VT虚拟接口模板,并进入虚拟模板视图。 VT接口作为虚拟拨号接口,需要配置拨号参数。 说明 一个VT接口不能同时被PPPoE业务和L2TP业务使用。 d. 执行命令ip address ppp-negotiate,配置IP地址为动态获取,由LNS分配IP地址。 还可以选择使用以下两种方式,使接口IP协议生效:
- 使用命令ip address ip-address { mask | mask-length },配置一个IP地址,
使接口的IP协议生效。 - 使用命令ip address unnumbered interface interface-type interfacenumber,借用其他接口的IP地址。
e. 执行命令ppp pap local-user username password { cipher | simple } password,作为虚拟拨号接口,配置PPP协商的认证方式为pap,指定拨号的用户名称和密码。 说明 选择simple选项时,密码将以明文形式保存在配置文件中,存在安全风险。建议使用cipher选项,将密码加密保存。 如果认证方式使用chap,则执行如下两条命令: - ppp chap user username
- ppp chap password { cipher | simple } password
说明 PAP认证时,密码会在网络中以明文形式传输,存在安全风险。 f. 执行命令l2tp-auto-client enable,使能LAC自拨号功能。 g. 执行命令mtu size,配置接口的最大传输单元值。 当与友商设备对接时,为了避免出现数据报文在其物理出接口进行分片后友商设备无法重组等对接失败问题,建议在VT虚拟接口配置MTU值,取值必须不大于L2TP报文的物理出接口MTU值(默认1500字节)减去L2TP报文封装头长度(携带序列号信息时为42字节,否则为38字节)。例如,默认情况下L2TP报文的物理出接口MTU值为1500,L2TP报文封装头长度为42,该步骤中参数size取值必须不大于1458。 为了避免出现数据报文在VT接口进行分片后,在其物理出接口再次进行分片,影响设备性能,建议在VT虚拟接口配置MTU值时,取值范围为1400~1450。 h. 执行命令quit,回到系统视图。 i. 执行命令interface interface-type interface-number,进入连接用户侧的物理接口视图。 j. 执行命令ip address ip-address { mask | mask-length },配置接口的IP地址,作为远程用户的网关地址。 k. 执行命令quit,回到系统视图。 l. 执行命令l2tp-group group-number,创建L2TP组,并进入L2TP组视图。 用于配置L2TP连接参数,根据接入的远程用户,向LNS发起L2TP连接。 m. 执行命令tunnel password { simple | cipher } password,配置L2TP隧道的密码,需要和LNS保持一致。 缺省情况下,L2TP使能了隧道认证功能,未配置隧道认证字。 建议使用隧道认证功能,如果不使用隧道认证功能,则执行命令undo tunnel authentication。 注意: 如果使用simple选项,密码将以明文形式保存在配置文件中,存在安全隐患。建议使用cipher选项,将密码加密保存。 n. 执行命令tunnel name tunnel-name,配置隧道名称,用于发起L2TP连接时,LNS根据LAC的隧道名称接入。 缺省情况下,如果未指定隧道名称,则设备名称作为隧道名称。 o. 执行以下命令来配置对端LNS的公网地址或者域名,发送控制消息的目的地址。 - start l2tp ip ip-address &<1-4> { domain domain-name | fullusername username | interface interface-type interface-number | vpn-instance vpn-instancename fullusername user-name }
说明 仅V200R007C02版本支持配置vpn-instance关键字。 - start l2tp host hostname { domain domain-name | fullusername user-name }
定义VPDN用户: - fullusername,指定VPDN用户的名称。允许为具有相同名称的远程用户建立到达LNS的L2TP连接。
- domain,指定VPDN用户的域名称。允许为具有相同域名称的远程用户建立到达LNS的L2TP连接。
- vpn-instance,指定L2TP组建立L2TP连接使用的IP地址所属的VPN实例。
p. 执行命令return,退回用户视图。
4.5、配置响应L2TP连接的LNS
配置有如下注意事项:
- LNS在虚拟接口模板上配置PPP协商参数时,认证方式应和LAC保持一致。
- 如果L2TP组编号不为1,则需要指定对端LAC的隧道名称。
- L2TP缺省情况下使能隧道认证功能,未配置认证字。
- 如果使用隧道认证功能,则配置认证字,且LAC和LNS保持一致。
- 如果不使用隧道认证功能,则LAC和LNS都需要去使能隧道认证功能。
- 当使用RADIUS认证时,如果RADIUS服务器为用户配置了Frame-IP、Frame-Route
属性,LNS将Frame-IP和Frame-Route下发给拨号用户,不再从本地地址池分配地 址(但是Frame-IP需要在本地地址池中)。 - 当使用RADIUS认证时,如果RADIUS服务器为用户配置了VPN实例属性,LNS上
的VT口不支持绑定VPN实例。
4.5.1、操作步骤:
以下来自于《AR120&AR150&AR160&AR200&AR500&AR510&AR1200&AR2200&AR3200&AR3600 系列企业路由器配置指南-VPN 配置》供参考: l 配置LNS a. 执行命令system-view,进入系统视图。 b. 执行命令l2tp enable,全局使能L2TP功能。 c. 执行命令ip pool ip-pool-name,创建一个全局IP地址池,并进入IP地址池视图,用于为远程用户分配地址。 如果远程用户已经手工配置了静态IP地址,则无需配置地址池。 说明 L2TP只支持将ip pool命令配置的地址池的地址分配给用户,不支持其他地址池的属性信息。 如果需要给用户分配DNS服务器地址,建议在配置AAA步骤中增加service-scheme命令。 d. 执行命令network ip-address [ mask { mask | mask-length } ],配置网段地址,作为远程用户的动态IP地址资源,网段内的IP地址会从大到小依次分配。 e. 执行命令gateway-list ip-address &<1-8>,配置网关地址,分配给远程用户作为其网关地址。 f. 执行命令quit,回到系统视图。 g. 执行命令interface virtual-template vt-number,创建虚拟接口模板,并进入虚拟模板接口视图。 作为远程用户的私网网关接口,接入远程用户的L2TP连接,定义了PPP协商的参数。 说明 一个VT接口不能同时被PPPoE业务和L2TP业务使用。 h. (可选)执行命令ppp keepalive in-traffic check,用来配置设备作为LNSServer时,有入方向的流量就不发送心跳报文。 缺省情况下,设备作为LNS Server会定时发送心跳报文。 i. (可选)执行命令ppp keepalive echo enhance,用来使能在LNS设备入方向接收到对端LAC设备发送的心跳报文时,不主动给LAC发送心跳报文的功能。 缺省情况下,在LNS设备入方向接收到对端LAC设备发送的心跳报文,不主动给LAC发送心跳报文的功能处于去使能状态。 j. 执行命令ip address ip-address { mask | mask-length },配置IP地址,作为远程用户访问总部的网关地址。 k. 执行命令remote address { ip-address | pool pool-name },指定地址池,为远程用户动态分配IP地址。 如果远程用户已经手工配置了静态IP地址,则无需此步骤。 当使用RADIUS认证时,如果RADIUS服务器为用户指定了地址池名称或者Frame-IP,则无需此步骤。LNS会从RADIUS服务器为该用户指定的地址池中为远程用户分配IP地址。当L2TP支持配置多个地址池时,如果已经配置了service-scheme命令为用户指定了地址池,则无需此步骤。LNS会从servicescheme命令所指定的地址池中为远程用户分配IP地址。 说明 当多个用户携带相同的静态地址拨号时,如果LNS不采用强制地址分配方式,用户都可以显示上线,但不能保证用户业务正常,客户需要规划正确的静态地址。如果用户要求设备能够识别且只允许一个用户接入,需要保证用户规划的地址在地址池中并且配置ppp ipcpremote-address forced命令。 l. 执行命令ppp authentication-mode { pap | chap },配置PPP认证方式为pap或者chap,对远程用户进行认证。 LAC和LNS的认证方式应保持一致。 说明 PAP认证时,密码会在网络中以明文形式传输,存在安全风险。推荐使用CHAP认证。 m. 执行命令mtu size,配置接口的最大传输单元值。 当与其他厂商设备对接时,为了避免出现数据报文在其物理出接口进行分片后其他厂商设备无法重组等对接失败问题,建议在VT虚拟接口配置MTU值,取值一定不大于L2TP报文的物理出接口MTU值(默认1500字节)减去L2TP报文封装头长度(携带序列号信息时为42字节,否则为38字节)。例如,默认情况下L2TP报文的物理出接口MTU值为1500,L2TP报文封装头长度为42,该步骤中参数size取值一定不大于1458。 为了避免出现数据报文在VT接口进行分片后,在其物理出接口再次进行分片,影响设备性能,建议在VT虚拟接口配置MTU值时,取值范围为1400~1450。 n. 执行命令quit,回到系统视图。 o. 执行命令l2tp-group group-number,创建L2TP组,并进入L2TP组视图。 用于配置L2TP连接参数,接入LAC发起的连接。 当L2TP组编号为1时,可以配置为允许任意LAC接入。 p. 执行命令tunnel password { simple | cipher } password,配置L2TP隧道的密码,需要和LAC保持一致。 缺省情况下,L2TP使能了隧道认证功能,未配置隧道认证字。 建议使用隧道认证功能,如果不使用隧道认证功能,则执行命令undo tunnel authentication。 q. 执行命令tunnel name tunnel-name,配置隧道名称,用于响应L2TP连接时,建立隧道的协商参数。 缺省情况下,如果未指定隧道名称,则设备名称作为隧道名称。 r. 执行命令allow l2tp virtual-template virtual-template-number [ remote remotename [ vpn-instance vpn-instance-name ] ],配置L2TP组作为LNS侧,响应LAC发起的连接请求。 需要指定虚拟接口模板和接入的LAC隧道名称。 说明 仅V200R007C02版本支持vpn-instance关键字。 当L2TP组编号为1时,可以不指定对端LAC的隧道名称,表示允许任意LAC接入。 s. 执行命令return,退回用户视图。
4.6、配置AVP参数加密
L2TP连接的建立是通过在LAC和LNS之间交换控制消息,而控制消息中则携带了各种AVP参数,包含了用户名、密码等关键信息。此时通过部署AVP参数加密功能,在L2TP连接期间,对AVP参数加密,提高安全性。
以下来自于《AR120&AR150&AR160&AR200&AR500&AR510&AR1200&AR2200&AR3200&AR3600 系列企业路由器配置指南-VPN 配置》供参考: 操作步骤: 步骤1 执行命令system-view,进入系统视图。 步骤2 执行命令l2tp-group group-number,进入L2TP组视图。 步骤3 执行命令tunnel authentication,使能L2TP隧道认证功能。 步骤4 执行命令tunnel password { simple | cipher } password,配置隧道认证字,除了隧道认证,还可以用于加密AVP参数。
4.7、配置L2TP隧道认证
对安全要求较高时,可部署L2TP隧道认证功能,LAC和LNS上需要配置相同的认证字。L2TP隧道建立过程时,互相验证对端的密钥是否和本端相同,达到简单的安全验证要求。
以下来自于《AR120&AR150&AR160&AR200&AR500&AR510&AR1200&AR2200&AR3200&AR3600 系列企业路由器配置指南-VPN 配置》供参考: 操作步骤 步骤1 执行命令system-view,进入系统视图。 步骤2 执行命令l2tp-group group-number,进入L2TP组视图。 步骤3 执行命令tunnel authentication,使能L2TP隧道认证功能。 步骤4 执行命令tunnel password { simple | cipher } password,配置隧道认证字。
4.8、查看配置结果
- 使用display l2tp tunnel 命令查看本端和对端的L2TP隧道ID、会话ID,以及对端公网地址等信息。
- 使用display l2tp session 命令查看本端和对端的L2TP会话ID信息,以及所属的本端隧道ID。
- 使用display l2tp-group [ group-number ] 命令查看指定L2TP组的具体配置信息。
4.9、监控L2TP隧道及会话状况
- 执行命令display l2tp-group,查看设备上已存在的L2TP组编号。
- 执行命令display l2tp tunnel [ tunnel-item tunnel-item | tunnel-name tunnel-name ],根据本端隧道ID或者对端隧道名称,查看指定隧道的具体连接参数。
- 执行命令display l2tp session [ destination-ip d-ip-address | session-item session-item | source-ip s-ip-address ],根据L2TP隧道的公网源地址或者目的地址,查看对应的会话ID;根据本端会话ID,查看指定会话的具体连接参数。
4.10、L2TP协议报文统计
- 在用户视图下执行命令display l2tp statistics tunnel [ local-id tunnel-id ],用来查看L2TP协议报文的统计信息。
- 在用户视图下执行命令reset l2tp statistics tunnel [ local-id tunnel-id ],用来重置L2TP协议报文的统计信息。
说明 仅V200R007C00版本支持L2TP协议报文统计。
4.11、配置LAC自拨号案例
4.11.1、LAC的配置
LAC路由器基本配置
<Huawei> system-view
[Huawei] sysname LAC
[LAC] interface gigabitethernet 1/0/0
[LAC-GigabitEthernet1/0/0] ip address 222.1.2.1 255.255.255.0
[LAC-GigabitEthernet1/0/0] interface gigabitethernet 2/0/0
[LAC-GigabitEthernet2/0/0] ip address 192.168.10.1 255.255.255.0
[LAC-GigabitEthernet2/0/0] quit
在这里插入代码片
建立到达LNS的L2TP连接
[LAC] l2tp enable
[LAC] l2tp-group 1
[LAC-l2tp1] tunnel name lac
[LAC-l2tp1] start l2tp ip 222.1.1.1 fullusername huawei
启用通道验证并设置通道验证密码
[LAC-l2tp1] tunnel authentication
[LAC-l2tp1] tunnel password cipher huawei
配置虚拟PPP 虚拟接口模板(VT接口)上配置拨号参数,作为虚拟拨号接口。LAC上VT接口的拨号参数(用户名,密码,认证方式),LAC VT接口的IP地址由LNS地址池分配。
[LAC] interface virtual-template 1
[LAC-Virtual-Template1] ppp chap user huawei
[LAC-Virtual-Template1] ppp chap password cipher 123456
[LAC-Virtual-Template1] ip address ppp-negotiate
[LAC-Virtual-Template1] quit
配置静态路由 LAC—>LNS—>公司总部
[LAC] ip route-static 222.1.1.1 255.255.255.255 222.1.2.2
[LAC] ip route-static 192.168.2.0 255.255.255.0 virtual-template 1
配置LAC 自拨号
[LAC] interface virtual-template 1
[LAC-Virtual-Template1] l2tp-auto-client enable
[LAC-Virtual-Template1] quit
4.11.2、LNS的配置
LNS路由器基本配置
<Huawei> system-view
[Huawei] sysname LNS
[LNS] interface gigabitEthernet 1/0/0
[LNS-GigabitEthernet1/0/0] ip address 222.1.1.1 255.255.255.0
[LNS-GigabitEthernet1/0/0] interface GigabitEthernet 2/0/0
[LNS-GigabitEthernet2/0/0] ip address 192.168.2.1 255.255.255.0
[LNS-GigabitEthernet2/0/0] quit
配置LNS的AAA认证,用户名为huawei,密码123456。
[LNS] aaa
[LNS-aaa] local-user huawei password
Please configure the login password (8-128)
It is recommended that the password consist of at least 2 types of characters, i
ncluding lowercase letters, uppercase letters, numerals and special characters.
Please enter password:
Please confirm password:
Info: Add a new user.
Warning: The new user supports all access modes. The management user access mode
s such as Telnet, SSH, FTP, HTTP, and Terminal have security risks. You are advi
sed to configure the required access modes only.
[LNS-aaa] local-user huawei service-type ppp
[LNS-aaa] quit
配置LNS的IP地址池,为LAC的拨号接口分配IP地址。作为远程用户的动态IP地址资源。
[LNS] ip pool 1
[LNS-ip-pool-1] network 192.168.1.0 mask 24
[LNS-ip-pool-1] gateway-list 192.168.1.1
[LNS-ip-pool-1] quit
创建虚拟接口模板 虚拟接口模板(VT接口)上配置拨号参数,作为虚拟拨号接口。配置VT接口的IP地址,使接口IP协议生效。VT接口的拨号参数(用户名,密码,认证方式)
[LNS] interface virtual-template 1
[LNS-Virtual-Template1] ppp authentication-mode chap
[LNS-Virtual-Template1] remote address pool 1
[LNS-Virtual-Template1] ip address 192.168.1.1 255.255.255.0
[LNS-Virtual-Template1] quit
使能L2TP服务及配置LNS本端隧道名称
[LNS] l2tp enable
[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 cipher huawei
[LNS-l2tp1] quit
注意:缺省情况下,L2TP使能了隧道认证功能,未配置隧道认证字。案例中启用认证并设置了认证字。
设置公网以静态路由
[LNS] ip route-static 222.1.2.1 255.255.255.255 222.1.1.2
[LNS] ip route-static 192.168.10.0 255.255.255.0 virtual-template 1
查看配置结果
[LNS] display l2tp tunnel
Total tunnel : 1
LocalTID RemoteTID RemoteAddress Port Sessions RemoteName
1 1 222.1.2.1 1701 1 lac
本地L2TP组ID 远程L2TP组ID LACIP地址 端口 会话 远程隧道名称 1 1 222.1.2.1 1701 1 lac
|