01第1章 TCPIP协议故障处理Word格式.docx
《01第1章 TCPIP协议故障处理Word格式.docx》由会员分享,可在线阅读,更多相关《01第1章 TCPIP协议故障处理Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
![01第1章 TCPIP协议故障处理Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/20/9206ecbc-ecba-4aba-aca7-31f19ecd608a/9206ecbc-ecba-4aba-aca7-31f19ecd608a1.gif)
它的工作包括把应用程序交给它的数据分成合适的小块交给网络层、确认接收到的分组、设置发送最后确认分组的超时时钟等。
UDP则为应用层提供一种简单的服务。
它只把被称作数据报的分组从一台主机发送到另一台主机,并不保证该数据报能到达另一端,可靠性由应用层提供。
应用层:
处理特定的应用程序细节。
几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序
●Telnet远程登录
●FTP文件传输协议
●SMTP简单邮件传送协议
●SNMP简单网络管理协议
IP是TCP/IP协议族的核心。
所有TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。
IP提供不可靠、无连接的数据报传送服务。
●不可靠(Unreliable):
不保证IP数据报能成功地到达目的地。
IP仅提供尽最大努力交付的传输服务。
可靠性需要由上层协议来保证(如TCP)。
如果发生了某种错误,如某个路由器暂时用完了缓冲区,IP协议会丢弃该数据报,然后发送ICMP消息报给信源端。
●无连接(Connectionless):
IP不维护任何关于后续数据报的状态信息。
每个数据报的处理相互独立。
这也说明,IP数据报可以不按发送顺序接收。
如果一个信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报独立进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。
IP首部
IP首部主要字段
IP数据报的格式如图1-2所示。
普通的IP首部长为20个字节(不含选项字段)。
IP数据报格式
IP目前的协议版本号是4,因此IP有时也称作IPv4。
●首部长度(IHL):
首部占32bit字的数目,包括任何选项。
由于它是一个4比特字段,因此首部最长为60个字节。
普通IP数据报(不含选项字段)字段的值是5。
●服务类型(TOS):
包括一个3bit的优先权子字段(现在已被忽略),4bit的TOS子字段和1bit未用位(必须置0)。
4bit的TOS分别代表:
最小时延、最大吞吐量、最高可靠性和最小费用。
4bit中只能置其中1bit。
如果所有4bit均为0,表示一般服务。
RFC1340描述了所有的标准应用如何设置这些服务类型。
RFC1349进行了修正,更为详细地描述了TOS的特性。
●总长度字段(TotalLength):
整个IP数据报的长度,以字节为单位。
利用首部长度字段和总长度字段,可以知道IP数据报中数据内容的起始位置和长度。
该字段长16比特,所以,IP数据报最长可达65535字节
●标识字段(Identification)、标志字段(Flags)、片偏移量字段(FragmentOffset):
用来控制数据报的分片和重组。
其中,标识字段唯一标识主机发送的每一份数据报,通常每发送一份报文它的值就会加1。
●生存时间字段TTL(TimetoLive):
数据报可以经过的最多路由器数。
●首部检验和字段(HeaderChecksum):
根据IP首部计算的检验和码。
它不对首部后面的数据进行计算。
●源IP地址和目的IP地址:
每一份IP数据报都包含源IP地址和目的IP地址,分别指定发送方和接收方。
●选项(Options):
选项是最后一个字段,是可变长的可选信息。
选项(Options)的功能
目前,选项能够提供的功能如下:
●安全和处理限制:
用于军事领域。
详细内容参见RFC1108。
●记录路径:
让每个路由器都记下它的IP地址。
●时间戳:
让每个路由器都记下它的IP地址和时间。
●宽松的源站选路:
为数据报指定一系列必须经过的IP地址。
●严格的源站选路:
与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址。
这些选项很少被使用,并且,并非所有的主机和路由器都支持这些选项。
选项字段都是以32bit作为界限,必要时插入值为0的填充字节。
以此保证IP首部始终是32bit的整数倍,满足首部长度字段的要求。
IP路由选择
IP协议可以发送两类数据报:
●本地生成的数据报:
接收来自TCP、UDP、ICMP和IGMP等协议的数据报并进行发送。
●待转发的数据报:
从一个网络接口接收数据报并进行发送。
IP层在内存中有一个路由表。
当收到一份数据报并进行发送时,它都要搜索该表。
当数据报来自某个网络接口时,IP首先检查目的IP地址是否是本机的IP地址或者IP广播地址。
如果是,数据报被送到由IP首部协议字段所指定的协议模块处理。
如果不是,有以下两种情况:
如果IP层被设置为路由器功能,就转发数据报,否则丢弃数据报。
路由表中的路由项一般包含下述信息:
●目的IP地址:
既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段来指定。
●下一跳路由器(Next-hoprouter)的IP地址,或者有直接连接的网络的IP地址:
下一跳路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。
下一跳路由器不是最终目的地,但它可以把接收到的数据报转发到最终目的地。
●为数据报的传输指定的一个网络接口。
从上述路由表信息可以看出,IP协议并不知道到达任何目的地的完整路径(除非路由器与目的地直接相连)。
所有的IP路由只为数据报传输提供下一跳路由器的IP地址。
它认为下一跳路由器比数据报的发送者更接近目的,而且下一跳路由器与该主机直接相连。
即,IP路由选择是逐跳(Hop-by-hop)进行的。
互联网地址
互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址)。
IPv4地址长32bit,不采用平面形式的地址空间,而是具有一定的结构。
IPv4地址分为A、B、C、D、E五类,格式如图1-3所示。
五类IPv4地址
根据目的端主机数量的不同,IPv4地址又可划分为三类:
●单播地址:
目的端为单个主机。
●广播地址:
目的端为给定网络上的所有主机。
●组播地址:
目的端为同一组内的所有主机。
TCP/IP故障处理方法
TCP/IP的故障通常表现为报文不能正常转发,包括:
●报文转发失败,如无法ping通。
●丢包。
定位此类问题总指导思想是:
从大到小,逐层分解。
具体步骤如下。
确定是否是转发子系统的问题
检查转发子系统有没有接收和发送报文。
可以通过displayinterface命令查看接口收发的报文数目,如果统计数字正常,表示本节点的转发子系统不存在问题。
需要沿转发路径,以同样的方法定位确定下一个节点是否存在问题。
确定是哪个模块的问题
一旦找到出发生问题的节点,例如某台路由器,接下来需要确定问题所在的模块。
可沿转发路径执行命令displayipstatistics和debuggingippacketaclacl-number,查看统计信息或者调试信息。
通过上述两条命令查看报文是否在IP层被丢弃,以及为什么被丢弃,如TTL、Checksum原因。
确认具体的原因
如果是因为路由不正确,使用displayfib命令来查看转发表,检查对应的转发项是否存在。
是否正确,需要进一步查看下一跳和出接口。
如果错误,那么问题出在路由子系统,请参见《通用路由平台VRP故障处理手册路由篇》。
如果是TTL问题,请查看转发路径中是否存在路由环,执行displayipstatistics命令可以查看出现路由环的具体位置,也可以通过tracert命令判断发生环路的位置。
如果报文不是在IP层被丢弃的,那么就要检查IP层有没有接收到报文,请查看显示信息中的“Receivedpackets”部分。
如果没有接收到报文,可能是链路层出现故障。
当然,IP的相关特性也会出现丢包的情况,这时请查看是否存在特殊配置,如QoS。
如果已经接收到报文,检查发送的数目对不对(“Sentpackets”部分),如果发送正确,执行displayinterface命令检查链路层和物理层是否丢包。
总之,按照转发流程查看相关统计信息和调试信息,定位问题出现在哪个模块。
FAQ
问:
TCP工作不正常,该如何处理?
答:
如果TCP出现故障,可以打开相应的调试开关,查看调试信息。
执行debuggingtcppacket命令打开TCP调试开关,跟踪TCP的数据包。
TCP有两种数据报的格式供选择。
一种是调试跟踪所有以本设备为一端的TCP连接的TCP报文收发。
操作如下:
<
Quidway>
system-view
[Quidway]info-centerenable
[Quidway]quit
debuggingtcppacket
即可实时查看接收或发送的TCP报文,其具体报文格式如下:
*0.100070-SOCKET-8-TCPPACKET:
1043204051:
Input:
Co0(5)socketId=2,state=SYN_SENT,
src=127.0.0.1:
1025,dst=2.2.2.2:
23,
seq=11084380,ack=0,optlen=4,flag=SYN,
window=8192
另外一种是调试跟踪其中SYN、FIN或RST置位的报文。
debuggingtcpevent
这样即可实时查看接收或发送的TCP报文,其具体报文格式同上。
UDP工作不正常,该如何处理?
如果UDP出现故障,可以打开相应的调试开关,查看调试信息。
用debuggingudppacket命令打开UDP调试开关,跟踪UDP的数据包。
当路由器发送或接收到UDP数据包,就可以实时显示出数据报的内容格式。
根据数据报的内容,对问题进行定位。
以下为UDP数据报的格式:
*0.377770-SOCKET-8-UDP:
1043494431:
Output:
task=ROUT(6),socketid=3,
src=1.1.1.1:
520,dst=255.255.255.255:
520,datalen=24
路由正常,但在PE上ping私网不通,应如何处理?
原因可能是没有指定源地址,请使用ping命令的“-a”选项指定一个私网地址,作为ICMPEchoReply报文的目的地址。
ping小包通,但ping大包不通,该如何处理?
可能由于MTU设置不正确。
沿报文转发路径执行displayinterface命令查看各接口的MTU值,如果存在设置不正确的接口,在其接口视图下执行mtu命令,配置正确的MTU值。
ping时通时断,该如何处理?
可能由于网络时延比较大。
可以使用ping命令的“-t”选项增加等待ICMPEchoResponse报文的时间。
路由器与以太网连接,发现一部分主机可与路由器通信,而其他主机不能与路由器通信,该如何处理?
同一局域网内,计算机要互通需要其IP地址均处于同一网段,或者不同网段之间有可达的路由。
根据故障现象,推测是计算机的IP地址掩码不在一个网段。
首先在路由器上执行命令displayipinterface检查以太网接口的IP地址和掩码。
然后在不能与路由器互通的计算机上查看IP地址和掩码,检查IP地址是否与路由器以太口在同一网段。
最后修改计算机的IP地址掩码,使其与路由器以太网接口在同一网段。
两台路由器A和B之间的串行链路运行PPP协议,配置路由器A从路由器B协商IP地址,但不成功,该如何处理?
IP地址协商不成功可能有2个原因:
●PPP链路故障
●IP地址配置不正确
首先执行命令displayinterface检查串行接口的链路状态,如链路状态为Down,则检查接口的物理连接情况及链路协议的配置。
然后检查服务器端为客户分配的IP地址是否与其他IP地址冲突。
如果配置了验证,则检查验证的用户名和口令是否正确。
打开了ICMP重定向报文发送开关但是不发送重定向报文,该如何处理?
●检查接收和转发报文的接口是否是同一接口。
●被选择的路由本身是否被ICMP重定向报文创建或修改过。
●该路由是否是到默认目的地(0.0.0.0)。
●报文源地址的子网掩码位和输出接口的地址是否相同,如果相同,则说明主机错误地选择了某个路由器作为报文发送的第一跳路由器。
●是否是在ICMP报文的入接口上设置的这条命令:
icmpredirectsend。
打开debuggingippacket开关后发现IP报文被丢弃,输出“InvalidIPpacket!
”信息,该如何处理?
●查看报文接收接口是否配置了ipverifysource-address命令。
●如果是,则检查该报文源地址是否非法。
●如果确实非法,并且在displayipinterface中统计的非法源地址报文数增加了,则说明该报文是由于源地址非法而被丢弃的,属正常现象。
正确设置报文的源地址后即可解决这个问题。
●如果没有配置该命令,则可能是违反其他IP校验规则而被丢弃。
使能URPF后,发送应被URPF丢弃的报文,却没有URPF丢弃报文的统计信息,该如何处理?
可能有以下原因:
●URPF的检查模式为松散型检查,且路由表中有该报文的源地址
●配置了缺省路由
处理步骤如下:
●运行displaycurrent-configuration命令,确认已经使能了URPF。
●查看路由表,确认报文的源地址是否在路由表中存在。
如果URPF的检查模式是松散型检查,且报文的源地址在路由表中存在,那么报文则不会被URPF丢弃,也就不会有URPF丢弃报文的统计信息。
●确认是否配置了缺省路由。
如果URPF的检查模式是松散型检查,且报文的源地址在路由表中不存在,但配置了缺省路由,那么报文则不会被URPF丢弃,也就不会有URPF丢弃报文的统计信息。
故障诊断工具
display命令
命令
内容
说明
displayipstatisticsslot[slot-id]
查看IP流量统计信息
一般需要进行多次采集,相关的清除命令是resetipstatistics,应慎重使用该reset命令以免误删有用信息。
displayiprouting-table[vpn-instancevpn-instance-name]
查看路由表内容
-
displayfib[slot-id]
查看转发信息表摘要信息
由于转发表与路由表相互独立,所以除了使用displayiprouting-table命令之外,还要查看转发表的内容,防止转发表与路由表不一致。
displayinterface[interface-type[interface-number]]
采集接口的统计信息
displaytcpstatus
查看TCP连接状态
displaytcpstatistics
查看TCP流量统计信息
显示系统当前所有TCP连接的流量统计信息。
统计信息主要分为发送和接收两大部分,每部分再细分为不同类型报文,如:
接收的有重复的报文、校验和错误报文等等。
最后还有一些与连接密切相关的统计信息,如:
接收的连接数、重传报文数、保活探测报文数等。
以上信息大都是以包为单位,一部分同时提供字节数。
#查看IP流量统计信息。
displayipstatistics
sum117local117
badprotocol0badformat0
badchecksum0badoptions0
TTLexceeded0
forwarding0local0
dropped0noroute0
Fragment:
input0output0
dropped0
fragmented0couldn'
tfragment0
Reassembling:
sum0timeouts0
displayipstatistics命令输出信息描述
项目
描述
Input
接收到的报文
sum
报文总数
local
被送给上层协议的报文数量
badprotocol
涉及到未知协议的报文数量
badformat
格式错误的报文数量
badchecksum
校验错误的报文数量
badoptions
选项错误的报文数量
TTLexceeded
由于TTL超时被丢弃的报文数量
Output
发送的报文
forwarding
被转发的报文数量
产生的报文数量
dropped
丢弃的报文数量
noroute
没有路由的报文数量
Fragment
分片数量
input
收到的分片数量
output
被创建发送的分片数量
被丢弃的分片数量
fragmented
分片成功的报文数量
couldn'
tfragment
不能被分片的报文数量
Reassembling:
重装成功的分片数量
timeouts
超时的分片数量
#查看当前路由表的概要信息。
displayiprouting-table
RoutingTables:
Public
Destinations:
3Routes:
3
Destination/MaskProtoPreCostNextHopInterface
127.0.0.0/8Direct00127.0.0.1InLoopBack0
127.0.0.1/32Direct00127.0.0.1InLoopBack0
172.16.0.0/16Static6000.0.0.0NULL0
#查看VPN实例abc在路由表中的概要信息。
displayiprouting-tablevpn-instanceabc
abc
1Routes:
1
172.17.0.0/16Static6000.0.0.0NULL0
displayiprouting-table命令显示信息描述
Destination/Mask
目的网络/主机的地址和掩码长度
Proto
用来学习路由的协议
Cost
路由开销
Pre
优先级
NextHop
下一跳
Interface
下一跳可达的出接口
#查看转发信息表摘要信息。
displayfib
Destination/MaskNexthopFlagTimeStampInterface
80.10.0.2/3280.10.0.2GHUt[0]Pos2/0/0
80.10.255.255/32127.0.0.1HUt[0]InLoopBack0
80.10.0.0/1680.10.0.1Ut[0]Pos2/0/0
80.50.0.2/3280.50.0.2GHUt[0]Pos2/0/0
80.50.255.255/32127.0.0.1HUt[0]InLoopBack0
displayfib命令输出信息描述
目的地址/掩码长度
Nexthop
Flag
当前标志,G、H、U、S、D的组合。
G表示Gateway(网关),H表示Host(主机路由),U表示UP(可用),S表示Static(静态),D表示Dynamic(动态)
TimeStamp
时间戳
到目的地址的出接口
Token
令牌,表示转发表项索引
#查看接口Serial1/0/0的运行状态和统计信息。
displayinterfaceserial1/0/0
Serial1/0/0currentstate:
UP
Lineprotocolcurrentstate:
LinklayerprotocolisPPP
LCPopened,IPCPopened,OSICPstopped,MPLSCPopened
InternetAddressis24.1.1.2/16
Description:
HUAWEI,QuidwaySeries,Serial1/0/0Interface
TheMaximumTransmitUnitis1500,Holdtimeris10