Articles of tcpdump

哪一个可能的原因是一个没有被解决/回答的ARP请求?

这个周末我正在testing一个来自服务提供商的新的数据链接连接,并且我经历了一些地址parsing问题。 我使用笔记本电脑testing了远端主机的可达性,并提供了ISP提供的一些networking参数。 然后,当我在我的UTM上的可用NIC上configuration它时,同一主机无法访问。 确认我的路由configuration正确安装后,我开始用tcpdump进行嗅探,发现我的linux UTM的ARP请求( arp who-has )在另一端的第一跳没有得到答案。 因此,在我的UTM的ARP表中创build了一个<incomplete>条目的IP地址。 作为暂时的解决方法,我通过arp -a向UTM的ARP表中添加了一个永久的条目。 我发现主机不回答我的arp请求是Cisco路由器(根据nmap OS检测function的Cisco 7600 router (IOS 12.2) )。 什么可能是这个问题的根源呢? 路由器的ARP中的某种ACLconfiguration? (我的笔记本电脑没有得到ARPparsing) 一些arp_filter不允许回复来自其他子网的地址/ NAT必需? 当我在我的UTM上configuration相同的地址时,我的笔记本电脑在路由器的ARP表和欺骗保护上​​的临时条目被激活了。 畸形的ARP请求? (我没有这个问题与我在同一UTM的其他数据链接) 发送给我的UTM的“不可理解的”ARP答案? 任何其他? 数据链接的networking掩码是/30所以只有两个主机能够回复arp请求(我的UTM和路由器) 更新: 我的ISP回复: 我们确实应用了安全策略,但是在MAC地址级别,对于接入端口(Gi7 / 3),最多有10个Mac允许该端口的stream量,并且日志已经在此date注册了4个条目,因此确保安全措施(限制)尚未激活。 我确实升级了我的UTM硬件,以获得更多的网卡。 在这个升级中,我的网卡接收数据链接的MAC地址发生了变化,但行为是一样的,没有静态ARP条目,我不能发送数据包到思科路由器。

如何筛选tcpdump / tshark最常见的问题

我目前在Linux中使用以下命令来获取有关networking问题的具体信息。 tshark -r file.pcap -q -z io,stat,1,\ "COUNT(tcp.analysis.retransmission) tcp.analysis.retransmission",\ "COUNT(tcp.analysis.duplicate_ack)tcp.analysis.duplicate_ack",\ "COUNT(tcp.analysis.lost_segment) tcp.analysis.lost_segment",\ "COUNT(tcp.analysis.fast_retransmission) tcp.analysis.fast_retransmission" 这将输出一个很好的信息很好的桌子。 然而,我想知道我可以添加哪些其他列来获得更多的东西,如不正确的校验和,以及可能指出networking拥塞的东西。 几乎所有需要指出的性能问题。

tcpdump – 如何检查数据包的速度?

我使用这个脚本实际上检查传入数据包的速率,如果速率达到5mbps或更多,它会被触发。 数据包然后被logging到一个tcpdump文件。 interface=eth0 dumpdir=/tmp/ while /bin/true; do pkt_old=`grep $interface: /proc/net/dev | cut -d : -f2 | awk '{ print $2 }'` sleep 1 pkt_new=`grep $interface: /proc/net/dev | cut -d : -f2 | awk '{ print $2 }'` pkt=$(( $pkt_new – $pkt_old )) echo -ne "\r$pkt packets/s\033[0K" if [ $pkt -gt 5000 ]; then echo -e […]

漂亮的打印IP包

我正在使用SLIP协议接收IP数据包,并且想要像tcpdump那样打印它们。 我的程序能够解码SLIP协议,并根据需要创build一个包含IP数据包的string。 除了-r我找不到任何相关的tcpdump命令行标志。 文件格式logging在http://www.tcpdump.org/pcap/pcap.html ,但看起来有些复杂。 有一个漂亮的打印原始IP数据包的Linux工具吗?

没有分配IP地址的桥接口上的Tcpdump / Iptables

我已经build立了一个没有IP的桥接接口。 $ brctl addbr br0 $ brctl addif tap0 $ brctl addif tap1 $ ifconfig br0 up 如上所示,这个桥接器通过openvpn连接2个TAP接口。 我能ping和发送2 TAP接口之间的stream量没有任何问题,但是每当我尝试tcpdump桥接口我看不到任何stream量通过。 这是因为桥接接口没有分配IP吗? 有没有办法绕过它,所以你可以看到桥接口的stream量(并可能通过iptables或类似的东西),而不必分配一个IP到桥接口?

只有当tcpdump正在监听时,wget才有效

我在XENpipe理程序上运行了两台使用Ubuntu trusty(Linaro-Developer版本)的虚拟机,使用以下简单的桥接networking设置: 后端域(dom0): br0 Link encap:Ethernet HWaddr 02:4d:04:41:96:a9 inet addr:141.79.67.109 Bcast:141.79.71.255 Mask:255.255.248.0 inet6 addr: fe80::4d:4ff:fe41:96a9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4896629 errors:0 dropped:814 overruns:0 frame:0 TX packets:1134 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:356819584 (356.8 MB) TX bytes:277236 (277.2 KB) eth0 Link encap:Ethernet HWaddr 02:4d:04:41:96:a9 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 […]

tcpdump的默认捕获大小在类似的服务器上有所不同

在两个不同但相似的(发行版,版本)服务器上运行/usr/sbin/tcpdump -n dst ${some_ip} and dst port 80会给我不同的捕获大小(一个为65535个字节,另一个为262144个字节)。 什么可能导致tcpdump捕获大小的差异? 在结果数据输出中可能导致哪些不一致? 编辑: ldd $(which tcpdump)在两台服务器上具有相同的输出: linux-vdso.so.1 => (0xdeadbeef) libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0xdeadbeef) libpcap.so.0.8 => /usr/lib/x86_64-linux-gnu/libpcap.so.0.8 (0xdeadbeef) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0xdeadbeef) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0xdeadbeef) /lib64/ld-linux-x86-64.so.2 (0xdeadbeef) 嗯,但内核版本不同,必须与这个… capture size 65535: Ubuntu 14.04.4, Linux 3.13.0-85-generic capture size 262144: Ubuntu 14.04.5, Linux 3.13.0-116-generic

tcpdump没有收到iptablesredirect的stream量

下面的iptables规则用于redirect从本地主机(接口为lo,IP为127.0.0.1)从eth1进入端口3000的所有Internetstream量: iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j DNAT –to-destination 127.0.0.1:3000 然后tcpdump被设置为在lo接口上logging所有stream量: tcpdump -i lo -w output.dump 但是,在通过eth1发送了一些互联网stream量(端口80)之后,这个stream量不会被tcpdumplogging下来。 我不知道为什么这样。 有人可以摆脱一些光? 谢谢。

如何以编程方式使用tcpdump捕获文件parsingOpenFlow数据包

我正在使用OpenFlow数据包,并通过tcpdump分析networking。 目前,我使用WireShark GUI来parsing生成的捕获文件,它符合我的需要。 然而,我想知道WireShark是否有一个API,所以可以通过一个脚本而不是GUI来完成相同的操作(我本质上是要提取某些OpenFlow参数并自动执行检查我的系统的过程)

redirect输出和日志旋转

我需要一些脚本/命令/ cronjob帮助.. 我需要将tcpdump命令的输出redirect到日志文件,并且每天保留1个日志文件。 我知道我可以使用tcpdump日志语法,但我也使用awk -F来过滤输出。 我的命令看起来像这样,运行本身的作品美丽。 tcpdump -ieth0 -p "tcp[tcpflags] & (tcp-syn) !=0" | awk -F 'Flags' '{print $1}' > /var/log/tcpdump.log 我怎样才能使它每天旋转文件? 有没有办法与shell脚本(我的shell脚本知识是非常有限的)。