网络抓包工具——tcpdump &&icmpv6抓包

之前没了解过这个工具,遇到一个开发问题,需要查看NS和NA的行为,确保不会因为太频繁导致网络堵塞

【0】icmpv6的ns na rs ra报文

首先介绍一下icmpv6的ns na rs ra报文是干什么的?

😀上来让你抓包,首先需要知道这些包到底是什么

ICMPv6中的NS、NA、RS、RA是IPv6邻居发现协议(NDP)的四种核心报文类型,用于IPv6网络的地址解析、路由器发现等功能:

1. NS (Neighbor Solicitation - 邻居请求报文)

  1. 功能 :用于解析IPv6地址对应的链路层地址(类似IPv4的ARP请求)
  2. 用途 :

地址解析:查询某个IPv6地址对应的MAC地址

重复地址检测(DAD):检查自己想要使用的IPv6地址是否已被使用

邻居不可达检测(NUD):验证邻居是否仍然可达

发送方式 :通常以多播或单播形式发送

  1. 功能 :对NS报文的响应,通告自己的IPv6地址和链路层地址
  2. 用途 :

回应NS报文的地址解析请求

主动通告地址变化(如链路层地址改变时)

确认地址唯一性(DAD响应)

发送方式 :通常是单播回应NS,也可能在地址变更时多播通告

3. RS (Router Solicitation - 路由器请求报文)

  1. 功能 :主机启动时发送,请求路由器发送RA报文
  2. 用途 :

快速获取网络配置信息

在网络变化时触发路由器重新发送RA

发送方式 :发送到所有路由器多播地址(FF02::2)

  1. 功能 :路由器周期性发送或响应RS,通告网络配置信息
  2. 用途 :

前缀信息:提供IPv6地址前缀供主机自动配置地址

默认网关信息:指定默认路由器

MTU大小:通告链路最大传输单元

跳数限制:建议的IPv6默认跳数

发送方式 :通常以多播形式发送到所有节点多播地址(FF02::1)

工作流程示例 :

  1. 主机启动后发送RS请求配置信息

  2. 路由器回应RA,提供前缀、默认网关等信息

  3. 主机使用前缀生成IPv6地址,然后发送NS进行DAD检测

  4. 如果没有冲突,主机设置地址;如果有其他节点已使用该地址,会回应NA冲突信息

  5. 当主机需要与其他IPv6节点通信时,发送NS查询目标的MAC地址

  6. 目标节点回应NA,提供MAC地址

  7. 通信建立后,主机会定期发送NS进行邻居可达性检测

这些报文共同构成了IPv6网络的基础发现和配置机制,替代了IPv4中的ARP协议和DHCP的部分功能。

【1】tcpdump基本介绍

TCPdump是一个功能强大的命令行网络数据包分析工具,主要用于在Linux和Unix系统上捕获和分析TCP/IP及其他网络协议的数据包。它常用于:

网络故障诊断和问题排查

网络安全审计和监控

网络流量分析和协议研究

应用程序调试和性能优化

【2】基本语法格式

tcpdump 选项 过滤表达式

【3】常用选项详解

1、接口与捕获选项

|---------|----------------------------------------|
| 选项 | 说明 |
| 网络接口 -i | 指定要监听的网络接口,如 -i eth0 、 -i enp1s0.1069 |
| 数量 -c | 限制捕获的数据包数量,如 -c 10 只捕获10个包 |
| 长度 -s | 设置数据包快照长度, -s 0 表示捕获完整数据包 |
| 文件名 -w | 将捕获的数据包保存到文件中(二进制格式),如 -w capture.pcap |
| 文件名 -r | 从保存的文件中读取数据包进行分析,如 -r capture.pcap |

2、显示格式选项

|-------|--------------------------------|
| -n | 不解析主机名,以IP地址显示,加快处理速度 |
| -nn | 不解析主机名和端口名称,以数字形式显示,如 -nn |
| -v | 详细输出模式,显示更多数据包信息 |
| -vv | 更详细的输出模式,显示完整的协议信息 |
| -A | 以ASCII格式显示数据包内容,适用于分析HTTP等文本协议 |
| -x | 以十六进制和ASCII格式显示数据包内容 |
| -e | 显示链路层头部信息,包括MAC地址 |
| -t | 不显示时间戳 |
| -tttt | 以可读的时间格式显示时间戳 |

【4】过滤表达式

1、基本过滤选项

|---------|--------------------------------------------------|
| 过滤类型 | 说明 |
| host | 基于主机名或IP地址过滤,如 host 192.168.1.1 |
| net | 基于网段过滤,如 net 192.168.0.0/24 |
| port | 基于端口号过滤,如 port 80 |
| src/dst | 基于源/目标地址/端口过滤,如 src host 192.168.1.1 dst port 80 |
| 协议名称 | 基于协议类型过滤,如 tcp 、 udp 、 icmp 、 icmp6 |

2、逻辑运算符

and 或 && :逻辑与

or 或 || :逻辑或

not 或 ! :逻辑非

3、特殊协议过滤

对于ICMPv6等特殊协议,使用更精确的过滤,如 过滤NS、NA、RS、RA、ping请求ping响应:

'icmp6 and (ip640 == 133 or ip640 == 134 or ip640 == 135 or ip640 == 136 or ip640 == 128 or ip640 == 129)' \

【5】使用示例

1、基础使用

抓取指定接口的所有流量:抓取eth0的所有流量:sudo tcpdump -i eth0

不解析主机名和端口,提高处理速度:sudo tcpdump -i eth0 -nn

限制捕获抓包数量:sudo tcpdump -i enp1s0.1069 -c 10

2、协议与端口过滤

捕获TCP协议的数据包:sudo tcpdump -i eth0 'tcp'

捕获HTTP流量,端口80:sudo tcpdump -i eth0 'port 80'

捕获多个端口的流量:sudo tcpdump -i eth0 'port 80 or port 443'

3、主机与地址过滤

捕获特定主机的流量:sudo tcpdump -i eth0 'host 192.168.1.1'

捕获从特定主机发出的流量:sudo tcpdump -i eth0 'src host 192.168.1.1'

捕获到特定主机的流量:sudo tcpdump -i eth0 'dst host 192.168.1.1'

4、ICMPv6相关过滤

捕获ICMPv6的邻居发现相关报文:sudo tcpdump -i enp1s0.1069 'icmp6 and (ip640 == 133 or ip640 == 134 or ip640 == 135 or ip640 == 136)' -nn -vv

  • 133: Router Solicitation (RS) - 路由器请求
  • 134: Router Advertisement (RA) - 路由器通告
  • 135: Neighbor Solicitation (NS) - 邻居请求
  • 136: Neighbor Advertisement (NA) - 邻居通告
  • 128: Echo Request (ping请求)
  • 129: Echo Reply (ping响应)
    捕获ICMPv6的ping请求和响应:sudo tcpdump -i enp1s0.1069 'icmp6 and (ip640 == 128 or ip640 == 129)' -nn -vv

5、保存与读取捕获文件

将捕获的数据包保存到文件:sudo tcpdump -i eth0 -w capture.pcap

从文件中读取并过滤数据包:tcpdump -r capture.pcap 'host 192.168.1.1'

【6】数据包分析

标准tcpdump输出格式包含以下字段:

时间戳 协议 源地址.源端口 > 目标地址.目标端口: 标志 序列号 确认号 数据长度

对于ICMPv6报文,会显示类型、代码和相关信息

03:41:09.983272 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) fe80::219:xxxx:xxxx:xxxx> fe80::xxxx:xxxx:xxxx:xxxx: icmp6 sum ok ICMP6, neighbor advertisement, length 24, tgt is fe80::219:xxxx:xxxx:xxxx, Flags router, solicited

相关推荐
wangbing11254 分钟前
开发指南148-WebSocket-前端查报文
网络·websocket·网络协议
ESDWAN12 分钟前
企业跨境网络合规建设指南:从线路选择到数据出境的全流程方案
网络·架构
wuyk5551 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 30 章 WiFi 抗干扰、抗闪断、网络抖动过滤量产策略
网络
不会就选b1 小时前
Linux之TCP<2>
linux·网络·tcp/ip
垆边人似月.3 小时前
5G 网络建设(300 分档)
网络·5g
国科安芯3 小时前
低轨卫星导航授时载荷中高精度定时控制器的时钟稳定性与抗辐射特性研究
网络·人工智能·低轨卫星·商业航天·授时·抗辐射·时钟稳定
白帽攻防录3 小时前
SRC 挖洞:V8 Turbofan 沙箱逃逸深度复盘,CVE-2026-6307 一根长矛怎么刺穿 Chrome 两道边界
网络·chrome·安全·网络安全·浏览器安全
pt10433 小时前
CML网络仿真入门-3:Cisco Modeling Labs 网络工具功能详解
网络
欣欣之王来了3 小时前
5G网络基础:5G的核心特性,eMBB、uRLLC、mMTC的应用场景
网络·学习·计算机网络·安全·教程
杭州领祺科技4 小时前
保信子站深度解析:继电保护信息采集与故障诊断的关键枢纽
linux·服务器·网络·新能源·储能·虚拟电厂