本文出自 “王达博客” 博客,转载请与作者联系!

作者已授权本博客转载

 

下内容摘自笔者即将出版,并正接受最优惠的7折预订的《路由器配置与管理完全手册——H3C篇》一书。预订请联系我(QQ:93220994)。

11.2  H3C路由器L2TP ×××配置

在将设备配置为LAC(L2TP访问集中器)或LNS(L2TP网络服务器)之前,必须首先启用L2TP功能、创建L2TP组,使设备具有基本的L2TP处理能力;然后再根据不同的使用环境,分别进行LAC或LNS的特性配置,使设备具有LAC或LNS端功能。L2TP的连接参数为可选配置,在设备作为LAC、LNS时均可使用,请根据实际情况配置。这些具体的配置任务如表11-1所示,注意各项配置的是为必选,还是为可选。

表11-1 H3C路由器L2TP配置任务简介

clip_p_w_picpath002

11.2.1  H3C路由器L2TP基本功能的配置步骤及示例

只有启用L2TP后,设备上的L2TP功能才能正常发挥作用;如果禁止L2TP,则即使配置了L2TP的参数,设备也不会提供相关功能,无论是NAS发起的,还是由×××用户发起的。

为了进行L2TP的相关参数配置,还需要创建L2TP组,在L2TP组中配置L2TP的各项功能,而不是在各×××用户端进行配置。这不仅增加了L2TP配置的灵活性,而且方便地实现了LAC和LNS之间一对一、一对多的组网应用。L2TP组在LAC和LNS上独立编号,只需要保证LAC和LNS之间关联的L2TP组的相关配置(如隧道对端名称、LNS地址等)保持对应关系即可,不要求L2TP组号一样。隧道本端的名称在LAC和LNS进行隧道协商时使用。

以上这些基本L2TP功能的配置步骤如表11-2所示。本节所介绍的配置,如果L2TP连接请求是由NAS发起的,则需要同时在LAC(NAS)和LNS(×××服务器)上配置;如果是由×××用户发起的,则仅需要在LNS上配置。

表11-2 L2TP基本功能的配置步骤

clip_p_w_picpath004

下面介绍以上配置步骤中的几个主要命令。

1. l2tp enable命令

l2tp enable”系统视图命令用来启用L2TP功能。可用“undo l2tp enable”命令关闭L2TP功能。默认情况下,L2TP功能处于关闭状态。只有启用该功能后,其他相关配置才能生效。

以下示例是启用L2TP功能。

<Sysname> system-view

[Sysname] l2tp enable

2. l2tp-group命令

l2tp-group group-number”系统视图命令用来创建L2TP组,并进入L2TP组视图。可使用“undo l2tp-group group-number”命令用来删除L2TP组,删除L2TP组后,该组的所有配置信息也将被删除。参数group-number用来指定所创建的L2TP组号,取值范围为1~1000。默认情况下,没有创建任何L2TP组。

以下示例是创建L2TP组2,并进入L2TP组视图。

<Sysname> system-view

[Sysname] l2tp-group 2

3. tunnel name命令

tunnel name name”命令用来配置隧道本端的名称。参数name用来指定所创建的隧道本端名称,为1~30个字符的字符串,区分大小写。但要注意,LAC侧隧道名称要与LNS侧配置的接收L2TP连接请求的隧道对端名称保持一致,反之亦然。可用“undo tunnel name”命令恢复默认情况。默认情况下,隧道本端的名称为系统的名称。当创建一个L2TP组时,本端名称将被初始化成系统的名称。

以下示例是配置隧道本端名称为tun-1。

<Sysname> system-view

[Sysname] l2tp-group 1

[Sysname-l2tp1] tunnel name tun-1

11.2.2  NAS发起模式L2TP LAC端的配置步骤与示例

在NAS发起模式的L2TP ×××方案中(本节所介绍的配置全都仅适用于NAS发起模式L2TP ×××中,在×××用户发起模式的L2TP ×××中无需配置),对L2TP用户进行验证并通过后,LAC就立即负责和相应的LNS建立隧道连接,并负责将用户报文通过隧道发送到LNS。×××客户端只需要一次登录即可。但在进行LAC端的各项配置任务前,必须先启动L2TP、创建L2TP组,参见上节介绍。

1.  L2TP连接请求的配置

只有在满足一定的条件下,LAC端(NAS)才会向LNS服务器发出建立L2TP连接的请求,这是一个用户发起L2TP ×××连接请求时所进行的初始验证过程,但它不是直接针对×××用户,而针对L2TP组进行的验证。通过配置接入用户信息的判别条件,并指定相应的LNS端的IP地址,设备可以鉴定用户是否为×××用户,并决定是否向LNS发起连接。

LAC发起L2TP连接请求时,支持两种触发条件:

clip_p_w_picpath005完整的用户名(fullusername):只有接入用户的用户名与配置的完整用户名匹配时,才会向指定的LNS发起连接请求。

clip_p_w_picpath005[1]带特定域名的用户名(domain):接入用户的域名与配置的域名匹配时,即向指定的LNS发起连接请求。

LAC发起L2TP连接请求的配置步骤如表11-3所示。

表11-3 LAC发起L2TP连接请求的配置步骤

clip_p_w_picpath007

以上配置步骤中的“start l2tp { ip ip-address }&<1-5> { domain domain-name |fullusername user-name }”L2TP组视图命令用来配置本端作为L2TP LAC端时发起呼叫的触发条件。命令中的可选项和参数说明如下:

clip_p_w_picpath005[2]ip ip-address }&<1-5>:指定隧道对端(LNS)的IP地址。其中,ip-address表示LNS的IP地址,&<1-5>表示前面的参数最多可以输入5次。

clip_p_w_picpath005[3]domain domain-name:二选一选项,指定触发连接请求的用户域。其中,参数domain-name表示用户域名,1~30个字符的字符串,不区分大小写。

clip_p_w_picpath005[4]fullusername user-name:二选一选项,指定触发连接请求的用户全名。其中,参数user-name表示用户全名,为1~32个字符的字符串,区分大小写。

可用“undo start”命令删除配置的触发条件。

【注意】此命令在LAC端使用,可以指定LNS的IP地址,并支持多种连接请求触发条件。可以根据用户域名来发起建立隧道的连接请求。比如用户所在公司的域名为lycb.net,则可以指定包含lycb.net域名的用户为×××用户。

可以直接通过用户全名来指定该用户为×××用户。如果发现是×××用户,则本端(LAC)按照LNS配置的先后顺序依次向每个LNS发送建立L2TP隧道的连接请求,接收到某个LNS的接受应答后,该LNS就作为隧道的对端;否则LAC向下一个LNS发起隧道连接请求。

最多可以设置五个LNS,即允许存在备用LNS。LAC按照LNS配置的先后顺序,依次向对端(LNS)进行L2TP连接请求,直到接收到某个LNS的接受应答,该LNS就成为L2TP隧道的对端。

以下示例是根据域名lycbc.net来判断×××用户,对应的总部LNS的IP地址为202.10.0.1。

<Sysname> system-view

[Sysname] l2tp-group 1

[Sysname-l2tp1] start l2tp ip 202.10.0.1 domain lycb.net

2. AVP数据的隐藏传输的配置

L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,这些消息再通过 UDP 的 1701 端口承载于 TCP/IP 之上。

L2TP 消息可以分为两种类型,一种是控制消息,另一种是数据消息。控制消息用于隧道连接和会话连接的建立与维护;数据消息用于承载用户的 PPP 会话数据包。控制消息中的参数用AVP(Attribute Value Pair,属性值对)来表示,使得协议具有很好的扩展性。还可使用消息丢失重传和定时检测通道连通性等机制来保证 L2TP 层传输的可靠性。

数据消息用于承载用户的 PPP 会话数据包。L2TP 数据消息的传输不采用重传机制,所以它无法保证传输的可靠性,但这一点可以通过上层协议(如 TCP 等)得到保证:数据消息的传输可以根据应用的需要灵活地采用流控或不流控机制,甚至可以在传输过程中动态地使用消息序列号从而动态地激活消息顺序检测和流量控制功能;在采用流量控制的过程中,对于失序消息的处理采用了缓存重排序的方法来提高数据传输的有效性。

如果L2TP ×××客户端用户对数据的安全性要求高,可以使用表11-4所示的配置步骤将AVP数据的传输方式配置成为隐藏传输,即对AVP数据进行加密(并非真正意义上的“加密”)。

表11-4 AVP数据的隐藏传输的配置步骤

clip_p_w_picpath009

下面介绍以上配置步骤中的两个主要命令。

1)tunnel name命令

tunnel name name”L2TP组视图命令用来配置隧道本端的名称。参数name用来标识隧道本端的名称,为1~30个字符的字符串,区分大小写。可用“undo tunnel name”命令恢复默认情况。默认情况下,隧道本端的名称为系统的名称。当创建一个L2TP组时,本端名称将被初始化成系统的名称。

以下示例是配置隧道本端名称为itsme。

<Sysname> system-view

[Sysname] l2tp-group 1

[Sysname-l2tp1] tunnel name itsme

2)tunnel avp-hidden命令

tunnel avp-hidden”L2TP组视图命令用来配置隧道采用隐藏方式传输AVP数据。可用“undo tunnel avp-hidden”命令恢复默认情况。默认情况下,隧道采用明文方式传输AVP数据。但该命令仅在LAC端配置有效。

以下示例是配置AVP数据采用隐藏方式传输。

<Sysname> system-view

[Sysname] l2tp-group 1

[Sysname-l2tp1] tunnel avp-hidden

3. ×××用户的AAA认证的配置

因为在NAS发起模式中,×××用户首先经过LAC(NAS)的验证。通过在LAC端配置对×××用户的AAA认证,可以对远程拨入用户的身份信息(用户名、密码)进行验证。验证通过后,才能发起建立隧道连接的请求,否则不会为用户建立隧道连接。

设备支持的AAA认证包括本地和远程两种认证方式:如果选择本地认证方式,则需要在LAC上配置本地用户名和密码,LAC通过检查用户名/密码是否与本地配置的用户名/密码相符来验证用户身份;如果选择远程认证方式,则需要在RADIUS/HWTACACS服务器上配置用户名和密码,LAC将用户名和密码发往服务器进行验证申请,服务器负责验证用户身份。在此仅以本地验证为例进行介绍。

LAC端×××用户的本地AAA认证配置步骤如表11-5所示。

11-5 LAC端×××用户的本地AAA本地认证的配置步骤

clip_p_w_picpath011

下面介绍以上配置步骤中的主要命令。
1)local-user命令
“local-user user-name”系统视图命令用来添加本地用户,并进入本地用户视图。该命令可以创建所有类型本地用户,具体的用户类型是通过后面将要介绍的service-type命令来指定。但在删除时,local-user命令和service-type命令组合在一起了,可直接用“undo { user-name | all [ service-type { d*** | ftp | lan-access | pad |portal | ppp | ssh | telnet | terminal } ] }”命令删除指定的本地用户。默认情况下,无本地用户。两命令中的可选项和参数说明如下:
user-name:用来指定所添加的本地用户名,为1~55个字符的字符串,区分大小写。用户名不能携带域名,不能包括符号“\”、“|”、“/”、“:”、“*”、“?”、“<”、“>”和“@”,且不能为“a”、“al”或“all”。
all:指定要删除所有的用户。
service-type:指定要删除的用户类型。具体用户类型如下:
? d***:多选一选项,指定要删除D×××隧道用户;
? ftp:多选一选项,指定要删除FTP类型用户;
? lan-access:多选一选项,指定要删除lan-access类型用户(主要指以太网接入用户,比如802.1X用户);
? pad:多选一选项,指定要删除X.25 PAD用户;
? portal:多选一选项,指定要删除Portal用户;
? ppp:多选一选项,指定要删除PPP用户;
? ssh:多选一选项,指定要删除SSH用户;
? telnet:多选一选项,指定要删除Telnet用户;
? terminal:多选一选项,指定要删除从Console口、AUX口、Asyn口登录的终端用户。不同型号的设备支持的接口类型不同,请以设备的实际情况为准。
以下示例是添加名称为winda的本地用户。
<Sysname> system-view
[Sysname] local-user winda
[Sysname-luser-winda]
2)password命令
“password { cipher | simple } password”本地用户视图命令用来为前面创建的本地用户设置密码,并指定密码类型。命令中的可选项和参数说明如下:
cipher:二选一选项,表示所配置的密码为密文显示。
simple:二选一选项,表示所设置的密码为明文显示。
password:指定设置的密码。
明文密码可以是长度小于等于63个字符的连续字符串,密文密码的长度取值为24或88个字符。对于simple方式,输入的密码必须是明文密码,在display命令中的显示也是明文方式;对于cipher方式,输入的密码可以是密文密码也可以是明文密码,但在display命令中的显示时是密文。
可用“undo password”命令取消本地用户的密码。
【注意】当采用“local-user password-display-mode cipher-force”命令后,即使用户通过password命令指定密码显示方式为明文显示(即simple方式)后,密码也会显示为密文。
在cipher方式下,长度小于等于16的明文密码会被加密为长度是24的密文,长度大于16且小于等于63的明文密码会被加密为长度是88的密文。当用户输入长度为24的密码时,如果密码能够被系统解密,则按密文密码处理;若不能被解密,则按明文密码处理。
以下示例是设置名称为winda用户的密码为明文显示,密码为123456。
<Sysname> system-view
[Sysname] local-user winda
[Sysname-luser-winda] password simple 123456
3)service-type命令
“service-type { d*** | ftp | lan-access | { pad | ssh | telnet |terminal } | portal | ppp }”本地用户视图命令用来设置前面通过local-user命令创建的用户可以使用的服务类型,也就是指定前面所创建的用户可以当成哪些类型的用户。命令中的选项说明如下:
d***:多选一选项,指定前面创建的用户可以使用D×××服务。该参数支持情况与设备的型号有关,请以设备的实际情况为准。
ftp:多选一选项,指定前面创建的用户可以使用FTP服务。若授权FTP服务,默认授权使用设备的根目录。
lan-access:多选一选项,指定前面创建的用户可以使用lan-access服务。主要指以太网接入用户,比如802.1X用户。
pad:多选项,指定前面创建的用户可以使用PAD服务。该参数支持情况与设备的型号有关,请以设备的实际情况为准。
ssh:多选项,指定前面创建的用户可以使用SSH服务。该参数支持情况与设备的型号有关,请以设备的实际情况为准。
telnet:多选项,指定前面创建的用户可以使用Telnet服务。
terminal:多选项,指定前面创建的用户可以使用terminal服务(即从Console口、AUX口、Asyn口登录)。不同型号的设备支持的接口类型不同,请以设备的实际情况为准。
portal:多选一选项,指定前面创建的用户可以使用Portal服务。该参数支持情况与设备的型号有关,请以设备的实际情况为准。
ppp:多选一选项,指定前面创建的用户可以使用PPP服务。该参数支持情况与设备的型号有关,请以设备的实际情况为准。
可用“undo service-type { d*** | ftp | lan-access | { pad | ssh | telnet |terminal } * | portal | ppp }”命令删除用户可以使用的服务类型。默认情况下,系统不对用户授权任何服务,也就是说没有为新建的用户指定服务类型。
以下示例是指定用户winda可以用于从Console登录,也可用于PPP服务。
<Sysname> system-view
[Sysname] local-user winda
[Sysname-luser-winda] service-type terminal ppp
4)domain命令
“domain isp-name”系统视图命令用来指定或创建一个ISP域(其实就是指一个连接的进程)并进入其视图。如果指定的ISP域不存在,系统将会创建一个新的ISP域,所有的ISP域在创建后即处于active状态。参数isp-name用来指定所创建的ISP域的域名,为1~24个字符的字符串,不区分大小写,但不能包括“/”、“:”、“*”、“?”、“<”、“>”以及“@”等字符。可使用“undo domain isp-name”命令删除指定的ISP域。默认情况下,系统存在一个名称为system的ISP域,而且这个默认ISP域是不能被删除的,但可以被修改。
以下示例是创建一个新的ISP域test,并进入其视图。
<Sysname> system-view
[Sysname] domain test
[Sysname-isp-test]
5)authentication ppp命令
“authentication ppp local”是“authentication ppp { hwtacacs-schemehwtacacs-scheme-name [ local ] | local | none | radius-scheme radius-scheme-name [ local ] }”ISP域视图命令的子命令,专门用来为PPP用户配置本地认证方案。可用“undo authentication ppp”命令恢复默认情况。默认情况下,PPP用户采用默认的认证方案。
“authentication ppp { hwtacacs-scheme hwtacacs-scheme-name [ local ] |local | none | radius-scheme radius-scheme-name [ local ] }”命令中的可选项和参数说明如下:
hwtacacs-scheme hwtacacs-scheme-name:指定PPP用户采用HWTACACS认证方案。其中,hwtacacs-scheme-name表示HWTACACS方案名,为1~32个字符的字符串。
local:多选一选项,指定PPP用户采用本地认证。
none:多选一选项,指定PPP用户不进行认证。
radius-scheme radius-scheme-name:多选一选项,指定PPP用户采用RADIUS认证方案(由专门部署的RADIUS认证服务器对用户进行认证)。其中,参数radius-scheme-name用来指定RADIUS方案名,为1~32个字符的字符串。
如果采用HWTACACS或者RADIUS方案,则当前ISP域所引用的RADIUS或HWTACACS方案必须是已配置的。
【说明】HWTACACS(Huawei Terminal Access Controller Access Control System,华为终端访问控制系统)协议,是华为公司在TACACS(终端访问控制系统)基础上进行了功能增强的一种安全协议。该协议与RADIUS(远程访问拨入用户系统)协议类似,主要是通过“客户端—服务器”模式与HWTACACS服务器通信来实现多种用户的AAA功能。
以下示例是在ISP域test下,为PPP用户配置本地认证方案。
<Sysname> system-view
[Sysname] domain test
[Sysname-isp-test] authentication ppp local
6)authorization ppp命令
“authorization ppp local”命令是“authorization ppp { hwtacacs-schemehwtacacs-scheme-name [ local ] | local | none | radius-scheme radius-scheme-name [ local ] }”ISP域视图命令,专门用来为PPP用户配置本地授权方案。可用“undo authorization ppp”命令恢复默认情况。默认情况下,PPP用户采用默认的授权方案。
“authorization ppp { hwtacacs-scheme hwtacacs-scheme-name [ local ] |local | none | radius-scheme radius-scheme-name [ local ] }”命令中的可选项和参数说明如下:
hwtacacs-scheme hwtacacs-scheme-name:多选一选项,指定PPP用户采用HWTACACS授权方案。其中,hwtacacs-scheme-name表示HWTACACS方案名,为1~32个字符的字符串。
local:多选一选项,指定PPP用户采用本地授权。
none:多选一选项,指定直接授权,即对用户非常信任,通过直接授权,此时用户的权限为系统的默认权限。
radius-scheme radius-scheme-name:多选一选项,指定PPP用户采用RADIUS授权方案(由专门部署的RADIUS认证服务器对用户进行授权)。其中,参数radius-scheme-name用来指定RADIUS方案名,为1~32个字符的字符串。
如果采用HWTACACS或者RADIUS方案,则当前ISP域所引用的RADIUS或HWTACACS方案必须是已配置的。
以下示例是在系统默认的ISP域system下,为PPP用户配置本地授权证方案。
<Sysname> system-view
[Sysname] domain system
[Sysname-isp-system]authorization ppp local
7)accounting ppp命令
“accounting ppp local”命令是“accounting ppp { hwtacacs-scheme hwtacacs-scheme-name [ local ] | local | none | radius-scheme radius-scheme-name [local ] }”ISP域视图命令的子命令,专门用来为PPP用户配置本地计费方案。可用“undo accounting ppp”命令恢复默认情况。默认情况下,PPP用户采用默认的计费方案。
“accounting ppp { hwtacacs-scheme hwtacacs-scheme-name [ local ] | local |none | radius-scheme radius-scheme-name [ local ] }”命令的可选项和参数说明如下:
hwtacacs-scheme hwtacacs-scheme-name:多选一选项,指定PPP用户采用HWTACACS计费方案。其中,hwtacacs-scheme-name表示HWTACACS方案名,为1~32个字符的字符串。
local:多选一选项,指定PPP用户采用本地计费。
none:多选一选项,不计费。
radius-scheme radius-scheme-name:多选一选项,指定PPP用户采用RADIUS配置的计费方案(由专门部署的RADIUS认证服务器对用户进行授权)。其中,参数radius-scheme-name用来指定RADIUS方案名,为1~32个字符的字符串。
如果采用HWTACACS或者RADIUS方案,则当前ISP域所引用的RADIUS或HWTACACS方案必须是已配置的。
以下示例是在系统默认的ISP域system下,为PPP用户配置本地计费方案。
<Sysname> system-view
[Sysname] domain system
[Sysname-isp-system] accounting ppp local
【说明】如果要使LAC端成功对用户进行认证,还需要在相应的LAC端的接口(例如接入用户的异步串口)下进行PPP的相关配置。接入用户的接口上需要配置PPP用户的验证方式为PAP或CHAP。