`
huhanfu
  • 浏览: 16782 次
  • 来自: ...
社区版块
存档分类
最新评论

tcpdump 案例精选

阅读更多
例1:arp故障

故障现象:局域网中的一台采用solaris操作系统的服务器A-SERVER网络连接不正常,从任意主机上都无法ping通该服务器。

排查:首先检查系统,系统本身工作正常,无特殊进程运行,cpu,内存利用率正常,无挂接任何形式的防火墙,网线正常。
此时我们借助tcpdump来进行故障定位,首先我们将从B-CLIENT主机上执行ping命令,发送icmp数据包给A-SERVER,如下:
[root@redhat log]# ping A-SERVER
PING A-SERVER from B-CLIENT : 56(84) bytes of data.
此时在A-SERVER启动tcpdump,对来自主机B-CLIENT的数据包进行捕获。
A-SERVER# tcpdump host B-CLIENT
tcpdump: listening on hme0
16:32:32.611251 arp who-has A-SERVER tell B-CLIENT
16:32:33.611425 arp who-has A-SERVER tell B-CLIENT
16:32:34.611623 arp who-has A-SERVER tell B-CLIENT
我们看到,没有收到预料中的ICMP报文,反而捕获到了B-CLIENT发送的arp广播包,由于主机B-CLIENT无法利用arp得到服务器A-SERVER的地址,因此反复询问A-SERVER的MAC地址,由此看来,高层的出问题的可能性不大,很可能在链路层有些问题,先来查查主机A-SERVER的arp表:
A-SERVER# arp -a
Net to Media Table
Device IP Address Mask Flags Phys Addr
------ -------------------- --------------- ----- ---------------
hme0 netgate 255.255.255.255 00:90:6d:f2:24:00
hme0 A-SERVER 255.255.255.255 S 00:03:ba:08:b2:83
hme0 BASE-ADDRESS.MCAST.NET 240.0.0.0 SM 01:00:5e:00:00:00
请注意A-SERVER的Flags位置,我们看到了只有S标志。我们知道,solaris在arp实现中,arp的flags需要设置P标志,才能响应ARP requests。
手工增加p位
A-SERVER# arp -s A-SERVER 00:03:ba:08:b2:83 pub
此时再调用arp -a看看
A-SERVER# arp -a
Net to Media Table
Device IP Address Mask Flags Phys Addr
------ -------------------- --------------- ----- ---------------
hme0 netgate 255.255.255.255 00:90:6d:f2:24:00
hme0 A-SERVER 255.255.255.255 SP 00:03:ba:08:b2:83
hme0 BASE-ADDRESS.MCAST.NET 240.0.0.0 SM 01:00:5e:00:00:00
我们看到本机已经有了PS标志,此时再测试系统的网络连接恢复正常,问题解决!

例2:netflow软件问题

故障现象:在新装的网管工作站上安装cisco netflow软件对路由设备流量等进行分析,路由器按照要求配置完毕,本地工作上软件安装正常,无报错信息,但是启动netflow collector却收不到任何路由器上发出的流量信息,导致该软件失效。 排查:反复检查路由和软件,配置无误。采用逐步分析的方法,首先先要定位出有问题的设备,是路由器根本没有发送流量信息还是本地系统接收出现了问题?
突然想到在路由器上我们定义了接收的client端由udp端口9998接收数据,可以通过监视这个端口来看路由器是否确实发送了udp数据,如果系统能够接收到来自路由的数据包,那么路由方面的问题可能行不大,反之亦然。
在网管工作站上使用tcpdump来看看:
nms#tcpdump port 9995
tcpdump: listening on hme0
18:15:34.373435 routea > nms.9995: udp 1464
18:15:34.373829 routea.50111 > nms.9995: udp 1464
18:15:34.374100 routea.50111 > nms.9995: udp 1464
马上我们就看到数据包确实从路由器上发过来了,问题出在路由器的可能性基本排除,重新核查系统,果然,网管工作站上安装了防火墙,udp端口9998是被屏蔽的,调整工作站上的防火墙配置,netflow工作恢复正常,故障排除!
例3:邮件服务器排障

故障现象:局域网新安装了后台为qmail的邮件服务器server,邮件服务器收发邮件等基本功能正常,但在使用中发现一个普遍的怪现象:pc机器上发邮件时连接邮件服务器后要等待很久的时间才能开始实际的发送工作。

排查:网络连接没有问题,邮件服务器server和下面的pc性能都没有问题,问题可能出在哪里呢?为了进行准确的定位,我们在pc机client上发送邮件,同时在邮件服务器server上使用tcpdump对这个client的数据包进行捕获分析,如下:
server#tcpdump host client
tcpdump: listening on hme0
19:04:30.040578 client.1065 > server.smtp: S 1087965815:1087965815(0) win 64240 <mss 1460,nop,wscale 0,nop,nop,timestamp[|tcp]> (DF)
19:04:30.040613 server.smtp > client.1065: S 99285900:99285900(0) ack 1087965816 win 10136 <nop,nop,timestamp 20468779 0,nop,[|tcp]> (DF)
19:04:30.040960 client.1065 > server.smtp: . ack 1 win 64240 (DF)
顺利的完成三次握手,目前为止正常,往下看
19:04:30.048862 server.33152 > client.113: S 99370916:99370916(0) win 8760 <mss 1460> (DF)
19:04:33.411006 server.33152 > client.113: S 99370916:99370916(0) win 8760 <mss 1460> (DF)
19:04:40.161052 server.33152 > client.113: S 99370916:99370916(0) win 8760 <mss 1460> (DF)
19:04:56.061130 server.33152 > client.113: R 99370917:99370917(0) win 8760 (DF)
19:04:56.070108 server.smtp > client.1065: P 1:109(10 ack 1 win 10136 <nop,nop,timestamp 20471382 167656> (DF)

这里有问题了,我们看到server端试图连接client的113 identd端口,要求认证,然而没有收到client端的回应,server端重复尝试了3次,费时26秒后,才放弃认证请求,主动发送了reset标志的数据包,开始push后面的数据,而正是在这个过程中所花费的26秒时间,造成了发送邮件时漫长的等待情况。
问题找到了,就可以对症下药了,通过修改服务器端的qmail配置,使它不再进行113端口的认证,再次抓包,看到邮件server不再进行113端口的认证尝试,而是在三次握手后直接push数据,问题解决!

总结:上面我们通过实际的例子演示了包分析软件在故障解决中起到的作用,通过这些例子,我们不难发现,用好包分析软件,对系统管理员快速准确定位网络故障,分析网络问题有不可替代的作用
分享到:
评论

相关推荐

    tcpdump(windows版).zip

    在Linux和Unix系统中,它是标准的网络诊断工具之一,而在这个案例中,我们讨论的是tcpdump的Windows版本。这个压缩包“tcpdump(windows版).zip”提供了在Windows操作系统上使用tcpdump的可能性,无需复杂的安装...

    Tcpdump命令的使用与示例—linux下的网络分析

    ### Tcpdump命令的使用与示例—Linux下的网络分析 #### 知识点一:Tcpdump简介 **Tcpdump** 是一款广泛应用于Linux系统中的网络数据包捕获工具,能够实时捕捉并显示网络中传输的数据包头部信息。该工具不仅支持...

    4.9.2版本的tcpdump源码

    在这个案例中,一同提供的libpcap-1.9.0.tar.gz是与tcpdump紧密相关的库文件。libpcap提供了低级别的接口,允许应用程序直接访问网络接口,获取原始数据包,而无需通过更高级别的协议栈。这个版本的libpcap包含了...

    TCPDUMP详解

    #### 九、案例分析 假设我们需要捕获所有来自或去往 IP 地址为 210.27.48.2 的数据包,可以使用以下命令: ```bash tcpdump host 210.27.48.2 ``` 如果想要进一步限制,只捕获与该主机通信且端口为23的TCP数据包...

    tcpdump简介

    #### 五、案例分析 考虑以下命令: ```shell tcpdump -vvvX -i eth0 src 192.168.3.243 and dst 192.168.3.58 and src port 23 and dst port 9876 -s 1024 &gt; a.txt ``` 这条命令的含义是:使用eth0接口监听所有从...

    android终端数据tcpdump抓包

    在案例中,使用`adb push`命令将tcpdump文件从PC端推送到手机的`/data/local/`目录,并通过`adb shell chmod`命令设置必要的执行权限。 #### 步骤三:配置tcpdump进行数据抓包 在设置了tcpdump的执行权限后,可以...

    tcpdump应用详解

    TCPDUMP的应用场景非常广泛,下面列举几个典型的应用案例: 1. **网络性能监控**:通过监控网络流量来检测网络性能下降的原因,例如网络拥塞或异常流量。 2. **安全审计**:检测网络中的潜在安全威胁,如恶意流量或...

    tcpdump使用方法

    工作中应用案例** 在实际工作中,TCPDump和Wireshark常用于以下场景: - **故障排查**:当网络连接出现问题时,可以通过抓包分析找出数据传输过程中的异常,如丢包、延迟等。 - **安全审计**:检测网络中是否存在...

    Linux中的tcpdump命令示例详解

    在Linux系统中,tcpdump...虽然其使用技巧和选项众多,但通过实际案例的学习和实践,我们可以逐步掌握并利用它解决各种网络问题。对于新手来说,从最常用的功能开始,结合实际需求逐步深入,是学习tcpdump的最佳路径。

    38怎么使用tcpdump和Wireshark分析网络流量1

    在案例中,我们使用Ubuntu 18.04作为基础环境,确保安装了TCPdump和Wireshark。在Windows系统中,由于Wireshark不支持SSH远程控制,我们需要在本地安装Wireshark并手动导入捕获的网络包文件。通过运行`ping`命令,...

    网络安全领域的网络嗅探技术与应用:Sniffer Pro、Ethereal、TcpDump和Cain的详细介绍与使用

    文档主要内容集中在四种网络嗅探工具(Sniffer Pro、Ethereal、TcpDump、Cain)的操作和特性讲解上,包括它们各自的安装、配置及实际应用案例,并深入探讨了捕获和过滤数据包的方法及技巧。首先介绍了网络嗅探的工作...

    ARP欺骗基础:网络监控工具的使用.docxARP欺骗基础:网络监控工具的使用all.docxARP欺骗基础:网络监控工具的使用-(10).Tcpdump的使用.docxARP欺骗基础:网络监控

    ARP欺骗基础:网络监控工具的使用_(10).Tcpdump的使用.docx ARP欺骗基础:网络监控工具的使用_(11).Arpwatch的使用.docx ARP欺骗基础:网络监控工具的使用_(12).Nmap的使用.docx ARP欺骗基础:网络监控工具的...

    Socket通信案例三

    工具如Wireshark或tcpdump可以辅助我们分析网络流量,查看Socket通信过程中的数据包细节,这对于调试和优化Socket程序非常有用。 总之,"Socket通信案例三"是一个深入探讨TCP Socket编程的好材料,无论是对于初学者...

    linux-Linux性能优化实战案例

    5. **网络性能**:`netstat`和`ss`用于查看网络连接状态,`tcpdump`抓取网络包进行分析。调整内核网络参数,如`net.core.somaxconn`和`net.ipv4.tcp_syncookies`,可以改善网络服务性能。 6. **CPU调度与负载均衡**...

    android 抓包工具,含使用说明

    本案例中的"tcpdump.zip"可能包含了用于Android设备的tcpdump工具。 安装tcpdump到Android设备通常需要具备以下步骤: 1. **获取root权限**:由于tcpdump需要访问网络接口,因此需要设备已获得root权限。 2. **...

    《Linux 性能优化实战》案例

    6. **网络性能**:讲解TCP/IP栈的优化,包括设置`net.core`和`net.ipv4`参数,使用`tc`工具进行流量控制,以及`tcpdump`和`Wireshark`用于网络抓包和分析。 7. **日志和监控**:强调定期收集性能数据的重要性,如...

    TCP Dump Reference

    描述中还提供了一个网址(***),这是一个关于tcpdump使用的官方文档网站,提供了丰富的信息和使用案例。 标签“TCP”意味着文档着重于传输控制协议(Transmission Control Protocol),这是互联网协议套件(TCP/IP...

    SANGFOR_WOC_v9.1_2015年度渠道高级认证培训07_数据包分析案例.ppt

    3. **WOC案例拓扑分析**: 在给定的拓扑结构中,WOC部署在网络中,用于优化客户端到服务器的通信。当出现访问异常时,可以在WOC服务端、客户端、服务器等多个位置抓包,以便定位问题所在。例如,在(1)至(6)的六...

    教你怎样利用包分析软件排查网络故障.pdf

    在案例中,我们看到tcpdump被用来检查网络连接异常的Solaris服务器A-SERVER。 **例1:ARP故障** **故障现象:**局域网内一台SOLARIS服务器A-SERVER无法被其他主机ping通。 **排查过程:** 1. **初步检查**:...

Global site tag (gtag.js) - Google Analytics