第七章终端故障排除.docx
《第七章终端故障排除.docx》由会员分享,可在线阅读,更多相关《第七章终端故障排除.docx(31页珍藏版)》请在冰豆网上搜索。
第七章终端故障排除
第七章终端故障排除
本章介绍了分析终端故障的基本思路,以及分析终端故障的常用方法和使用命令等。
本章内容:
¾终端故障排除基本思路
¾终端常见故障处理
¾错误信息实例
¾终端故障的其他检测手段
7.1终端故障排除基本思路
故障分析的基本思路:
由底层到上层。
首先分析物理原因,包括连线是否正常、设备是否正常、环境(各种干扰因素)是否对终端工作有不良影响。
检测方法:
跳线、ping。
其次检查配置及参数设置,包括UNIX上配置、终端服务器配置、UNIX参数设置。
检测方法:
分别在UNIX前置机和终端服务器上使用相应的状态查看命令查看各种相关状态,尤其注意查看/tmp/itest.log文件中的提示信息。
7.2终端常见故障处理
7.2.1故障一:
终端上无任何显示
可能的原因
判断方法和解决方案
若此故障发生在终端刚开机时,一般为终端到终端服务器的连接有问题
1、终端是否正常。
短接终端串口2、3脚,在终端上敲键如无回显则终端有问题。
2、检查终端服务器上的配置是否正确,异步口是否处于接终端模式。
3、检查终端服务器到终端的连线是否完好。
在连线的终端服务器一端把2、3短接(如使用的RJ-45网线方式
检查2、3脚是否接反)。
若此故障发生在终端显示“连接建立”以后
1、检查inittab中的配置是否有误
2、检查/tmp/itest.log是否有错误信息
7.2.2故障二:
终端上显示“连接失败”
可能的原因
判断方法和解决方案
终端服务器到前置机的TCP连接没有建立
1、在终端服务器上ping前置机,或者在前置机上ping终端服务器,如超时检查网络是否连接。
检查端口是否UP,路由是否正确。
2、在前置机上键入ps–ef|grepitest检查有没有itest进程,如没有则在/etc下重新启动itest进程。
7.2.3故障三:
终端上显示“加密选项协商失败”,“压缩选项协商失败”认证配置不正确造成终端黑屏
可能的原因
判断方法和解决方案
连接可以建连但选项协商不成功
1、终端服务器上关于固定终端选项配置与unix前置机上itest.conf上的配置不一致;
2、配置正确但是没有生效,比如config表里配置后没有reflash,密码后面多加了空格;
3、版本太老,不支持加密、压缩或者认证选项。
7.2.4故障四:
终端服务器上打印“未在配置文件中配置”
可能的原因
判断方法和解决方案
Itest.conf文件中没有关于该终端服务器上该接口表项的配置
在itest.conf中配置相应的表项
7.2.5故障五:
COM和TERM配置不正确导致登录不上主机
可能的原因
判断方法和解决方案
Unix上/etc/itest.conf表里没有相应的配置
对照路由器上的showterminal信息在itest.conf中配置相应的表项
路由器升级后,comterm号变化,itest.config表没有相应更改
对照路由器的showterminal信息,修改config表配置为正确的comterm号。
或者启用路由器的兼容配置。
Itest版本的原因
Itest4.0foraix有将中端路由器2、3口的comterm号识别为0、1口comterm的问题。
可以换插槽或者升级itest解决
7.2.6故障六:
路由器升级以后,使用MAC绑定的终端不能登录
可能的原因
判断方法和解决方案
配置不相符
对照itest.config表里mac的配置和路由器上showver里systermid的信息是否相符。
7.2.7故障七:
日志信息显示openpty:
/dev/ptyp32,pty_fd=-1
可能的原因
判断方法和解决方案
设备文件不存在
查看dev目录下是否有该文件名,改为其他设备号测试
设备文件已经被其他进程打开
Ps-ef看相关进程是否存在,如果存在杀掉相应进程,或者改为其他设备文件测试
上一次打开后,关闭时虽然主设备背关闭但从设备被业务程序所占没有正常关闭
Ps-ef查看从设备下的相应进程,并杀调。
7.3错误信息实例
7.3.1itest.log错误信息(以下只是信息的关键语句)及原因
信息
原因
accept:
Toomanyopenfiles
终端数目太多,原先设定的每个进程打开的最大文件数不满足要求
readEOFfromsocket
readEOFformpty
终端退出的提示信息
Resetbypeer
tcp连接被路由器复位,可能是线路断掉,可用ping检查线路状况
127.0.0.1:
1039,rootrunstop/refreshcommand.
Root用户登陆管理端口执行stop/refresh命令
screenredrawfuntionopen,keyis:
0x12
开启了终端刷屏功能
"8.1.1.2com2term1notfoundinfile"/etc/itest.conf"!
Itest.conf文件中没有关于8.1.1.2com2term1的配置
1、信息:
accept:
Toomanyopenfiles
原因:
终端数目太多,原先设定的每个进程打开的最大文件数不满足要求
解决:
修改该参数(NOFILES:
maximumnumberofopenfilesperprocess)
scoadmin--Hardware/KernelManager--Kernel|TuneParameters--
7.Userandgroupconfiguration--NOFILES
默认值为110,如果终端数目在150上以上,则此参数值至少在500以上。
2、启动itest程序常见错误:
a.信息:
ftokerror:
Nosuchfileordirectory
原因:
没有创建itest.conf表
解决办法:
通过viitest.conf或是拷贝itest.conf等多种方式创建itest.,Conf
b.信息:
Memoryfault-coredumped
原因:
把itest程序以非二进制方式ftp到UNIX上
以doscp方式拷贝时,没有拷贝完整
解决办法:
重新使用二进制方式tftp或ftp到unix上
c.信息:
itest.sco:
cannotexecute
原因:
没有被赋予对itest的执行权限
解决办法:
使用chmod命令增加执行权限
7.3.2常见问题分析使用的状态参数与命令
物理层相关参数:
终端提供的物理信号线与终端配置的terminaltx-on以及terminalrx-on结合分析;
链路层相关常出问题参数:
不同的设备对链路的要求不同如:
停止位与数据位,流控,校验等;
7.3.2.1终端上可做的操作及操作详解:
1、CTR+H会出现如下画面:
MP2631终端服务程序
软件版本:
2.58
---------------------------------------------------------------------------
编号业务名当前状态已连接时间已发送数据已收到数据快捷键
---------------------------------------------------------------------------
0fix脱机--:
--:
--00无
1tel脱机--:
--:
--00无
---------------------------------------------------------------------------
接口:
async3/1
切换业务:
Ctrl+G+D
关闭业务:
Ctrl+K
帮助:
Ctrl+H
CTR+H---帮助
一般情况下用较多的是切换业务:
Ctrl+G+D关闭业务:
Ctrl+K
2、CTR+G+D
MP2631终端服务程序
0:
fix
1:
tel
请选择远端业务代码:
CTR+G+D――回主选择画面,选择画面的出现条件是路由器配置了模板,把模板应用到了接口。
以及终端接上相应的接口后,路由器会向终端发送选择画面。
和上端unix状况没有任何关系。
一般情况下终端刚开电没有字符显示,或者突然发现为黑屏时,不妨用一下CTR+G+D,如果能够有象上面一样的选择画面出现,说明终端到异步口的连线还是正常的。
如果不出现需要查找终端和路由器之间,以及终端本身、异步口本身的问题。
(注:
如果配置为不显示画面的话就不用在这上面多耗费功夫了)
3、CTR+K
CTR+K是断掉本tcp连接,一般情况下终端出现黑屏时,如果是aix系统,sco系统itest启动时加了-NK参数的情况下,用CTR+K可以断掉整个tcp连接,而且再连时unix会重新送login画面,这样和在unix上杀进程起到了同样的效果。
7.3.2.2路由器上可做的操作及操作详解:
1、showrunterminal
看终端配置
MP1762#showrunter
TermServiceversion:
2.56
terminaltemplatemaipu
terminallocal129.255.11.176
terminalremote0uni129.255.24.100fix-terminal
terminalremote1aix129.255.11.100fix-terminal
terminalremote2tel129.255.24.100telnet
terminalremote3tel129.255.11.100telnet
terminalhost0hesc-charA(主机0的切换热键^A)
terminalhost1hesc-charB(主机1的切换热键^B)
terminalhost2hesc-charC(主机2的切换热键^C)
terminalhost3hesc-charD(主机3的切换热键^D)
terminalredrawconsole\E!
8Q(保存主业务画面的键值)
terminalredraw0\E!
9Q(保存主机0业务画面的键值)
terminalredraw1\E!
10Q(保存主机1业务画面的键值)
terminalredraw2\E!
11Q(保存主机2业务画面的键值)
terminalredraw3\E!
12Q(保存主机3业务画面的键值)
exit
terminalapplymaipuasync1/0async1/15
这一配置为需要保存业务画面的配置,注意:
\E!
8Q-\E!
12Q这些键值的配置需要终端支持,配置后才能够起到保存画面的效果。
2、showterminal
router#showter
TermServiceversion:
2.58
InterfaceTypeCOM/TERMServePortStateTemplateRH-State
[0123456789]
-------------------------------------------------------------------------------
1:
async3/0T97/15768PROMPTaDD
2:
async3/1T98/15776RUNNING-1aD*
3:
async3/2T99/15784WAITINGaDD
4:
async3/3T100/15792WAITINGaDD
5:
async3/4T101/15800WAITINGaDD
6:
async3/5T102/15808WAITINGaDD
7:
async3/6T103/15816WAITINGaDD
8:
async3/7T104/15824WAITINGaDD
9:
async3/8T105/15832WAITINGaDD
10:
async3/9T106/15840WAITINGaDD
11:
async3/10T107/15848WAITINGaDD
12:
async3/11T108/15856WAITINGaDD
13:
async3/12T109/15864WAITINGaDD
14:
async3/13T110/15872WAITINGaDD
15:
async3/14T111/15880WAITINGaDD
16:
async3/15T112/15888WAITINGaDD
-------------------------------------------------------------------------------
Type:
T-Terminal,M-MPDLC
RH-State:
D-DISCONNECT,C-CONNECTING,*-CONNECT
注释与说明:
1.TermServiceversion:
2.58:
为版本信息。
2.Type列:
表示了各个接口所封装的终端协议类型,共有两种:
Terminal协议与MPDLC协议。
3.COM/TERM列:
显示接口所分配的COM/TERM号。
一般在unix上配置itest.conf时不知道COM/TERM号的话就到这来看。
4.State列:
显示路由器终端接口的状态,共有四种状态:
CLOSE、INITIAL、PROMPT和RUNNING。
本例中的WAITING是一个中间过渡状态(表示等待输入字符)具体状态转换请参见后面说明。
5.Template列:
表示该封装终端协议的接口所应用的模板。
一接口只能应用一个模板。
6.RH-State列:
表示与远端主机的连接状态。
即:
local与相应的remotehost的TCP连接状态。
由于我们最多可定义10个远端业务主机故多个业务分别对应在[0123456789]数字下面。
具体远端主机连接状态的转换过程详见后面的描述。
注:
在问题分析过程中,看的稍微多一点的是3,4,6项。
一般情况下终端上报comxtermx未在配置文件中配置错误时,看第3项与itest.conf对比,看是否有配置comterm号错误。
对于第4,6项,经常会有室外同事问,没有接终端为什么会出现running,和connect状态呢?
其实是这个样子,如果模板里配置了auto-link或者模板里只有一个远端业务,而接口是up的的情况下。
连接建立是完全正常的。
具体原因可以见后面接口信号中的(5)
终端接口状态转换:
终端接口共有四种状态:
CLOSE、INITIAL、PROMPT、RUNNING。
状态转换示意图如下:
状态变化事件:
①CLOSE->INITIAL:
接口UP
②INITIAL->PROMPT:
tTermCore任务检查接口,如果配置了多个远端业务,且无Auto-Linking标志,给出选择画面,进入PROMPT状态;
③PROMPT->INITIAL:
终端输入选择数据错误,回到INITIAL状态;
④PROMPT->RUNNING:
终端正确选择远端业务,进入RUNNING状态;
⑤INITIAL->RUNNING:
只配置了一个远端业务,或配置了多个远端业务且有一个置Auto-Linking标志且该业务处于DISCONNECT状态;缺省选定这个远端业务,进入RUNNING状态;
⑥RUNNING->INITIAL:
远端连接中断或收到切换字符串;
⑦INITIAL->CLOSE:
接口被shut或者删除了local或全部remote配置;
⑧PROMPT->CLOSE:
接口被shut或者删除了local或全部remote配置;
⑨RUNNING->CLOSE:
接口被shut或者删除了local或全部remote配置;
远端业务状态机制
对于每个远端业务,可能存在DISCONNECT、CONNECTING和CONNECT三种状态。
1.DISCONNECT状态:
尚未与业务主机建立TCP连接;
2.CONNECTING状态:
正在与业务主机建立TCP连接;
3.CONNECT状态:
已经与业务主机建立TCP连接。
tcp连接状态变迁图:
3、showipsocket
router#showipso
ActiveInternetconnections(includingservers)
PCBProtoRecv-QSend-QLocalAddressForeignAddressvrf(state)
-----------------------------------------------------------------------------------
2046dc0TCP00129.255.11.176.9872129.255.24.100.3051kernelESTABLISHED
2048680TCP00129.255.11.176.1106129.255.11.100.23kernelESTABLISHED
20484f4TCP000.0.0.0.230.0.0.0.0allLISTEN
2048470UDP000.0.0.0.1610.0.0.0.0kernel
2047474UDP000.0.0.0.00.0.0.0.0kernel注释与说明:
1.PCB列:
程序控制块。
2.Proto列:
表示是TCP还是UDP等协议。
3.Recv-Q:
接受队列,从ForeignAddress接受的数据队列
4.Send-Q:
发送队列,发往ForeignAddress的数据队列
5.LocalAddress:
表示本地的ip地址与端口号。
6.ForeignAddress:
表示远端的ip地址与端口号。
Itest服务端口默认为3051端口,也可自行指定(启动多个itest进程时需指定)。
7.(state)列:
表示了TCP连接的状态。
共有十二种状态基,详细状态转换见上
注:
当终端现象表现为大数据量很慢或者一台路由器上的终端经常出现大面积不通,一段时间又好这种情况时,可以在故障时连续几次showipsocket看Recv-Q,Send-Q是否有堵住(数据一直不变)的现象。
要判断tcp是否连接正常,看第7项,如果为establish状态,则证明tcp处于正常连接可以传送数据状态。
4、接口信号
异步模式下的连接参数:
interfaceasync1/2
speed9600
databits8
stopbits1
paritynone
flow-controlsoftware65535
tx-ondsr
encapsulationterminal
exit
(1)speed:
只要终端与异步接口的速率一致,理论上是可以正常使用的。
实际使用中往往与数据包的速率、大小、要求的延时,甚至终端的性能有关(可能有些厂家的终端使用的cpu过老,导致高速率会掉包)。
不过至少常用的9600的速率是不会有什么问题的.
(2)数据位:
数据位可配置位5,6,7,8位。
当然两边要一致,至于该配多少与所连设备有关。
如与终端连接时数据位可配置位7位,命令传输正常,英文正常(ASCII码中不会超过7f)、cat报表(中文)全乱码。
一般采样默认配置8位。
(3)停止位:
参数可选1、1.5、2位,必须注意:
接收器只需要一位停止位。
也就是说,无论发送来的数据格式具有1位、1.5位或者2位停止位,接收器只在它认为应该出现1位停止位的地方(其实是用时钟计数值决定)采样。
所以,设置停止位的位数只对发送数据的格式有作用。
一般只要两端设置一致停止位不会引起什么问题,但是遇到某些对停止位要求严格的设备时如果路由器处理不当有可能导致连接不正常,北京工行测试补登折机就是一例。
(4)流控:
一般的使用是软流控,常用XOFF(13H)表示暂停发送;XON(11H)表示恢复发送。
从信息的流向来看,流量控制信息和它要控制的数据流是反向的。
值得注意的是:
终端上可通过ctrl+s与ctrl+q实现发送xoff与xon的功能,终端不动了不妨现按一下ctrl+q。
避免因为流控住了而“大惊小怪”!
或是showcontrola1/0register看txXon与txXoff统计。
一台开放了接受软流控的设备如果收到XOFF后再也收不到XON,它将永远不再发送数据,这就是软流控中的‘死锁’现象。
这样flow-controlsoftware65535后面的数字就是在出现软流控死锁现象情况下的解锁超时时间。
接打印出乱码经常与该值的大小有关。
由于打印机属于低速设备。
现在最新的版本解锁时间都是65535tick(1tick=1/60s)。
若打印出乱码首先考虑该值是否够大,同时考虑设备与线路的原因。
硬流控是指通过接口控制线的拉高拉低使用对设备的流控。
我们的异步模式硬流控只有CTS与RTS,而有些设备的硬流控支持CTS/RTS,DTR/DSR两种模式。
若我们的异步接口与一个仅支持DTR与DSR硬流控模式的设备相连的时候,我们就需要做控制线的转接。
可使用跳线板或是自己做线来进行交叉。
硬流控原理图:
具体交叉是将路由器的RTS与终端的DTR相连实现对终端的流控,而将路由器CTS与终端的DSR相连实现终端对路由器的硬流控。
(5)TX-ON:
可选的表项
ctsTxenableonCTSactive
dcdTxenableonDCDactive
dcd-dsrTxenableonDCDandDSRactive
dsrTxenableonDSRactive
命令一看就明白:
如:
TxenableonCTSactive表示只要CTSon,Tx(发送)就enable。
相应的协议也就up。
那么我们的异步默认(有就是什么都不接的话,DCD=downDSR=upDTR=upRTS=upCTS=downTxC=up)。
故如接口配置tx-ondsr的话,接口接不接线,接线接不接终端,接口协议永远是UP的,终端的开关机不会对与unix的连接造成任何影响。
(6)校验位:
这个参数是最简单的,只要两端配置一致。
可以有的选项包括:
奇效验,偶效验以及无校验。
5、debugterminal
debugterminal是在故障分析中用的最多的。
要看懂信息需要了解:
ti――terminalin表示终端送给路由器
so――s