PPPoE接入用户无法上线常见故障处理
了解PPPoE接入用户上线过程
PPPoE用户上线过程要经过PPPoE协商和PPP协商两个阶段,其中PPP协商包括LCP协商、PAP/CHAP认证、NCP协商阶段。
PPPoE协商
PPPoE协商是设备为用户分配PPPoE接入用的Session ID,用来唯一标识一条用户与设备之间的PPPoE虚拟链路。PPPoE的协商过程如图1所示。
- 用户广播一个PADI(PPPoE Active Discovery Initiation,PPPoE激活发现起始)报文,在此报文中包含用户想要得到的服务类型信息。
- 以太网内的所有接入集中器(如图中的NE40E)在收到这个初始化报文后,将其中请求的服务与自己能提供的服务进行比较,其中可以为此用户提供此服务的NE40E回应PADO(PPPoE Active Discovery Offer,PPPoE激活发现服务)报文。
- 用户可能会收到多个NE40E回应的PADO报文。用户根据一定的条件从返回PADO报文的NE40E中选定符合条件的NE40E,并向它返回一个会话请求报文PADR(非广播)(PPPoE Active Discovery Request,PPPoE激活发现请求),在PADR报文中封装所需的服务信息。
- 被选定的NE40E在收到PADR报文后会产生一个会话标识以唯一的标识它和主机的这段PPPoE会话。并把这个特定的会话标识包含在会话确认报文PADS(PPPoE Active Discovery Session-confirmation,PPPoE激活发现会话确认)中回应给用户,如果没有错误发生就进入到PPP会话阶段,而用户在收到会话确认报文后如果没有错误发生也进入到PPP会话阶段。
PPP协商
PPP协商
PPP协商包括LCP协商、PAP/CHAP认证、NCP协商阶段。PPP协商过程如图2所示。
- LCP协商主要进行PPP MRU(Maximum Receive Unit,最大接收单元)、协商超时时间间隔及链路处于Dead状态的时间的协商。
- PAP/CHAP认证:
- PAP为两次握手协议,它通过用户名及密码来对用户进行认证,且以明文的方式传递用户名及密码,因此,适用于对网络安全要求相对较低的环境。
- CHAP为三次握手协议,只在网络上传输用户名,并不传输用户密码,因此它的安全性要比PAP高。
- NCP协商主要功能是协商PPP报文的网络层参数,如IPCP、IPv6CP等,其中最为常见的是IPCP协议。PPPoE用户主要通过IPCP协议来获取访问网络的IP地址或IP地址段。
故障处理步骤
- 执行命令display aaa online-fail-record查看用户上线失败原因。
<HUAWEI> display aaa online-fail-record username test@huawei ------------------------------------------------------------------- User name : test@huawei User MAC : 00e0-fc12-3456 User access type : PPPoE User interface : Atm4/0/2 User Pe Vlan : 99 User Ce Vlan : 99 User IP address : - User ID : 233 User authen state : Authened User acct state : AcctIdle User author state : AuthorIdle User login time : 2009-09-04 15:14:14 Online fail reason : PPP with authentication fail -------------------------------------------------------------------
Online fail reason字段显示的是用户上线失败的原因,根据原因可以大概判断故障,为后面的具体定位提供指引,常见的PPPoE用户上线失败的原因如表1所示。
表1-1 PPPoE用户上线失败常见原因上线失败原因
解释
PPP with authentication fail
PPP用户认证失败。
IP address alloc fail
IP地址分配失败。
IP address conflict
IP地址冲突。
mac address conflict
MAC地址冲突。
Start accounting fail
开始计费失败。
Domain or user access limit
域或用户接入限制。
Port access limit
端口接入限制。
PPP negotiate fail
PPP协商失败。
Send authentication request fail
发送认证请求失败。
RADIUS authentication reject
RADIUS认证拒绝。
RADIUS authentication send fail
发送认证RADIUS请求失败。
Local authentication reject
本地认证拒绝。
Local authentication no user
找不到本地用户。
Local Authentication user type not match
本地帐号类型不匹配。
Local Authentication user block
本地帐号未激活。
- 如果用户可查询到上线失败记录,则根据上线失败原因检查配置步骤,如未能初步检查出何处配置有误,请执行步骤3。
- 如果用户没有出现在上线失败记录中,则用户并没有上线。这说明用户PPPoE的链路没有建立,请执行步骤2。
- 查看用户是否被抑制。
在系统视图下执行命令display ppp [ slot slot-number ] chasten-user [ [ mac-address mac-address ] | [ option105 [ circuit-id circuit-id ] [ remote-id remote-id ] ] ],查看该用户是否被抑制。
例如,查看MAC地址为00-e0-fc-12-34-56的用户是否被抑制:
- 如果用户被抑制,根据显示的信息,稍后重新拨号上线即可。
<HUAWEI> system-view [~HUAWEI] display ppp slot ------------------GLOBAL PPP CHASTEN USERS SLOT 1 --------------------- (1):MAC 00e0-fc12-3456 Option105(circuitid:123 remoteid:abcde) will be free after 55s (online-fail) ------------------PPPOE VLAN CHASTENUSERS SLOT 1 --------------------- No User is blocked
- 如果用户没有被抑制,请执行步骤3。
<HUAWEI> system-view [~HUAWEI] display ppp slot ------------------GLOBAL PPP CHASTEN USERS SLOT 1 --------------------- 00-e0-fc-12-34-56 is not block ------------------PPPOE VLAN CHASTENUSERS SLOT 1 --------------------- 00-e0-fc-12-34-56 is not block
- 如果用户被抑制,根据显示的信息,稍后重新拨号上线即可。
- 查看业务跟踪的消息。
执行命令trace enable打开用户的业务跟踪功能,再执行命令trace access-user创建业务跟踪对象,然后执行命令terminal debugging和terminal monitor打开命令行用户终端显示功能。之后进行用户上线测试,在用户上线过程结束后,查看是否生成.业务跟踪的消息。
- 如果NE40E没有收到PADI或PADR报文,请检查二层网络是否可达、端口状态是否正常、接入类型是否是二层用户、是否配置了PPP认证、接口下是否绑定了虚拟模板等。
- 如果无法看到业务跟踪的消息,说明用户没有任何报文送到NE40E,请执行步骤4。
- 如果NE40E收到了PADI和PADR报文,业务跟踪消息正常。这时执行命令display access-usermac-address [ mac-address ]查看同一个MAC地址是否已经有用户在线。
- 如果MAC地址没有冲突,说明PPPoE协商阶段成功,可能是PPP阶段协商失败,请执行步骤5。
- 如果MAC地址冲突,说明该端口下已经有同MAC地址用户存在了,确认是否可下线其他接入VLAN的同MAC地址用户后,重新拨号上线。
- 检查设备故障。
对于出现看不到用户任何业务跟踪消息的情况,请检查以下配置:
- 确认设备物理连接均正常。
- 确认二层网络配置正确。
如果设备检查无误后,用户仍无法上网,可执行步骤5。
- 检查LCP协商过程是否通过。执行命令debugging ppp lcp packet interface打开调试开关,查看其中的config-nak/config-reject报文,定位出报文中拒绝或不能识别的选项。比较常见的故障原因有:
- 某些PPPoE客户端实现的不标准,发送了config-request报文,NE40E响应了config-nak/config-reject报文,此时客户端应当修改/增减相应config-request中的属性值或属性,但客户端可能一直不改变这些协商属性导致协商失败。这时,修改相应的协商属性使得设备间保持一致即可。
- NE40E配置了CHAP验证,但客户端只支持PAP验证,所以LCP协商一直不通过导致上线失败。这时,修改验证方式使设备间保持一致即可。
如果LCP协商过程通过,用户仍无法上线,请执行步骤6。
- 检查认证是否成功。
执行命令debugging ppp chap packet interface或debugging ppp pap packet interface打开调试开关,查看NE40E在收到Response报文后是否回应了success。
- 如果回应了success,说明认证成功,请执行步骤7。
- 如果没有回应success,要检查用户名和域的配置是否和NE40E一致或者NE40E上配置的远端认证服务器一致。
- 如果配置一致,请执行步骤9。
- 如果配置不一致,请修改配置保持一致。
- 判断NCP是否成功。
NCP协商在PPPoE接入中一般只有地址的协商,所以NCP协商失败也就是地址协商失败。
检查地址分配:
- 对于本地分配地址的情况
请在域视图下执行命令display this,检查域下是否引用了相关的地址池。执行命令display ip pool name,检查地址池中是否有空闲的IP地址。
如果是RAIDUS指定地址池,则需要下发的属性(88,Framed-Pool)正确,下发的字符串中如果含有“@”或者“#”字符,则只取这两个字符前面的部分作为地址池名。并且需要保证指定的地址池在NE40E上。
- 对于RADIUS分配地址的情况
请查看RADIUS认证响应报文中8号Framed-IP-Address属性值是否正确。
RADIUS服务器将Framed-IP-Address属性值赋值为以下几种情况视为下发的地址不合法,通过这个属性下发的地址不会生效,将会被丢弃:
- 0
- 0xFFFFFFFE或者0xFFFFFFFF
- 127.0.0.0/8网段的地址
- 224~255.0.0.0/8网段的地址
如果RADIUS服务器没有下发这个属性值,则由域下的本地地址池分配地址。
- 对于由NE40E代理作为DHCP客户端向DHCP服务器申请地址的情况,如果IP地址分配失败,则需要检查以下方面:
- NE40E上DHCP服务器组配置是否正确,且在对应的地址池下引用。
- 到DHCP服务器组路由是否可达。
- 服务器工作是否正常。
- DHCP分配的地址是否合法。
- 是否在NE40E相应地址池的范围内。
- 掩码和NE40E地址池配置是否一致。
- 地址是否和当前在线用户有冲突。
- 对于本地分配地址的情况
- 解决计费失败。
如果这时用户还无法上线,则可能是计费故障,最常见的是开始计费失败。
对NE40E来说,不存在本地计费的情况。只有RADIUS、HWTACAS和不计费三种,不计费的情况不会产生计费失败。
说明:
如果RADIUS和HWTACAS这两种计费失败后,NE40E将计费先转入本地保存后续计费话单,计费服务器恢复后,NE40E将话单上传给服务器。如果在本地保存的计费信息已满,而计费服务器还未恢复时,后续的计费信息将丢弃。
- 如果检查结束,故障仍然无法排除,请联系技术支持工程师。