学习啦 > 学习电脑 > 操作系统 > Linux教程 > tcpdump命令的使用方法(9)

tcpdump命令的使用方法(9)

时间: 春健736 分享

tcpdump命令的使用方法

  Protocol 可以是一个数字也可以是名字, 比如:icmp6, igmp, igrp(nt: Interior Gateway Routing Protocol,内部网关路由协议), pim(Protocol Independent Multicast, 独立组播协议, 应用于组播路由器),ah, esp(nt: ah, 认证头, esp 安全负载封装, 这两者会用在IP包的安全传输机制中 ), vrrp(Virtual Router Redundancy Protocol, 虚拟路由器冗余协议), udp, or tcp. 由于tcp , udp 以及icmp是tcpdump 的关键字,所以在这些协议名字之前必须要用\来进行转义(如果在C-shell 中需要用\来进行转义). 注意此表达元不会把数据包中协议头链中所有协议头内容全部打印出来(nt: 实际上只会打印指定协议的一些头部信息, 比如可以用tcpdump -i eth0 'ip proto \tcp and host 192.168.3.144', 则只打印主机192.168.3.144 发出或接收的数据包中tcp 协议头所包含的信息)

  ip6 proto protocol

  如果数据包为ipv6数据包并且其协议类型为protocol, 则与此对应的条件表达式为真.

  注意此表达元不会把数据包中协议头链中所有协议头内容全部打印出来

  ip6 protochain protocol

  如果数据包为ipv6数据包并且其协议链中包含类型为protocol协议头, 则与此对应的条件表达式为真. 比如,

  ip6 protochain 6

  将匹配其协议头链中拥有TCP 协议头的IPv6数据包.此数据包的IPv6头和TCP头之间可能还会包含验证头, 路由头, 或者逐跳寻径选项头.

  由此所触发的相应BPF(Berkeley Packets Filter, 可理解为, 在数据链路层提供数据包过滤的一种机制)代码比较繁琐,

  并且BPF优化代码也未能照顾到此部分, 从而此选项所触发的包匹配可能会比较慢.

  ip protochain protocol

  与ip6 protochain protocol 含义相同, 但这用在IPv4数据包.

  ether broadcast

  如果数据包是以太网广播数据包, 则与此对应的条件表达式为真. ether 关键字是可选的.

  ip broadcast

  如果数据包是IPv4广播数据包, 则与此对应的条件表达式为真. 这将使tcpdump 检查广播地址是否符合全0和全1的一些约定,并查找网络接口的网络掩码(网络接口为当时在其上抓包的网络接口).

  如果抓包所在网络接口的网络掩码不合法, 或者此接口根本就没有设置相应网络地址和网络, 亦或是在linux下的'any'网络接口上抓包(此'any'接口可以收到系统中不止一个接口的数据包(nt: 实际上, 可理解为系统中所有可用的接口)),网络掩码的检查不能正常进行.

  ether multicast

  如果数据包是一个以太网多点广播数据包(nt: 多点广播, 可理解为把消息同时传递给一组目的地址, 而不是网络中所有地址,后者为可称为广播(broadcast)), 则与此对应的条件表达式为真. 关键字ether 可以省略. 此选项的含义与以下条件表达式含义一致:`ether[0] & 1!= 0'(nt: 可理解为, 以太网数据包中第0个字节的最低位是1, 这意味这是一个多点广播数据包).

  ip multicast

  如果数据包是ipv4多点广播数据包, 则与此对应的条件表达式为真.

  ip6 multicast

  如果数据包是ipv6多点广播数据包, 则与此对应的条件表达式为真.

  ether proto protocol

  如果数据包属于以下以太协议类型, 则与此对应的条件表达式为真.

  协议(protocol)字段, 可以是数字或以下所列出了名字: ip, ip6, arp, rarp, atalk(AppleTalk网络协议),

  aarp(nt: AppleTalk Address Resolution Protocol, AppleTalk网络的地址解析协议),

  decnet(nt: 一个由DEC公司所提供的网络协议栈), sca(nt: 未知, 需补充),

  lat(Local Area Transport, 区域传输协议, 由DEC公司开发的以太网主机互联协议),

  mopdl, moprc, iso(nt: 未知, 需补充), stp(Spanning tree protocol, 生成树协议, 可用于防止网络中产生链接循环),

  ipx(nt: Internetwork Packet Exchange, Novell 网络中使用的网络层协议), 或者

  netbeui(nt: NetBIOS Extended User Interface,可理解为, 网络基本输入输出系统接口扩展).

  protocol字段可以是一个数字或以下协议名之一:ip, ip6, arp, rarp, atalk, aarp, decnet, sca, lat,

  mopdl, moprc, iso, stp, ipx, 或者netbeui.

  必须要注意的是标识符也是关键字, 从而必须通过'\'来进行转义.

  (SNAP:子网接入协议 (SubNetwork Access Protocol))

  在光纤分布式数据网络接口(其表达元形式可以是'fddi protocol arp'), 令牌环网(其表达元形式可以是'tr protocol arp'),

  以及IEEE 802.11 无线局域网(其表达元形式可以是'wlan protocol arp')中, protocol

  标识符来自802.2 逻辑链路控制层头,

  在FDDI, Token Ring 或 802.1头中会包含此逻辑链路控制层头.

  当以这些网络上的相应的协议标识为过滤条件时, tcpdump只是检查LLC头部中以0x000000为组成单元标识符(OUI, 0x000000

  标识一个内部以太网)的一段'SNAP格式结构'中的protocol ID 域, 而不会管包中是否有一段OUI为0x000000的'SNAP格式

  结构'(nt: SNAP, SubNetwork Access Protocol,子网接入协议 ). 以下例外:

  iso tcpdump 会检查LLC头部中的DSAP域(Destination service Access Point, 目标服务接入点)和

  SSAP域(源服务接入点).(nt: iso 协议未知, 需补充)

  stp 以及 netbeui

  tcpdump 将会检查LLC 头部中的目标服务接入点(Destination service Access Point);

  atalk

  tcpdump 将会检查LLC 头部中以0x080007 为OUI标识的'SNAP格式结构', 并会检查AppleTalk etype域.

  (nt: AppleTalk etype 是否位于SNAP格式结构中, 未知, 需补充).

  此外, 在以太网中, 对于ether proto protocol 选项, tcpdump 会为 protocol 所指定的协议检查

  以太网类型域(the Ethernet type field), 但以下这些协议除外:

  iso, stp, and netbeui

  tcpdump 将会检查802.3 物理帧以及LLC 头(这两种检查与FDDI, TR, 802.11网络中的相应检查一致);

  (nt: 802.3, 理解为IEEE 802.3, 其为一系列IEEE 标准的集合. 此集合定义了有线以太网络中的物理层以及数据

  链路层的媒体接入控制子层. stp 在上文已有描述)

  atalk

  tcpdump 将会检查以太网物理帧中的AppleTalk etype 域 , 同时也会检查数据包中LLC头部中的'SNAP格式结构'

  (这两种检查与FDDI, TR, 802.11网络中的相应检查一致)

  aarp tcpdump 将会检查AppleTalk ARP etype 域, 此域或存在于以太网物理帧中, 或存在于LLC(由802.2 所定义)的

  'SNAP格式结构'中, 当为后者时, 该'SNAP格式结构'的OUI标识为0x000000;

  (nt: 802.2, 可理解为, IEEE802.2, 其中定义了逻辑链路控制层(LLC), 该层对应于OSI 网络模型中数据链路层的上层部分.

  LLC 层为使用数据链路层的用户提供了一个统一的接口(通常用户是网络层). LLC层以下是媒体接入控制层(nt: MAC层,

  对应于数据链路层的下层部分).该层的实现以及工作方式会根据不同物理传输媒介的不同而有所区别(比如, 以太网, 令牌环网,

  光纤分布数据接口(nt: 实际可理解为一种光纤网络), 无线局域网(802.11), 等等.)

  ipx tcpdump 将会检查物理以太帧中的IPX etype域, LLC头中的IPX DSAP域,无LLC头并对IPX的进行了封装的802.3帧,

  以及LLC 头部'SNAP格式结构'中的IPX etype 域(nt | rt: SNAP frame, 可理解为, LLC 头中的'SNAP格式结构'.

  该含义属初步理解阶段, 需补充).

  decnet src host

  如果数据包中DECNET源地址为host, 则与此对应的条件表达式为真.

  (nt:decnet, 由Digital Equipment Corporation 开发, 最早用于PDP-11 机器互联的网络协议)

  decnet dst host

  如果数据包中DECNET目的地址为host, 则与此对应的条件表达式为真.

  (nt: decnet 在上文已有说明)

  decnet host host

  如果数据包中DECNET目的地址或DECNET源地址为host, 则与此对应的条件表达式为真.

  (nt: decnet 在上文已有说明)

  ifname interface

  如果数据包已被标记为从指定的网络接口中接收的, 则与此对应的条件表达式为真.

  (此选项只适用于被OpenBSD中pf程序做过标记的包(nt: pf, packet filter, 可理解为OpenBSD中的防火墙程序))

  on interface

  与 ifname interface 含义一致.

  rnr num

  如果数据包已被标记为匹配PF的规则, 则与此对应的条件表达式为真.

  (此选项只适用于被OpenBSD中pf程序做过标记的包(nt: pf, packet filter, 可理解为OpenBSD中的防火墙程序))

  rulenum num

  与 rulenum num 含义一致.

  reason code

  如果数据包已被标记为包含PF的匹配结果代码, 则与此对应的条件表达式为真.有效的结果代码有: match, bad-offset,

  fragment, short, normalize, 以及memory.

  (此选项只适用于被OpenBSD中pf程序做过标记的包(nt: pf, packet filter, 可理解为OpenBSD中的防火墙程序))

  rset name

  如果数据包已被标记为匹配指定的规则集, 则与此对应的条件表达式为真.

  (此选项只适用于被OpenBSD中pf程序做过标记的包(nt: pf, packet filter, 可理解为OpenBSD中的防火墙程序))

  ruleset name

  与 rset name 含义一致.

  srnr num

  如果数据包已被标记为匹配指定的规则集中的特定规则(nt: specified PF rule number, 特定规则编号, 即特定规则),

  则与此对应的条件表达式为真.(此选项只适用于被OpenBSD中pf程序做过标记的包(nt: pf, packet filter, 可理解为

  OpenBSD中的防火墙程序))

892697