点对点协议 (PPP) 身份验证问题是拨号链路故障的最常见原因之一。本文提供一些针对 PPP 身份验证问题的故障排除过程。
启用 debug ppp negotiation 和 debug ppp authentication。
直到链路控制协议(LCP)阶段完成并处于打开状态,PPP鉴权阶段才开始。如果 debug ppp negotiation 未指示 LCP 处于打开状态,则应在解决此问题后再继续。
必须在两端都配置 PPP 身份验证。根据需要发出以下命令:
本地计算机(或本地路由器) — 这是当前正在运行调试会话的系统。将调试会话从一台路由器移动到另一台路由器时,请将术语“本地计算机”应用到另一台路由器。
对等 — 点对点链路的另一端。因此,设备不是本地机器。
例如,如果在RouterA上发出debug ppp negotiation命令,则它是本地计算机,而RouterB是对等体。但是,如果将调试转移到RouterB,则它将成为本地计算机,而RouterA将成为对等设备。
注意:术语“本地计算机”和“对等体”不表示客户端 — 服务器关系。根据调试会话的运行位置,拨入客户端可能是本地计算机或对等体。
Cisco 建议您了解以下主题:
您必须能够查看和理解 debug ppp negotiation 输出。有关详细信息,请参阅文档了解debug ppp negotiation输出。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文包括一些流程图来协助解决排错。单击带编号的圆圈,即可转到下一个流程图。
要确定路由器是执行CHAP还是PAP身份验证,请在debug ppp negotiation和debug ppp authentication输出中查找以下行:
在身份验证阶段查找CHAP:
*Mar 7 21:16:29.468: BR0:1 PPP: Phase is AUTHENTICATING, by this end *Mar 7 21:16:29.468: BR0:1 CHAP: O CHALLENGE id 5 len 33 from "maui-soho-03"
在身份验证阶段查找PAP:
*Mar 7 21:24:11.980: BR0:1 PPP: Phase is AUTHENTICATING, by both *Mar 7 21:24:12.084: BR0:1 PAP: I AUTH-REQ id 1 len 23 from "maui-soho-01"
在debug ppp negotiation输出中查找以下消息之一:
BR0:1 PPP: Phase is AUTHENTICATING, by both
上述消息指示路由器执行的是双向身份验证。
以下消息只要有一条存在即指示路由器执行的是单向身份验证:
BR0:1 PPP: Phase is AUTHENTICATING, by the peer
或
BR0:1 PPP: Phase is AUTHENTICATING, by this end
检查是否收到传入的 termreq 或 failure 消息。请记住,“I”指示消息是传入消息:
BR0:1 LCP: I TERMREQ
或
BR0:1 CHAP: I FAILURE
传入故障表明对等体无法对本地路由器的用户名和口令进行身份验证。这可能是由本地路由器(未提供对等体所需的用户名和口令)或远程路由器上的错误配置导致的。
在 debug ppp negotiation 输出中查找以下行:
BR0:1 CHAP: O CHALLENGE id 9 len 33 from "maui-soho-03"
或
BR0:1 CHAP: O RESPONSE id 16 len 33 from "maui-soho-03"
您会看到输出质询或响应中的用户名。在本例中,它是maui-soho-03。您需要此命令来验证用于身份验证的用户名和密码是否与远程端预期的用户名和密码匹配。例如,如果本地路由器向对等体将自身标识为 A,而对等体需要的是 B,则身份验证失败。
如果传出质询中的用户名与主机名不同,请查找 ppp chap hostname <username> 命令,其中 username 与传出质询中的用户名相对应。记下用户名和口令(在附带的 ppp chap password 命令中)。 在对远程路由器进行故障排除时,您将使用此信息。
由于已确定本地路由器收到传入故障,因此我们知道在对等体上发生了故障。如果您有权访问远程 Cisco 路由器,请在该设备上进行故障排除。
如果您无权访问远程路由器,请与该路由器的管理员联系以确认所需的用户名和口令。
提出以下问题:
远程路由器所需的用户名是什么?
在物理或拨号器接口下使用ppp chap hostname <username>命令。在此处配置远程管理员提供的用户名。
注意:区分大小写。
远程路由器所需的口令是什么?
在物理或拨号器接口下使用ppp chap password<password>命令。
注意:区分大小写。
有关详细信息,请参阅使用 ppp chap hostname 和 ppp authentication chap callin 命令进行 PPP 身份验证一文。
如果对等体检测到传入故障消息,这表明本地路由器未能对对等体进行身份验证,因此发出了该消息。因此,您现在必须对指示传出故障的路由器进行故障排除。
本地路由器上的以下消息表示传出故障:
BR0:1 CHAP: O FAILURE id 10 len 26 msg is "Authentication failure"
或
BR0:1 LCP: O TERMREQ [Open] id 22 len 4
如果路由器不使用基于服务器的身份验证、授权和记帐 (AAA) 系统(Radius 或 Tacacs+),则路由器不能使用 AAA 和本地 AAA。检查 debug 输出中是否有以下消息之一:
Unable to Validate Response
Username <username> Not Found
BR0:1 CHAP: I RESPONSE id 18 len 33 from "maui-soho-03" ! -- Incoming CHAP response to our challenge. ! -- The username used in the response is maui-soho-03. BR0:1 CHAP: Unable to validate Response. Username maui-soho-03 not found ! -- The username supplied by the peer is not configured on the router. ! -- We assume the peer does not have permission to connect. BR0:1 CHAP: O FAILURE id 18 len 26 msg is "Authentication failure" ! -- Outgoing CHAP failure message. ! -- The peer will see this as an incoming failure. BR0:1 PPP: Phase is TERMINATING [0 sess, 0 load]
导致用户名不匹配的原因有两个:
对等体未提供本地路由器所需的用户名。例如,我们需要(并已配置)用户名 RouterA,但对等体使用的名称是 RouterB。可以配置对等体发送的用户名和口令,或者使用正确的用户名更正对等体。
本地路由器未配置用户名。如果对等体提供的用户名与本地路由器所需的用户名匹配,则配置用户名和口令。
当对等体使用 ppp chap hostname 命令配置路由器主机名之外的用户名时,通常会发生此问题。
使用username <username> password <password>命令,其中<username>将替换为上述错误消息中的用户名。
Username <username> Not Found
Unable to Authenticate for Peer
BR0:1 CHAP: I CHALLENGE id 17 len 33 from "maui-soho-01" ! -- Incoming challenge from maui-soho-01. ! -- This router must look up the username specified ! -- in order to create the CHAP response. BR0:1 CHAP: Username maui-soho-01 not found ! -- The username (maui-soho-01) supplied by the peer is not configured locally. BR0:1 CHAP: Unable to authenticate for peer ! -- Since this router does not recognize the username ! -- it cannot create the outgoing CHAP RESPONSE. BR0:1 PPP: Phase is TERMINATING ! -- Authentication fails.
导致用户名不匹配的原因有两个:
对等体未提供本地路由器所需的用户名。例如,我们期望(并配置)用户名RouterA。但是,对等体使用了名称RouterB。您可以配置对等体发送的用户名和密码,或者使用正确的用户名更新对等体。
本地路由器未配置用户名。如果对等体提供的用户名与本地路由器所需的用户名匹配,则配置用户名和口令。
当对等体使用 ppp chap hostname 命令配置路由器主机名之外的用户名时,通常会发生此问题。
使用username <username> password <password>命令,其中<username>将替换为上述错误消息中的用户名。
BR0:1 CHAP: I RESPONSE id 16 len 33 from "maui-soho-03" BR0:1 CHAP: O FAILURE id 16 len 25 msg is "MD/DES compare failed"
此错误是由口令不匹配造成的。这可能由两个原因导致:
对等体未提供本地路由器所需的口令。例如,我们需要(并已配置)口令 LetmeIn,但对等体使用的口令是 letmein。可以重新配置对等体发送的用户名和口令,或者使用正确的用户名更正对等体。
本地路由器未正确配置口令。如果已验证对等体所提供的口令正确无误,请重新配置本地路由器。
解决方案:
使用以下命令删除现有用户名和密码条目:
no username <username>
其中 <username> 替换为错误消息中的用户名。在此示例中,该用户名是 maui-soho-03。
使用以下命令配置用户名和密码:
usernamepassword
用户名应与上面显示的 CHAP 消息中的相同。口令应与远程路由器上的口令相匹配。
注意:本文档不用作AAA故障排除资源。有关 AAA 故障排除的详细信息,请参阅下列资源:
您可能无法向ACS服务器进行身份验证,因为ACS服务器未收到身份验证请求,导致会话失败。此行为在Cisco Bug ID CSCee04466(仅限注册客户)下观察和记录。 解决方法是使用RADIUS服务器进行PPP会话。但是,请保留TACACS+服务器,以便在路由器上进行管理。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
18-Dec-2007 |
初始版本 |