pcapsipdump 不保存捕获文件

pcapsipdump not saving capture files

我正在尝试使用一个名为 pcapsipdump 的程序,但无论我尝试什么,它都没有任何作用。不确定我做错了什么。

我用这个方法从SVN安装的。

    apt-get install subversion libpcap0.8 libpcap-dev build-essential
    svn checkout svn://svn.code.sf.net/p/pcapsipdump/code/trunk pcapsipdump-code
    cd pcapsipdump-code
    make all
    make install-debian
    update-rc.d pcapsipdump defaults
    nano /etc/default/pcapsipdump

设置文件如下所示。

    PCAPSIDUMP_ENABLE=true
    DEVICE=eth3
    SPOOLDIR=/var/spool/pcapsipdump
    RETENTION=7

过程好像是运行

    sudo service pcapsipdump status
    pcapsipdump (pid 1457) is running

    ps -ax | grep pcapsipdump
    1457 ttyS0    S      0:00 /usr/sbin/pcapsipdump -d /var/spool/pcapsipdump -i eth3
    1617 ttyS0    S+     0:00 grep --color=auto pcapsipdump

它似乎正在访问所需的库。

    sudo lsof | grep pcapsip
    pcapsipdu 1457            root  cwd       DIR              252,0     4096    8653224 /var/spool/pcapsipdump
    pcapsipdu 1457            root  rtd       DIR              252,0     4096          2 /
    pcapsipdu 1457            root  txt       REG              252,0    28832   24260551 /usr/sbin/pcapsipdump
    pcapsipdu 1457            root  mem       REG                0,7               10167 socket:[10167] (stat: No such file or directory)
    pcapsipdu 1457            root  mem       REG              252,0  1071552    4980955 /lib/x86_64-linux-gnu/libm-2.19.so
    pcapsipdu 1457            root  mem       REG              252,0  1845024    4980944 /lib/x86_64-linux-gnu/libc-2.19.so
    pcapsipdu 1457            root  mem       REG              252,0    90080    4980754 /lib/x86_64-linux-gnu/libgcc_s.so.1
    pcapsipdu 1457            root  mem       REG              252,0    56016    4980988 /lib/x86_64-linux-gnu/libbsd.so.0.6.0
    pcapsipdu 1457            root  mem       REG              252,0   979056   24253260 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
    pcapsipdu 1457            root  mem       REG              252,0   249096   24255058 /usr/lib/x86_64-linux-gnu/libpcap.so.1.5.3
    pcapsipdu 1457            root  mem       REG              252,0   149120    4980942 /lib/x86_64-linux-gnu/ld-2.19.so
    pcapsipdu 1457            root    0u      CHR               4,64      0t0       8214 /dev/ttyS0
    pcapsipdu 1457            root    1u      CHR               4,64      0t0       8214 /dev/ttyS0
    pcapsipdu 1457            root    2u      CHR               4,64      0t0       8214 /dev/ttyS0
    pcapsipdu 1457            root    3u     pack              10167      0t0        ALL type=SOCK_RAW

wireshark 似乎在这个系统上工作得很好。我不知道我做错了什么。

这里有一些关于系统的更多信息

   cat /proc/version
   Linux version 3.13.0-44-generic (buildd@lamiak) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #73-Ubuntu SMP Tue Dec 16 00:22:43 UTC 2014

   cat /etc/*-release
   DISTRIB_ID=Ubuntu
   DISTRIB_RELEASE=14.04
   DISTRIB_CODENAME=trusty
   DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
   NAME="Ubuntu"
   VERSION="14.04.1 LTS, Trusty Tahr"
   ID=ubuntu
   ID_LIKE=debian
   PRETTY_NAME="Ubuntu 14.04.1 LTS"
   VERSION_ID="14.04"
   HOME_URL="http://www.ubuntu.com/"
   SUPPORT_URL="http://help.ubuntu.com/"
   BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

如有任何帮助,我们将不胜感激!这也是我第一次 post 在这里,如果我遗漏任何规则,请告诉我。谢谢。

编辑 1:

关于系统的更多信息。盒子有 4 个以太网端口。 eth2 和 eth3 使用 brctl 工具在 br1 中。 pcapsipdump 的端口是 2 个交换机之间的中继端口。盒子在他们之间。所有流量都通过机器。 vlan 是否有可能干扰应用程序?

     sudo brctl show
     bridge name     bridge id               STP enabled     interfaces
     br0             8000.0050c22508bc       no              eth0
                                                             eth1
     br1             8000.0050c22508be       no              eth2
                                                             eth3

    br1       Link encap:Ethernet  HWaddr 00:50:c2:25:08:be
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:175550 errors:0 dropped:11309 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:10625462 (10.6 MB)  TX bytes:0 (0.0 B)

    eth2      Link encap:Ethernet  HWaddr 00:50:c2:25:08:be
              UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
              RX packets:379365 errors:0 dropped:520 overruns:0 frame:0
              TX packets:318668 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:244877902 (244.8 MB)  TX bytes:40942935 (40.9 MB)
              Interrupt:18 Memory:dfc00000-dfc20000

    eth3      Link encap:Ethernet  HWaddr 00:50:c2:25:08:bf
              UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
              RX packets:320221 errors:0 dropped:0 overruns:0 frame:0
              TX packets:378233 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:41042572 (41.0 MB)  TX bytes:244621993 (244.6 MB)
              Interrupt:19 Memory:dfb00000-dfb20000

编辑 2:

是的,就是这样。使用镜像端口而不是通过盒子传递所有 vlan 进行测试。它开始工作

现在有一个问题,有没有办法使它与 vlan 一起工作?还是我卡住了?

pcapsipdump 似乎不支持 vlan。除了测试证据,我似乎找不到任何文件来证明或反驳这一点。

解决方案:使用 wireshark 捕获并去除 vlan 标记。将捕获文件发送到 pcapsipdump 进行处理。

在这里找到了一些重写捕获文件的工具

    http://tcpreplay.synfin.net/wiki/tcprewrite

删除标签

    ls | xargs -I pcapfile tcprewrite --enet-vlan=del --infile=/wireshark/wireshark3/pcapfile --outfile=/wireshark/calls/pcapfile

然后将捕获文件推送到 pcapsipdump

    ls | xargs -I pcapfile pcapsipdump -r /wireshark/calls/pcapfile

一切正常。只需要不时添加一些脚本来执行此操作。

自 SVN 修订版 101 起支持在一个或多个 802.1Q 子接口的父接口上捕获:

http://sourceforge.net/p/pcapsipdump/code/101/

在这里查看如何从 SVN 安装最新的开发版本:

http://pcapsipdump.sourceforge.net/