ping个包大概linux,为什么ping对方ip会返回重复回应包呢?

ping同一个序号的ICMP包却收到了多个回应:

root@test:/var/www/db# ping mail.corp.qihoo.net

PING mail.corp.qihoo.net (220.181.158.203) 56(84) bytes of data.

64 bytes from 220.181.158.203: icmp_req=1 ttl=114 time=158 ms

64 bytes from 220.181.158.203: icmp_req=1 ttl=114 time=158 ms (DUP!)

64 bytes from 220.181.158.203: icmp_req=2 ttl=114 time=157 ms

64 bytes from 220.181.158.203: icmp_req=2 ttl=114 time=157 ms (DUP!)

64 bytes from 220.181.158.203: icmp_req=3 ttl=114 time=157 ms

64 bytes from 220.181.158.203: icmp_req=3 ttl=114 time=157 ms (DUP!)

^C

— mail.corp.qihoo.net ping statistics —

3 packets transmitted, 3 received, +3 duplicates, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 157.363/157.646/158.133/0.338 ms

man ping 这样说:

ping will report duplicate and damaged packets. Duplicate packets

should never occur, and seem to be caused by inappropriate link-level

retransmissions. Duplicates may occur in many situations and are

rarely (if ever) a good sign, although the presence of low levels of

duplicates may not always be cause for alarm.

首先重复的数据包确实是不应该出现的,然后如此稳定的重复现象也不像是“inappropriate link-level retransmissions”,多方搜索下来前辈们的意见是有这么几种可能:

1.网络中存在环路路由,static route

2.双机HA

3.两台虚拟机使用了相同MAC地址

4.HUB问题

5.ICMP REDIRECT

6./etc/tcp里面的配置手动改过,改错了,广播地址改成了你所要ping的ip地址

然后在win平台测试并不会报告重复回应信息。

另外有文章说ping 广播组播地址也会出现重复回应ping,实测确实会重复,ping包被转发,回应包源地址为各个主机ip。

PING 224.0.0.1 (224.0.0.1) 56(84) bytes of data.

64 bytes from 172.23.178.22: icmp_req=1 ttl=64 time=4.69 ms

64 bytes from 172.23.179.25: icmp_req=1 ttl=64 time=4.71 ms (DUP!)

64 bytes from 172.23.179.34: icmp_req=1 ttl=64 time=13.9 ms (DUP!)

64 bytes from 172.23.179.25: icmp_req=2 ttl=64 time=1.81 ms

64 bytes from 172.23.178.22: icmp_req=2 ttl=64 time=1.82 ms (DUP!)

64 bytes from 172.23.179.34: icmp_req=2 ttl=64 time=2.55 ms (DUP!)

^C

— 224.0.0.1 ping statistics —

2 packets transmitted, 2 received, +4 duplicates, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 1.818/4.918/13.901/4.194 ms

cz@vms:~$ ping -b 255.255.255.255

WARNING: pinging broadcast address

PING 255.255.255.255 (255.255.255.255) 56(84) bytes of data.

64 bytes from 172.23.179.25: icmp_req=1 ttl=64 time=1.92 ms

64 bytes from 172.23.178.22: icmp_req=1 ttl=64 time=1.92 ms (DUP!)

64 bytes from 172.23.179.34: icmp_req=1 ttl=64 time=2.67 ms (DUP!)

64 bytes from 172.23.179.34: icmp_req=2 ttl=64 time=1.93 ms

64 bytes from 172.23.179.25: icmp_req=2 ttl=64 time=1.94 ms (DUP!)

64 bytes from 172.23.178.22: icmp_req=2 ttl=64 time=2.72 ms (DUP!)

64 bytes from 172.23.179.25: icmp_req=3 ttl=64 time=1.95 ms

64 bytes from 172.23.179.34: icmp_req=3 ttl=64 time=2.70 ms (DUP!)

64 bytes from 172.23.178.22: icmp_req=3 ttl=64 time=2.71 ms (DUP!)

64 bytes from 172.23.179.34: icmp_req=4 ttl=64 time=1.91 ms

64 bytes from 172.23.179.25: icmp_req=4 ttl=64 time=1.92 ms (DUP!)

64 bytes from 172.23.178.22: icmp_req=4 ttl=64 time=2.67 ms (DUP!)

64 bytes from 172.23.179.34: icmp_req=5 ttl=64 time=1.82 ms

64 bytes from 172.23.179.25: icmp_req=5 ttl=64 time=1.83 ms (DUP!)

64 bytes from 172.23.178.22: icmp_req=5 ttl=64 time=2.56 ms (DUP!)

^C

— 255.255.255.255 ping statistics —

5 packets transmitted, 5 received, +10 duplicates, 0% packet loss, time 4009ms

rtt min/avg/max/mdev = 1.827/2.216/2.726/0.383 ms

有人通过此方法发动洪水Ping攻击:

伪装IP地址的洪水Ping攻击

最近不少人又来号召大家一起去Ping死什么什么网站,不过从技术上来说,无论什么拒绝服务攻击方式,都需要满足一个条件:用最少的资源换取被攻击者最大的消耗。像这样大家一起去Ping不仅是奇怪的:用最大的资源换取对方最小的伤害;也是可笑的:人民战争大概属于50多年前的行为了,在互联网时代,并不是人多就能如何如何的。

我们今天是来说Ping的,Ping是通过发送ICMP报文(类型8代码0)探寻网络主机是否存在的一个工具,很久以前,一部分操作系统(例如win95),不能很好处理过大的Ping包,导致出现了Ping to Death的攻击方式(用大Ping包搞垮对方或者塞满网络),随着操作系统的升级,网络带宽的升级、计算机硬件的升级,目前,大Ping包基本上没有很大的攻击效果(分布式攻击除外),如果一定要使用Ping包去攻击别的主机,除非是利用TCP/IP协议的其他特性或者网络拓扑结构的缺陷放大攻击的力度(所谓正反馈)

正常情况下,Ping的流程是这样的:

主机A发送ICMP 8,0报文给主机B

主机B回送ICMp 0,0报文给主机A

因为ICMP基于无连结,所以就给了我们可乘之机,假设现在主机A伪装成主机C发送ICMP 8,0报文,结果会怎么样呢?显然,主机B会以为是主机C发送的报文而去

回应主机C,结构如下:

伪装为主机C 错误的回复

主机A———————>主机B——————>主机C

这种情况下,由于主机A只需要不断发送Ping报文而不需要处理返回的EchoReply,所以攻击力度成倍的增加,同时实际上主机B和主机C都是被进攻的目标,而且不会留下自己的痕迹,是一种隐蔽的一石二鸟的攻击方法。

上面的方法用SOCK_RAW伪装IP就可以轻松实现,不过即使放大了两倍,对于比较强壮的操作系统和较大的带宽,也不见得有多大的效果,难道我们又来组织运动?不好吧,还是让敌人给我们放大好了,TCP/IP中有一个概念叫做广播,所谓广播的意思是说有一个地址,任何局域网内的主机都会接收发往这个地址的报文(就像电台广播一样),要是?难道?没错!如果我们往广播地址发送一个ICMP ECHO报文(就是Ping广播地址一下),结果会得到非常多的回应,以太网内每一个允许接收广播报文的主机都会回应一个ICMP_ECHOREPLY,如果你想试验,可以在unix的机器上Ping一下你局域网的广播地址,会看到很多回应的的dup包,就是重复的应答,windows系统上不会有这样的结果,因为微软的Ping程序不对多个回应进行解包,收到第一个包以后就丢弃后面的了,同样微软的系统默认也不回应广播地址的包,所以你最好在一个大量unix主机的局域网内测试。

说到这里,聪明的你肯定知道我想干什么了吧?嘿嘿嘿嘿,没错,当我们伪装成被攻击主机向一个广播地址发送Ping请求的时候,所有这个广播地址内的主机都会回应这个Ping请求,这样,相当于是N倍的攻击力度!(N=广播地址内回应Ping包的主机数量)

伪装为主机C 所有广播主机都会错误的回复

主机A———————>广播地址=========================>主机C

哎呀好神奇。

附原文代码fakeping.zip

不过我在linux的iptables没有发现大量icmp,不知是ping的icmp-reply不在统计之列啊还是怎么的,有时间可以好好玩一玩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值