问题描述
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 相关内容);