tcprewrite man手册翻译

TCPREWRITE(1)                               Programmer's Manual                               TCPREWRITE(1)

NAME

  tcprewrite - 改写pcap文件中的报文

SYNOPSIS

       tcprewrite [-flag [value]]... [--opt-name [[=| ]value]]...

  所有参数均为选项。

DESCRIPTION

  该手册简要介绍了tcprewrite的用法。 Tcprewrite是一个改写pcap文件(tcpdump、and ethereal)报文的工具。可以将修改后的报文通过 tcpreplay(1) 重新发送回去。
  tcprewrite 当前支持读如下的DLT(Data Link Types)类型:

       DLT_C_HDLC aka Cisco HDLC
       DLT_EN10MB aka Ethernet
       DLT_LINUX_SLL aka Linux Cooked Socket
       DLT_RAW aka RAW IP
       DLT_NULL aka BSD Loopback
       DLT_LOOP aka OpenBSD Loopback
       DLT_IEEE802_11 aka 802.11a/b/g
       DLT_IEEE802_11_RADIO aka 802.11a/b/g with Radiotap headers


  为了区分客户端、服务器的报文需要tcpprep(1)生成的cache文件支持。

  更多详细信息,请访问 : https://tcpreplay.appneta.com/ 

OPTIONS

       -r string, --portmap=string
    修改TCP/UDP端口号,该选项可重复出现多次。
    指定端口修改规则 ,将匹配端口修改成指定端口,匹配的端口之间由逗号分割,冒号后边跟着要修改成的指定端口号。
              示例:
                  --portmap=80:8000 --portmap=8080:80    # 80->8000 and 8080->80
                  --portmap=8000,8080,88888:80           # 3 different ports become 80
                  --portmap=8000-8999:80                 # ports 8000 to 8999 become 80

       -s number, --seed=number

    通过给定的seed随机化 src/dst IPv4/v6 地址,该选项只能出现一次。该选项参数为整型。
    伪随机化IPv4/v6地址,随机化的地址仍然保持客户端/服务器之间的关系。因为基于相同seed的随机关系是确定的,所以通过相同的seed创造相同的流量。

       -N string, --pnat=string
    改写 IPv4/v6 地址,该选项最多能重复出现2次,该选项不能跟 srcipmap 选项混合使用。

              IPv4 示例:
                  --pnat=192.168.0.0/16:10.77.0.0/16,172.16.0.0/12:10.1.0.0/24
              IPv6 示例:
                  --pnat=[2001:db8::/32]:[dead::/16],[2001:db8::/32]:[::ffff:0:0/96]

       -S string, --srcipmap=string
    改写 IPv4/v6 源 IP 地址,该选该项只能出现一次,该选项不能同 pnat 选项混合使用。
    工作原理跟 --pnat 选项类似,但是只影响IPv4/v6 源IP地址。

       -D string, --dstipmap=string
    改写 IPv4/v6 目的地址,该选项只能出现一次, 该选项不能同 pnat 选项联合使用。
    工作原理跟 --pnat 类型,但是只影响 IPv4/v6 的目的 IP 地址。

       -e string, --endpoints=string
    点对点修改IP地址,该选项只能出现一次。该选项必须跟 --cachefile 选项联合使用。

    [实例操作发现就是指定了servier address : client address,将pcap文件中的所有客户端、服务器都改成这一对IP地址]

              IPv4 示例:
                  --endpoints=172.16.0.1:172.16.0.2
              IPv6 示例:
                  --endpoints=[2001:db8::dead:beef]:[::ffff:0:0:ac:f:0:2]

       -b, --skipbroadcast
    跳过广播/组播地址改写。
    默认情况下, --seed, --pnat and --endpoints 会修改 IPv4/v6 的组播广播地址以及 MAC 地址。设置该选项可以保持组播、广播数据包IP及MAC地址不变。

       -C, --fixcsum
    强制重新计算 IPv4/TCP/UDP 头部校验和,选项 --seed, --pnat, --endpoints,--fixlen 自动使能。
    
       -m number, --mtu=number
    修改默认的MTU长度(1500字节),该选项只能出现一次,该选项为 1 through MAXPACKET的整数。
    修改默认的1500字节MTU长度能决定最大的补全长度(--fixlen=pad)或者截取(--mtu-trunc)
       --mtu-trunc
              Truncate packets larger then specified MTU.  This option may appear up to 1 times.
    截取报文到指定的MTU,该选项只能出现一次。
    跟 --fixlen 类似,该选项丢弃数据包中长于MTU的部分。
       -E, --efcs
    丢弃位于报文尾部的 Ethernet checksums (FCS) 部分。
    声明,该选项有些危险!我们并不检查FCS是否真正存在,而是盲目的删掉最后两个字节数据。因此,必须在确保你的系统在读raw报文时候提供 FCS 时候才用该选项。

       --ttl=string
    修改IPv4/v6 TTL。
              示例:
                  --ttl=10
                  --ttl=+7
                  --ttl=-64

       --tos=number
              Set the IPv4 TOS/DiffServ/ECN byte.  This option may appear up to 1 times.  This option takes
              an integer number as its argument.  The value of number is constrained to being:
                  in the range  0 through 255
    修改 IPv4 TOS/DiffServ/ECN 位,该选项只能出现一次。该选项参数为 0-255 的整数。

       --tclass=number
    设置 IPv6 Traffic Class 位。该选项只能出现一次,该选项参数为 0-255的整数。

       --flowlabel=number
    设置IPv6 Flow Label,参数为 0 - 1048575 整数。

       -F string, --fixlen=string
    补充或者截断报文数据,使得跟头部长度匹配。该选该项只能出现一次。

    当捕获报文时候,如果 snaplen 小于实际的报文长度,报文会被截断。该选项允许通过补全、修改报文长度的方式使得报文数据长度跟头部长度相匹配。

    pad    : 补全截断的报文
    trunc     :重写IPv4头部长度来匹配实际报文长度。
    del     : 删除报文
       --skipl2broadcast
    跳过修改广播、组播二层地址。

    默认情况下,修改二层地址会修改广播、组播MAC地址,设置该选项会保持广播、组播MAC地址不变。

       --dlt=string

    修改的输出的 LDT 封装,该选项只能出现一次。
    默认情况下不会修改DLT封装。改变输出报文的DLT类型可以选取下边几个值:
              enet Ethernet aka DLT_EN10MB
              hdlc Cisco HDLC aka DLT_C_HDLC
              user User specified Layer 2 header and DLT type


       --enet-dmac=string
    修改以太网目的地址。该选该项只能出现一次。
    第一个mac地址用于服务器到客户端,第二个mac地址用于客户端到服务器。
              示例:
                  --enet-dmac=00:12:13:14:15:16,00:22:33:44:55:66

       --enet-smac=string
    修改源mac地址。该选项只能出现一次。
    第一个mac地址用于服务器到客户端,第二个mac地址用于客户端到服务器。
              示例:
                  --enet-smac=00:12:13:14:15:16,00:22:33:44:55:66

       --enet-vlan=string
    修改以太网 802.1q VLAN tag,该选项只能出现一次。

      add : 给以太网头添加802.1q VLAN 头部
              del : 删除 vlan tags

       --enet-vlan-tag=number
    指定新的 vlan tag 值,该选项只能出现一次。该选型必须跟 enet-vlan 联合使用。该选项参数为 0-4095 整数。

       --enet-vlan-cfi=number
    指定 vlan tag 的 CFI 值,该选项只能出现一次,该选项必须跟 enet-vlan 联合使用。该选项参数为 0-1 的整型。

       --enet-vlan-pri=number
    指定 vlan tag 的优先级。该选项只能出现一次,该选项参数为 0-7 整型。

       --hdlc-control=number
    指定 HDLC control 值,该选项只能出现一次,该选项参数为整数。
    Cisco HDLC 头部有 1 位为“控制”域,通常情况下该值为 0, 你可以给这个域制定 1 字节的数值。

       --hdlc-address=number
    指定 HDLC 地址,该选项只能出现一次,该选项参数为整数。
    Cisco HDLC头部有 1 字节的地址,有两个有效数值:
              0x0F Unicast
              0xBF Broadcast

      可以指定任意的单字节数值。

       --user-dlt=number
    设置输出的DLT类型。该选项只能出现一次,该选项参数为整数。

    设置输出 pcap 文件的 DLT 值。

       --user-dlink=string
    设置用户定义的 Data-Link layer 数据,该选项最多出现 2 次。
    该选项第一个参数会用户修改客户端、服务器,但是如果指定了第二个参数,第一个参数会被用于客户端。
              示例:
                  --user-dlink=01,02,03,04,05,06,00,1A,2B,3C,4D,5E,6F,08,00

       -d number, --dbug=number
    参见 tcpreplay man手册翻译

       -i string, --infile=string
    指定要处理的 pcap 文件,改选项只能出现一次。

       -o string, --outfile=string
    输出 pcap 文件,该选项只能出现一次。

       -c string, --cachefile=string
              Split traffic via tcpprep cache file.  This option may appear up to 1 times.
    通过 tcpprep 的 cache 文件划分流量,该选项只能出现一次。
              Use tcpprep cache file to split traffic based upon client/server relationships.
    通过 tcpprep 的cache 文件区分客户端。

       -v, --verbose
    参见 tcpreplay man手册翻译

       -A string, --decode=string
    参见 tcpreplay man手册翻译
       --fragroute=string
    解析 fragroute 配置文件(配置文件中说明如何修改报文)。
       --fragdir=string

    必须与 cachefile 联合使用,可选参数为:c2s(客户端到服务器), s2c(服务器到客户端), both(双向)。
       --skip-soft-errors
    跳过不能修改的报文,该选项只能出现一次。

    某些情况下,报文不能被解码获取不能被修改,正常情况下报文会被原封不动的写到输出文件中,所以tcpprep file 仍然可用。

    但是如果你愿意,可以丢球该类报文。

    一个例子是没有数据的 802.11 管理报文。

       -V, --version
              参见 tcpreplay man手册翻译

       -h, --less-help
              参见 tcpreplay man手册翻译

       -H, --help
              参见 tcpreplay man手册翻译

       -!, --more-help
              参见 tcpreplay man手册翻译

       --save-opts[=rcfile]
              参见 tcpreplay man手册翻译

       --load-opts=rcfile, --no-load-opts
              参见 tcpreplay man手册翻译

OPTION PRESETS

       Any option that is not marked as not presettable may be preset by loading values from configuration
       ("RC" or ".INI") file(s).  The homerc file is "$$/", unless that is a directory.  In that case, the
       file ".tcprewriterc" is searched for within that directory.

SEE ALSO

       tcpdump(1), tcpprep(1), tcpreplay(1)

AUTHOR

       Copyright 2000-2010 Aaron Turner

       For support please use the tcpreplay-users@lists.sourceforge.net mailing list.

       The latest version of this software is always available from: http://tcpreplay.synfin.net/

       Released under the Free BSD License.

       This manual page was AutoGen-erated from the tcprewrite option definitions.

(tcprewrite )                                    2010-04-04                                   TCPREWRITE(1)

 

参考资料:

  • fragroute的使用和规则:
    https://blog.51cto.com/yanwang/367740

 

posted on 2019-06-05 15:29  rivsidn  阅读(1973)  评论(0编辑  收藏  举报

导航