共享密钥还是用户登录:L2TP/IPsec 的哪个字段出了问题?
预共享密钥证明对端,而 PPP 用户名和密码证明人。错误码告诉你两层中哪一层断了。
一个办公室可以把同一个 IPsec 密钥发给每台笔记本,而每个人仍用自己的账号登录,所以「密钥正确」和「密码正确」可以同时成立,登录却仍然失败。L2TP 和 IPsec 在不同阶段认证不同的对象。比较这两层,并用区分它们的错误码来判断,比再把两个值都换一遍更快结案。这些阶段不能互换,你眼前的提示其实已经说明是哪一层在起作用。
两层,两种不同的身份
IPsec 的对端认证先运行。客户端与网关在保护任何隧道载荷之前,先用预共享密钥或证书互相证明身份。L2TP 会话内部的 PPP 交换随后进行,你的用户名和密码正是在那里对照服务器的账户库校验。
各阶段是独立的,所以 有效的用户账号救不了错误的 IPsec 密钥,正确的密钥也救不了过期的密码。在工单里把两者分开记录,诊断通常从第一条点明阶段的日志行就能得出。
| Observed failure | Stage that rejected it | Field to touch |
|---|---|---|
| Security layer error 789 during initial negotiation | IKE and IPsec peer authentication | The pre-shared key or the certificate |
| Error 691, credentials not recognised | PPP user authentication | User name, password, or account policy |
| Tunnel forms, then drops on the first packet | Neither, usually routing or MTU | Address pool and interface configuration |
| Prompt repeats with no error text | Often the client type selection | The connection profile, not the secret |
预共享密钥证明对端
预共享密钥是网关以及每个连接它的客户端共同持有的组凭据。它证明对端知道这个密钥,IKE 再由它派生出保护连接的各种密钥。那次交换中没有任何信息能识别坐在键盘前的人。同一个隧道里之所以还有第二层用户登录,原因正在于此。
这种设计对吊销有实际影响。丢失一台笔记本就意味着要为所有使用它的设备轮换密钥;除非部署改用证书,那样可以只移除单台设备而不动其余设备。这里的取舍是管理工作量与影响范围之比。
写进配置文件里的密钥也是最容易通过截图和聊天泄露的凭据。应当把它当作共享的基础设施材料,而不是个人密码,因为它本来就是。
登录属于 PPP
在 L2TP 会话内部,PPP 协商认证,并请服务器校验你输入的那一对值。在 Windows 上,它就是配置文件中请求的用户名和密码;在路由器上,则是 PPP 配置文件所引用的那对值。校验时对照的是账户库,而不是密钥。两个人可以共用一台笔记本和一把密钥,在这个阶段仍能被区分开。
因为这是用户认证,所以所有常规账户策略都适用:密码过期、账户锁定、拨入权限,或者必须带域名的名称。错误 691 报告的是这一组合被拒绝,所以在重新输入任何内容之前,先读服务器的计费记录。
让错误码来选字段
错误 789 指明的安全层,指向 IPsec 阶段。确认双方预共享密钥完全一致、网关期望的对端标识与客户端发送的一致,并且客户端配置的是 L2TP/IPsec 而不是别的类型。
错误 691 指明的凭据,指向 PPP。在改密钥之前先检查账户状态和准确的名字格式,因为同时改两者会毁掉你正在读的证据。
如果隧道起来了但流量依然中断,就彻底停止修改认证字段。去看地址池、回到客户端子网的路由以及 MTU:只有故障仍在两层之内时,比较这两层才有意义。