Tcpdump常用命令及基础故障定位
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
tcpdump基础
Tcpdump常用命令及基础故障定位3板斧!
在老4k系统和TOS中的.1平台和.8平台(猎豹)支持TCPDUMP命令。
Tcpdump中and、not、or、host、port、grep、-e、-vv参数的使用:
例1:在eth1口抓包,只显示地址为10.1.1.1和icmp协议的报文。
Tcpdump –i eth1 host 10.1.1.1 and icmp
例2:在所有的接口抓包,不显示4000端口的管理报文,和23端口的telnet报文。
Tcpdump –i any not port 4000 and not port 23 (在同时管理的时候很实用)
例3:在eth1口抓包,显示地址为211.1.1.1或10.1.1.1的报文。
Tcpdump –i eth1 host 211.1.1.1 or host 10.1.1.1 (针对MAP前后的地址同时抓包定位时非常实用)
例4:在所有的接口抓包,显示地址为10.1.1.1报文。
Tcpdump |grep host 10.1.1.1 (在adls环境中非常实用,封装了PPPOE的报文也能抓到,但是TOS不支持grep 的参数了)
在tos系统中,X86的平台下才有抓包的工具,-n表示不需要域名解析,加快抓包的速度。
并且-evv比老的4k系统中,能抓到更多的信息,其中还包括校验和。
例5:System tcpdump –i any –evv -n (TOS系统中最后必须加-n的参数,才能保证抓包的速度)
例6:System tcpdump –i ipsec0-n(TOS支持在ipsec0中抓包,来判断数据流是否进入隧道)
例7:System tcpdump –i ppp0-n(TOS支持在ppp0中抓包,来判断数据流是否进入PPPoE的封装)
下面的4个实例,详细阐述了目的地址转换时如何通过TCPDUMP抓包来快速定位故障点。
现场通过抓包来定位故障原因是最准确高效的方法:
下面抓包中,客户端源地址为168.36.126.1MAP地址为209.136.47.12服务器真实地址为11.68.21.12
对于目的地址转换,天融信也俗称为MAP转换。
例1、如果业务、ping都不通,抓包时只有第一个请求报文,没有匹配MAP转换,说明:
A: 防火墙没有到真实服务器的路由,而导致不能匹配MAP策略。
B: 或者是防火墙上没有开放对应的访问策略。
TOS# system tcpdump -i any host 168.36.126.1 -n
04:19:03.400000 IP 168.36.126.1 > 209.136.47.12: ICMP echo request, id 10706, seq 4161, length 64
例2、如果业务、ping都不通,抓包是匹配了MAP转换策略,说明:
A: 对方的服务没有回应。
B: 或者对方回应了但是路由错误,回应数据包没有到防火墙。
TOS# system tcpdump -i any host 168.36.126.1 -n
04:19:03.400000 IP 168.36.126.1 > 209.136.47.12: ICMP echo request, id 10706, seq 4161, length 64 04:19:03.404216 IP 168.36.126.1 > 11.68.21.12: ICMP echo request, id 10706, seq 4161, length 64
例3、如果业务、ping都不通,抓包显示最后一个报文没有正常转换,说明:
A: 防火墙上没有回指路由,而导致最后的报文没有发出。
TOS# system tcpdump -i any host 168.36.126.1 -n
04:19:03.400000 IP 168.36.126.1 >209.136.47.12: ICMP echo request, id 10706, seq 4161, length 64
04:19:03.404216 IP 168.36.126.1 > 11.68.21.12: ICMP echo request, id 10706, seq 4161, length 64
04:19:03.400000 IP 11.68.21.12 > 168.36.126.1: ICMP echo reply, id 10706, seq 4161, length 64
例4、如果业务、ping都不通,抓包显示报文正常转发,说明
A: TOS发出了数据包,但是匹配了错误的回指路由。
TOS# system tcpdump -i any host 168.36.126.1 -n
04:19:03.400000 IP 168.36.126.1 > 209.136.47.12: ICMP echo request, id 10706, seq 4161, length 64 04:19:03.404216 IP 168.36.126.1 > 11.68.21.12: ICMP echo request, id 10706, seq 4161, length 64
04:19:03.400000 IP 11.68.21.12 > 168.36.126.1: ICMP echo reply, id 10706, seq 4161, length 64
04:19:03.404365 IP 209.136.47.12 > 168.36.126.1: ICMP echo reply, id 10706, seq 4161, length 64
各位现场工程如果能掌握tcpdump的这3板斧,逐步养成遇到故障,自己先抓包分析定位一下,将对自己能力提高有很大的帮助。
接下来我们将给出tcpdump抓包如果来分析应用建立是否正常:
1、TCP建立时的3次握手过程。syn,syn ack,ack包的判断。
2、TCP传输报文push包的判断。
3、TCP正常拆除连接的4次握手过程。双向FIN、FIN ack包的判断。
4、TPC非正常拆除连接的报文RST包的判断。
1、TCP建立连接时3次握手的报文。(syn,syn ack,ack包)
05:03:36.632472 R@ipsec0 IP 192.168.71.100.1843 > 192.168.21.88.4630: S 21321858:21321858(0) win 16384
05:03:36.632664 R@ipsec0 IP 192.168.21.88.4630 > 192.168.71.100.1843: S 472888645:472888645(0) ack 21321859 win 17520
05:03:36.649547 R@ipsec0 IP 192.168.71.100.1843 > 192.168.21.88.4630: . ack 1 win 17520
2、TCP连接建立后,传输数据的PUSH报文。
05:03:36.649578 R@ipsec0 IP 192.168.71.100.1843 > 192.168.21.88.4630: P 1:73(72) ack 1 win 17520 05:03:36.650170 R@ipsec0 IP 192.168.21.88.4630 > 192.168.71.100.1843: P 1:33(32) ack 73 win 17448
3、TCP拆除连接时4次握手的报文。(双向FIN、FIN ack包)
05:03:36.650204 R@ipsec0 IP 192.168.21.88.4630 > 192.168.71.100.1843: F 33:33(0) ack 73 win 17448 05:03:36.666213 R@ipsec0 IP 192.168.71.100.1843 > 192.168.21.88.4630: F 73:73(0) ack 33 win 17488 05:03:36.666241 R@ipsec0 IP 192.168.71.100.1843 > 192.168.21.88.4630: . ack 34 win 17488
05:03:36.666335 R@ipsec0 IP 192.168.21.88.4630 > 192.168.71.100.1843: . ack 74 win 17448