「Huawei VRP」- 配置 L2TP 服务、连接 L2TP 服务

  CREATED BY JENKINSBOT

问题描述

L2TP 具有多种应用方式,我们的场景是:
1)在两个出口网络设备上,配置 L2TP 服务(LNS、LAC)以实现两个网络互联;
2)而两个内部网络内的用户对此并无感知,用户无需进行任何操作;

该笔记将记录:在 Huawei 中,如何配置网络设备来提供 L2TP 服务(LNS),并用华为设备来连接 LNS,以及相关问题解决办法。

解决方案

该笔记内容参考自官方文档,目的是熟悉配置过程(实验目的),了解相关的常见问题。

建议参考华为设备手册(配置L2TP Client发起L2TP连接),以获取更加详细的说明。

网络拓扑概述

配置 LNS 服务

[AR2]aaa
[AR2-aaa]local-user huawei password cipher Huawei@123
[AR2-aaa]local-user huawei service-type ppp

[AR2]l2tp enable

[AR2]ip pool l2tp-srv-pool
[AR2-ip-pool-l2tp-srv-pool]network 192.168.10.1 mask 24
[AR2-ip-pool-l2tp-srv-pool]gateway-list 192.168.10.254

[AR2]interface Virtual-Template 0
[AR2-Virtual-Template0]ip address 192.168.10.254 24           # L2TP 网关地址
[AR2-Virtual-Template0]remote address pool l2tp-srv-pool
[AR2-Virtual-Template0]ppp authentication-mode chap

[AR2]l2tp-group 2 
[AR2-l2tp2]tunnel password cipher Huawei@123
[AR2-l2tp2]tunnel name AR2                                    # 根据我们对文档的理解,LNS 的 Tunnel Name 并不参与验证,仅是标识
[AR2-l2tp2]allow l2tp virtual-template 0 remote AR1-to-AR2    # 仅允许特定隧道名来发起连接(非 l2tp group 1 必须指定 remote 参数)

配置 LAC 服务

[AR1]l2tp enable

[AR1]interface Virtual-Template 0
[AR1-Virtual-Template0]ip address ppp-negotiate 
[AR1-Virtual-Template0]ppp chap user huawei
[AR1-Virtual-Template0]ppp chap password cipher Huawei@123
[AR1-Virtual-Template0]l2tp-auto-client enable

[AR2]l2tp-group 2 
[AR2-l2tp2]tunnel password cipher Huawei@123
[AR2-l2tp2]tunnel name AR1-to-AR2                             # 我们的 LNS 仅允许该隧道名,所以本端需要使用该隧道名; 
[AR2-l2tp2]start l2tp ip 10.0.12.2 fullusername huawei

常见问题处理

用户名大小写问题(用户名密码正确,但是认证失败)

当华为设备登录时,本地的用户名是小写的,即 aaa 里的用户名都是小写字母。我们在 Web 页面使用大写的用户名,但是保存后全部为小写。

我们的 xl2tpd LNS 配置用户名为大写,导致无法找到与之匹配的用户,认证失败。

所以,只能修改 xl2tpd 服务,全部使用小写用户名(我们密码也该为小写,虽然没有必要)

对于不支持隧道名称的客户端

部分客户端(通常是桌面环境),并不支持隧道名及隧道认证,所以需要对 LNS 进行调整:

[AR2]l2tp-group 1                                    # 其他 l2tp-group 的 allow 必须指定 remote 名称;
[AR2-l2tp2]undo tunnel authentication                # 客户端不支持隧道认证,所有取消隧道认证;
[AR2-l2tp2]allow l2tp virtual-template 0             # 不指定 Remote 以允许任意客户端连接(主要原因是客户端不支持指定隧道名)

结合如上配置,GNOME Desktop 的 L2TP 能够成功连接(鉴于未开启 IPSec 服务,所以当连接时也不要配置 IPSec 相关内容);