tcpdump_filter

 

 

前言

  1. 网络问题的排查思路

    • 随机抓包初步分析

      • arp冲突(ip冲突),出现大量tcp retransmission包,冲突ip一般不会多,可手动定位

        • 自动扫描工具:xarp windows 用,arp-scan linux用 (epel源,其依赖多,但都位于base)

        • 手动检查梳理出tcp retransmission包对应的目标或源ip,逐一排查。

          image-20200925181136591

 

关于MTU

https://developer.aliyun.com/article/222535

 

 

 

Linux下查看与修改mtu值

MTU:通信术语 最大传输单元(Maximum Transmission Unit)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。 我们在使用互联网时进行的各种网络操作,都是通过一个又一个“数据包”传输来实现的。而MTU指定了网络中可传输数据包的最大尺寸,在我们常用的以太网中,MTU是1500字节。超过此大小的数据包就会将多余的部分拆分再单独传输 。 MTU的设置不是一个值天下通用,所以需要我们合理设置特殊场景的MTU 。

首先确认什么是不合理的 : 1.本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间 。 2.本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥 。 这样我们就知道: 所谓合理的设置MTU值,就是让本地的MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分

检测需要设置的合理的值:

大部分网络设备都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包

Linux OS:

含义: 发送大小包大小是1472(+28)字节,禁止路由器拆分数据包。 【 1472 + 8(ICMP回显示请求和回显应答报文格式长度) + 20(IP首部) = 1500 】 回复结果: 1.如果正常回复,说明网络允许最大MTU就是1500字节,与系统默认相同,只需将自己的路由的MTU也设置为1500即可。 2.如果没正常回复,说明数据包大小超过了网络限定的MTU大小。需要减小探测包大小再次尝试。

含义: 发送大小包大小是1472(+28)字节,禁止路由器拆分数据包。 【 1472 + 8(ICMP回显示请求和回显应答报文格式长度) + 20(IP首部) = 1500 】 回复结果: 1.如果正常回复,说明网络允许最大MTU就是1500字节,与系统默认相同,只需将自己的路由的MTU也设置为1500即可。 2.如果没正常回复,说明数据包大小超过了网络限定的MTU大小。需要减小探测包大小再次尝试。

MTU设置与查看:

1、设置本机的mtu,即时生效,重启后失效 # ifconfig eth0 mtu 1472

2、永久生效的修改方法,缺点是需要重启网卡

# vim /etc/sysconfig/network-scripts/ifcfg-eth0 增加如下内容

  • MTU="9000"

# service network restart

查看设置后的结果 # netstat -i 或使用ifconfig也可以查看得到

--------------------------------------------------------------------

MSS: Maxitum Segment Size 最大分段大小

MSS最大传输大小的缩写,是TCP协议里面的一个概念。 MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes), 通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

而一般以太网MTU都为1500, 所以在以太网中, 往往TCP MSS为1460。

 

wireshark 统计

会话统计

1、Statistics->Conversations会话统计功能,统计通信会话之间接收和发送的数据包和字节数,通过这个工具可以找出网络中哪个会话(IP地址或端口号)最占用带宽,进一步作出网络策略

image-20200925140249328

流量图

Statistics–>Flow graph会话通信过程图形可视化,还可以看到是否有TCP的延迟包括延迟确认(Delayed ACK),服务端是否开启Nagle算法

image-20200925140344794

IO graph

查看IO graph,确保链路不忙,不忙的链路IO会有很多高低起落,峰值以及空闲间隙

image-20200925140601435

 

 

wireshark & tcpdump

 

 

过滤tcp重传

tcp.analysis.retransmission

image-20200925134322320

tcp.flags.reset

image-20200925133855535

 

 

关于ip地址冲突

如果本地有yum源,则只需要安装一个包,其它的都在base中

 

 

arp-scan使用

xarp windows 工具

xarp-2.2.2-win (安装包内集成winpcap)另外支持ubuntu,可直接使用arp-scan

image-20200925175624809

 

直接包分析

如下所有的问题包均指向同一个ip,可以再次使用arp -a查询验证。

image-20200925180305823