Tcpdump常用命令及基础故障定位

合集下载

16tcpdump命令

16tcpdump命令

TCPDUMP使用说明tcpdump命令参数解释 (1)Tcpdump使用案例说明: (2)TCPDUMP出现“truncated-ip - 1215 bytes missing!”错误 (3)TCPDUMP 命令中的-i参数用VLAN名称与接口编号有什么区别 (3)TCPDUMP 命令中出现“pcap_loop: Error: Interface packet capture busy”错误信息? (5)tcpdump命令参数解释TcpD ump可以将网络中传送的数据包的“头”完全截获下来提供分析。

它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、o r、not等逻辑语句来帮助你去掉无用的信息。

数据过滤不带任何参数的TcpDu mp将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。

所以,我们应当先想好需要哪些数据,Tc pDu mp提供以下参数供我们选择数据:注:tcpdump命令只针对经过CPU处理的数据包进行捕获,一但在BIGIP中的某个VIP采用的是performance L4的方式,数据包则由四层加层ASIC芯片处理而没有流经CPU,无法捕获数据。

解决该问题的方法是:选取该Virtual Server将type由Performance Layer4临时改为Standard再来用TCPDUMP命令抓包,抓包以后,改回到Performance Layer4。

Tcpdump使用案例说明:举例1:对external接口主机139.212.96.2并且端口为1433的流量进行监控。

端口不指定tcp和udp,默认为同时对tcp和udp进行报文捕获。

本命令不解析IP地址/端口号为主机名/服务名称,同时显示报文十二进制和文本信息,报文最大为1500字节。

f5-1:~# tcpdump -i external -nn -X -s 1600 port 1433 andhost 139.212.96.2tcpdump: listening on external 21:48:41.295546 139.212.96.2.1201 > 10.75.9.44.1433: .302192826:302192827(1) ack 558871968 win 64360 (DF) 0x0000 012c 0800 4500 0029 38cf 4000 7f06c3b2 .,..E..)8.@.....0x0010 8bd4 6002 0a4b 092c 04b1 0599 120318ba ..`..K.,........0x0020 214f b5a0 5010 fb68 a926 000000 !O..P..h.&...21:48:41.296015 10.75.9.44.1433 > 139.212.96.2.1201: . ack1 win 64636 (DF)0x0000 012c 0800 4500 0028 cb2d4000 7f063155 .,..E..(.-@...1U0x0010 0a4b 092c 8bd4 6002 0599 04b1 214fb5a0 .K.,..`.....!O..0x0020 1203 18bb 5010 fc7c a812 0000 00000000 ....P..|........0x0030 0000 .. 21:48:50.701130 139.212.96.2.1206 > 10.75.9.44.1433: .304974934:304974935(1) ack 565108263 win 64882 (DF)0x0000 012c 0800 4500 0029 38f7 4000 7f06c38a .,..E..)8.@.....0x0010 8bd4 6002 0a4b 092c 04b6 0599 122d8c56 ..`..K.,.....-.V0x0020 21ae de27 5010 fd72 0a6b 000000 !..'P..r.k...21:48:50.702567 10.75.9.44.1433 > 139.212.96.2.1206: . ack1 win 65267 (DF)0x0000 012c 0800 4500 0028 d3a6 4000 7f0628dc .,..E..(..@...(.0x0010 0a4b 092c 8bd4 6002 0599 04b6 21aede27 .K.,..`.....!..'0x0020 122d 8c57 5010 fef3 08ea 0000 0000 0000 .-.WP...........0x0030 0000 ..举例2:对internal接口主机172.31.230.53和172.31.230.51之间端口8080的流量进行分组捕获。

tcpdump命令详解

tcpdump命令详解

tcpdump命令详解⼀、tcpdump简介tcpdump命令是基于unix系统的命令⾏的数据报嗅探⼯具,可以抓取流动在⽹卡上的数据包。

它的原理⼤概如下:linux抓包是通过注册⼀种虚拟的底层⽹络协议来完成对⽹络报⽂(准确的是⽹络设备)消息的处理权。

当⽹卡接收到⼀个⽹络报⽂之后,它会遍历系统中所有已经注册的⽹络协议,如以太⽹协议、x25协议处理模块来尝试进⾏报⽂的解析处理。

当抓包模块把⾃⼰伪装成⼀个⽹络协议的时候,系统在收到报⽂的时候就会给这个伪协议⼀次机会,让它对⽹卡收到的保温进⾏⼀次处理,此时该模块就会趁机对报⽂进⾏窥探,也就是啊这个报⽂完完整整的复制⼀份,假装是⾃⼰接收的报⽂,汇报给抓包模块。

⼆、语法1、查看本地⽹卡状态[root@cnetos daocoder]# netstat -iKernel Interface tableIface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgdocker0 1500 40409 0 0 0 20376 0 0 0 BMUens5f0 1500 22999894941 0 0 0 25581016784 0 0 0 BMRUlo 65536 850291094 0 0 0 850291094 0 0 0 LRUIface:存在的⽹卡。

MTU:最⼤传输单元。

RX-OK RX-ERR RX-DRP RX-OVR:正确接收数据报的数量以及发⽣错误、流式、碰撞的总数。

TX-OK TX-ERR TX-DRP TX-OVR:正确发送数据报的数量以及发⽣错误、流式、碰撞的总数。

2、tcpdump帮助命令[root@centos daocoder]# tcpdump --helptcpdump version 4.9.0libpcap version 1.5.3OpenSSL 1.0.1e-fips 11 Feb 2013Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ][ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ][ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ][ -Q|-P in|out|inout ][ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ][ --immediate-mode ] [ -T type ] [ --version ] [ -V file ][ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ][ -Z user ] [ expression ](1)、类型的关键字host:指明⼀台主机。

tcpdump命令及输出详解

tcpdump命令及输出详解
[S]:建立连接的标识SYN [P]:发送数据的标识 [F]:结束连接的标识FIN [.]:没有标识
发送方的ip地址端口号或者协议第四列
tcpdump命 令 及 输 出 详 解
一. 使用方法
1. 指定类型
host:指定主机
tcpdump host 192.168.100.1 tcpdump host 192.168.100.1 and !192.168.100.2 tcpdump host 192.168.100.1 and \(192.168.100.2 or 192.168.100.3\)
tcpdump dst 192.168.100.1
3. 参数类型
-i:指定接口tcpdump Nhomakorabea-i eth0
4. 指定协议
tcp:指定tcp协议 arp:指定ARP协议 udp:指定udp协议
4. 条件组合
tcpdump -i eth0 host 192.168.100.1
二. 输出分析
20:34:28.943272 IP 192.168.100.160.ssh > 192.168.100.1.52214: Flags [P.], seq 100384:100464, ack 241, win 251, length 80 第一列:时分秒毫秒 第二列:网络协议 第三列:发送方的ip地址+端口号(或者协议) 第四列:> 第五列:接收方的ip地址+端口号(或者协议) 第六列:冒号 第七列:Flag标识符:
net:指定网络地址
tcpdump net 192.168.100.0/24
port:指定端口
tcpdump port 80
2. 指定方向
src:源地址

tcpdump常用命令用法

tcpdump常用命令用法

tcpdump常用命令用法tcpdump是一个常用的网络抓包工具,可以用来分析网络流量,下面是一些常见的tcpdump命令用法:1. 抓取指定网卡的所有流量:```tcpdump -i eth0```这里的eth0是网卡的名称,可以根据实际情况替换。

2. 抓取指定源IP和目标IP的流量:```tcpdump src <source_ip> and dst <destination_ip>```source_ip和destination_ip分别是源IP和目标IP地址。

3. 抓取指定端口的流量:```tcpdump port <port_number>```port_number是要抓取的端口号。

4. 抓取指定协议的流量:```tcpdump -v icmp```这里的icmp是要抓取的协议,可以是icmp、tcp、udp等。

5. 抓取指定主机的流量:```tcpdump host <hostname>```hostname是要抓取的主机名。

6. 抓取指定长度的流量:```tcpdump less <length>```length是要抓取的数据包长度。

7. 将抓包结果保存到文件中:```tcpdump -w <output_file>```output_file是保存抓包结果的文件名。

8. 从文件中读取抓包结果进行分析:```tcpdump -r <input_file>```input_file是要读取的抓包结果文件名。

这些命令用法只是tcpdump的一部分功能,更详细的使用方法可以参考tcpdump的帮助文档。

tcpdump常用抓包命令

tcpdump常用抓包命令

tcpdump常用抓包命令一、什么是tcpdumptcpdump是一款用于抓取网络数据包的功能强大的命令行工具。

它可以通过监听网络接口,捕获和分析传输过程中的数据包,对网络问题进行排查和故障分析。

二、安装tcpdump在大多数Linux发行版中,tcpdump已经默认安装。

如果您的系统没有预装tcpdump,可以通过以下命令进行安装:sudo apt-get install tcpdump # Debian/Ubuntusudo yum install tcpdump # CentOS/RHEL三、tcpdump的基本用法1. 抓取数据包使用tcpdump进行抓包非常简单,只需要在命令行中输入tcpdump命令即可开始捕获所有的数据包。

tcpdump2. 指定网络接口如果有多个网络接口可以选择,可以使用-i参数指定要监听的网络接口。

例如,要监听eth0接口的数据包,可以使用以下命令:tcpdump -i eth03. 保存捕获的数据包默认情况下,tcpdump会将捕获的数据包输出到标准输出。

如果需要将数据包保存到文件中,可以使用-w参数指定文件名。

例如,将数据包保存到capture.pcap文件中:tcpdump -w capture.pcap4. 显示捕获的数据包内容通过默认设置,tcpdump只会以十六进制格式显示捕获的数据包。

如果想要查看更多的信息,可以使用-A参数以ASCII格式显示数据包内容。

例如:tcpdump -A5. 显示源和目标IP地址如果只需要查看数据包的源和目标IP地址,而不关心其他详细内容,可以使用-n 参数。

例如:tcpdump -n四、高级用法1. 指定抓包数量默认情况下,tcpdump会一直抓包直到用户终止程序。

如果只需要抓取固定数量的数据包,可以使用-c参数指定要抓取的包数量。

例如,只抓取10个数据包:tcpdump -c 102. 使用过滤器tcpdump可以使用过滤器来指定要抓取的数据包的条件。

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

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

教你怎样利用包分析软件排查网络故障作为IP网络的系统管理员,经常会遇到一些网络连接方面的故障,在排查这些接故障时,除了凭借经验外,使用包分析软件往往会起到事半功倍的效果。

常用的包分析软件非常多,常见的如tcpdump,sniffer,windump,ettercap等。

我们今天就介绍通过包分析软件tcpdump排查网络故障的几个例子,关于tcpdump软件的介绍,安装,基本用法的资料非常多,读者可以查阅,这里不介绍了。

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

排查:首先检查系统,系统本身工作正常,无特殊进程运行,cpu,内存利用率正常,无挂接任何形式的防火墙,网线正常。

此时我们借助tcpdump来进行故障定位,首先我们将从B-CLIENT主机上执行ping命令,发送icmp数据包给A-SERVER,如下:[root@redhat log]# ping A-SERVERPING A-SERVER from B-CLIENT : 56(84) bytes of data.此时在A-SERVER启动tcpdump,对来自主机B-CLIENT的数据包进行捕获。

A-SERVER# tcpdump host B-CLIENTtcpdump: listening on hme016:32:32.611251 arp who-has A-SERVER tell B-CLIENT16:32:33.611425 arp who-has A-SERVER tell B-CLIENT16: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 -aNet to Media TableDevice IP Address Mask Flags Phys Addr------ -------------------- --------------- ----- ---------------hme0 netgate 255.255.255.255 00:90:6d:f2:24:00hme0 A-SERVER 255.255.255.255 S 00:03:ba:08:b2:83hme0 240.0.0.0 SM 01:00:5e:00:00:00请注意A-SERVER的Flags位置,我们看到了只有S标志。

tcpdump抓包基本命令

tcpdump抓包基本命令
tcpdump -i eth0 host 192.168.1.1 and host 172.16.1.1 -nn -s0 -w /tmp/XXX.pap
抓取vpn的数据包 用命令ifconfig 查看vpn接口的名称,一般是"vpntun"
tcpdump vpntun
抓取vlan的数据包
tcpdump -i eth0 host 192.168.1.1 and host 172.16.1.1
参数”or“的使用
tcpdump -i eth0 host 192.168.1.1 and host 172.16.1.1 -nn
以IP和端口号显示数据包
//抓取eth0接口,IP为192.168.1.1和172.16.1.1,源IP和目的IP只要是这个两个IP中的一个就可以被抓取到
tcpdump -i 接口名称 host IP地址
//抓取eth0接口 IP是192.168.1.1 ,不区分源IP和目的IP
例如:tcpdump -i eth0 host 192.168.1.1
参数"and"的使用
//抓取eth0接口,IP为192.168.1.1和172.16.1.1,源IP和目的IP都要是这两个IP中的
tcpdump -i eth0 host 192.168.1.1 and host 172.16.1.1 -nn
把抓取的数据包存放在目录/tmp/下面,命名 XXX.cap 或XXX.pcap,抓包之后就可以看到 /tmp/XXX.cap 的文件
tcpdump -i eth0 host 192.168.1.1 and host 172.16.1.1 -nn -s0 -w /tmp/XXX.cap

tcpdump命令详解

tcpdump命令详解

tcpdump命令详解简介⽤简单的话来定义tcpdump,就是:dump the traffic on a network,根据使⽤者的定义对⽹络上的数据包进⾏截获的包分析⼯具。

tcpdump可以将⽹络中传送的数据包的“头”完全截获下来提供分析。

它⽀持针对⽹络层、协议、主机、⽹络或端⼝的过滤,并提供and、or、not等逻辑语句来帮助你去掉⽆⽤的信息。

实⽤命令实例默认启动tcpdump普通情况下,直接启动tcpdump将监视第⼀个⽹络接⼝上所有流过的数据包。

1、tcpdump: no suitable device found问题分析及解决:2种原因:1.权限不够,⼀般不经过处理,只⽤root⽤户能使⽤tcpdump , sudo ./tcpdump2.缺省只能同时使⽤4个tcpdump,如⽤完,则报此类错。

需要停掉多余的tcpdump2、fedora 14 中运⾏make install 命令也要加上 sudo3、出现种提⽰ linux UID or EUID of 0 required也是权限问题,fedora 下加上sudo监视指定⽹络接⼝的数据包tcpdump -i eth1如果不指定⽹卡,默认tcpdump只会监视第⼀个⽹络接⼝,⼀般是eth0,下⾯的例⼦都没有指定⽹络接⼝。

 监视指定主机的数据包打印所有进⼊或离开sundown的数据包.tcpdump host sundown也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包tcpdump host 210.27.48.1打印helios 与 hot 或者与 ace 之间通信的数据包tcpdump host helios and \( hot or ace \)截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包.tcpdump ip host ace and not helios如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使⽤命令:tcpdump ip host 210.27.48.1 and ! 210.27.48.2截获主机hostname发送的所有数据tcpdump -i eth0 src host hostname监视所有送到主机hostname的数据包tcpdump -i eth0 dst host hostname监视指定主机和端⼝的数据包如果想要获取主机210.27.48.1接收或发出的telnet包,同时本地端⼝是23,使⽤如下命令tcpdump tcp port 23 and host 210.27.48.118:16:52.987746 IP 10.1.210.111.55634 > izwz969829wo6i9nlscjukz.9124: Flags [S], seq 833996115, win 29200, options [mss 1460,sackOK,TS val 1492682208 ecr 0,nop,wscale 7], length 018:16:52.987794 IP izwz969829wo6i9nlscjukz.9124 > 10.1.210.111.55634: Flags [S.], seq 540069507, ack 833996116, win 28960, options [mss 1460,sackOK,TS val 1492698220 ecr 1492682208,nop,wscale 7], length 0 18:16:52.987980 IP 10.1.210.111.55634 > izwz969829wo6i9nlscjukz.9124: Flags [R.], seq 1, ack 1, win 229, options [nop,nop,TS val 0 ecr 1492698220], length 018:16:52.989616 IP 10.1.210.111.55636 > izwz969829wo6i9nlscjukz.9124: Flags [S], seq 236673865, win 29200, options [mss 1460,sackOK,TS val 1492682210 ecr 0,nop,wscale 7], length 018:16:52.989642 IP izwz969829wo6i9nlscjukz.9124 > 10.1.210.111.55636: Flags [S.], seq 2397900505, ack 236673866, win 28960, options [mss 1460,sackOK,TS val 1492698222 ecr 1492682210,nop,wscale 7], length 0 18:16:52.989782 IP 10.1.210.111.55636 > izwz969829wo6i9nlscjukz.9124: Flags [R.], seq 1, ack 1, win 229, options [nop,nop,TS val 0 ecr 1492698222], length 018:16:54.189162 IP izwz969829wo6i9nlscjukz.9124 > 10.1.210.111.55634: Flags [S.], seq 540069507, ack 833996116, win 28960, options [mss 1460,sackOK,TS val 1492699422 ecr 1492682208,nop,wscale 7], length 0 18:16:54.189319 IP 10.1.210.111.55634 > izwz969829wo6i9nlscjukz.9124: Flags [R], seq 833996116, win 0, length 018:16:54.389178 IP izwz969829wo6i9nlscjukz.9124 > 10.1.210.111.55636: Flags [S.], seq 2397900505, ack 236673866, win 28960, options [mss 1460,sackOK,TS val 1492699622 ecr 1492682210,nop,wscale 7], length 0 18:16:54.389374 IP 10.1.210.111.55636 > izwz969829wo6i9nlscjukz.9124: Flags [R], seq 236673866, win 0, length 018:16:56.989896 IP 10.1.210.111.55656 > izwz969829wo6i9nlscjukz.9124: Flags [S], seq 2567997945, win 29200, options [mss 1460,sackOK,TS val 1492686210 ecr 0,nop,wscale 7], length 018:16:56.989959 IP izwz969829wo6i9nlscjukz.9124我的haproxy配置的是4秒,这⾥怎么是2秒呢?看上⾯的标志位对本机的udp 123 端⼝进⾏监视 123 为ntp的服务端⼝tcpdump udp port 123监视指定⽹络的数据包打印本地主机与Berkeley⽹络上的主机之间的所有通信数据包(nt: ucb-ether, 此处可理解为'Berkeley⽹络'的⽹络地址,此表达式最原始的含义可表达为: 打印⽹络地址为ucb-ether的所有数据包)tcpdump net ucb-ether打印所有通过⽹关snup的ftp数据包(注意, 表达式被单引号括起来了, 这可以防⽌shell对其中的括号进⾏错误解析)tcpdump 'gateway snup and (port ftp or ftp-data)'打印所有源地址或⽬标地址是本地主机的IP数据包(如果本地⽹络通过⽹关连到了另⼀⽹络, 则另⼀⽹络并不能算作本地⽹络.(nt: 此句翻译曲折,需补充).localnet 实际使⽤时要真正替换成本地⽹络的名字)tcpdump ip and not net localnet监视指定协议的数据包打印TCP会话中的的开始和结束数据包, 并且数据包的源或⽬的不是本地⽹络上的主机.(nt: localnet, 实际使⽤时要真正替换成本地⽹络的名字))tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'打印所有源或⽬的端⼝是80, ⽹络层协议为IPv4, 并且含有数据,⽽不是SYN,FIN以及ACK-only等不含数据的数据包.(ipv6的版本的表达式可做练习)tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'(nt: 可理解为, ip[2:2]表⽰整个ip数据包的长度, (ip[0]&0xf)<<2)表⽰ip数据包包头的长度(ip[0]&0xf代表包中的IHL域, ⽽此域的单位为32bit, 要换算成字节数需要乘以4, 即左移2. (tcp[12]&0xf0)>>4 表⽰tcp头的长度, 此域的单位也是32bit, 换算成⽐特数为 ((tcp[12]&0xf0) >> 4) << 2, 即 ((tcp[12]&0xf0)>>2). ((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0 表⽰: 整个ip数据包的长度减去ip头的长度,再减去tcp头的长度不为0, 这就意味着, ip数据包中确实是有数据.对于ipv6版本只需考虑ipv6头中的'Payload Length' 与 'tcp头的长度'的差值, 并且其中表达⽅式'ip[]'需换成'ip6[]'.)打印长度超过576字节, 并且⽹关地址是snup的IP数据包tcpdump 'gateway snup and ip[2:2] > 576'打印所有IP层⼴播或多播的数据包,但不是物理以太⽹层的⼴播或多播数据报tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'打印除'echo request'或者'echo reply'类型以外的ICMP数据包( ⽐如,需要打印所有⾮ping 程序产⽣的数据包时可⽤到此表达式 .(nt: 'echo reuqest' 与 'echo reply' 这两种类型的ICMP数据包通常由ping程序产⽣))tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'tcpdump 与wiresharkWireshark(以前是ethereal)是Windows下⾮常简单易⽤的抓包⼯具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 <mss 1460,nop,nop,sackOK>
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 <mss 1460,nop,nop,sackOK>
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。

相关文档
最新文档