串行链路故障处理的一般步骤如下:
1. 物理层问题分析
设备表现为广域网接口无法正常使用时,首先应该从物理层开始检查。使用display interface命令查看接口信息,例如执行命令display interface bri 0(BRI接口 0)或display interface serial 1 (串口 1),根据显示信息中的“硬件设备的状态”和“LCP的状态”判断物理层是否正常。
如下是一个Quidway R2631路由器的例子:
[Router]display interface serial 0
Serial0 is up, line protocol is up
physical layer is synchronous
interface is DTE, clock is DTECLK1, cable type is V35
Maximum Transmission Unit is 1500
Internet address is 192.168.1.1
255.255.0.0
Encapsulation is PPP
LCP opened, IPCP opened, IPXCP initial, CCP initial, BRIDGECP initial
1 minutes input rate 2102.86 bytes/sec, 1.75 packets/sec
1 minutes output rate 5549.86 bytes/sec, 3.90 packets/sec
Input queue :(size/max/drops)
0/50/0
Queueing strategy: FIFO
Output queue: (size/max/drops) 47/75/5702
3943 packets input, 212485 bytes, 0 no buffers
4101 packets output, 465119 bytes, 0 no buffers
0 input errors, 0 CRC, 0 frame errors
0 overrunners, 0 aborted sequences,
0 input no buffers
DCD=UP
DTR=UP
DSR=UP
RTS=UP
CTS=UP
Serial0 is up,表明物理层状态UP,,此外Serial0可能为down, administratively down,standby,其中down说明物理层工作异常,应检查物理层配置及设备问题。administratively down,说明物理层被人为关闭。此时可以执行no shutdown命令手工打开此端口。 standby是在使用接口备份功能,备份口的一种状态,也表示接口物理层不可用。
LCP状态也表明了物理层是否向链路层上报lowerup消息,从PPP状态转移图可知。
物理层未发送lowerup,PPP未发送open消息,LCP应处于initial状态;如物理层发送了lowerup,PPP已发送 open消息,发出CONFREQ报文LCP应处于req-send状态;如物理层发送了lowerup,PPP已发送 open消息,发出CONFREQ报文和CONFACK报文, LCP应处于ACKSENT状态,如物理层发送了lowerup,PPP未发送 open消息,LCP应处于starting状态。如物理层未通,应先查找物理层未通的原因。
2. LCP问题的分析
执行如上命令display interface bri 0(BRI接口 0)或display interface serial 1 (串口 1),如显示LCP协议未进入OPENED状态,可考虑为LCP的问题。此方面的问题一般较少出现,如出现应该打开debug ppp packet或debug ppp negotiation,首先检查物理接口的报文收发是否正常,如果确认接口的报文收发正常,并且有大量的CONFNAK、CONFREJ报文出现,或者出现TERMACK、CODEREJ、PROTREJ只类的报文,可以说明是协商的问题,再根据报文协商项内容分析无法协商成功的原因。
3. 验证问题的分析
使用display interface命令查看接口信息,如显示LCP协议进入OPENED状态,而IPCP依然为Initial状态,或者LCP变为OPENED状态后又很快重新开始协商,可考虑为验证的问题,由于此状态为临时状态,不易观察,也可通过debug ppp packet 或debug ppp negotiation 来观察。如果成功协商了验证,PPP会打印出PAP或CHAP验证的报文,如果验证失败,会打印出“PPP authentication failed”信息,可以根据报文的具体内容分析验证失败的原因。有时配置了验证,但是LCP协商过程中该协商项被拒掉,LCP进入OPENED状态会立即重新协商,此时若通过debug ppp event观察,可以看到对端未通过验证的提示信息,例如“The opposite terminal haven't pass the chap authentication!”。
4. IPCP问题的分析
使用display interface命令查看接口信息,如显示LCP协议进入OPENED状态,而IPCP处于REQ_SEND或ACK_RCVD,并观察PPP报文有大量的IPCP报文收发,可说明路由器IPCP协商有问题。若IPCP处于STOPPED状态,也可能是收到IPCP的TERMREQ或CODEREJ导致状态迁移。阅读IPCP报文,可分析出问题原因。由于IPCP必须协商的参数为IP地址,其他为可选择参数,一般来说是IP地址配置有问题,无法进行IPCP协商。此时应给两端接口配置IP地址,此外如果是访问Internet网,可不配置IP地址,但应该配置IP address ppp-negotiate。
5. 其他问题
如LCP、IPCP均已经进入OPENED状态,但是Ping报文无法互通,可考虑路由的原因,可采用直接ping此接口对端的IP地址,如能够互通,证明PPP对IP报文的封装情况正常。如依然有问题,但LCP和IPCP始终处于OPENED状态,可考虑是否链路误码率较高,此情况比较少见。
有时在路由器上配置了aaa-enable之后,LCP和IPCP均已经进入OPENED状态,但很快又重新开始LCP协商,因为配置了aaa-enable之后,缺省要进行计费,如果没有设置计费服务器,AAA会将PPP链路挂断。如果要使用AAA,又不需要计费,可以配置aaa accounting-schem optional,允许不计费使用。
PPP协议的应用比较广泛,以上只是一些常见问题的分析,但实际应用中问题复杂得多,但如果能够阅读PPP报文,了解PPP协商所处于的阶段,和PPP报文的协商过程,问题一般可得到满意的解决。
……