在公共Web服务器上阻塞/丢弃入站ICMPstream量的目的是什么? 它被阻塞是常见的吗?
我不得不testing一个服务器是否可以从不同的地方访问(在位于不同州/国家的各种服务器上testing过)。 我依靠ping作为一种快速可靠的方法来确定一台服务器是否可以在线/networking访问。 在没有收到对方的回复之后,我尝试使用lynx来加载网站,并且工作。
现在放弃ICMP是相当常见的,因为这是一种用于拒绝服务目的的通用方法。 一个更高带宽的主机或多个主机反复ping单个Web服务器可以利用其所有带宽。
其他人可能会放弃在互联网上减less他们的足迹,因此可能被大规模扫描stream量忽视。
虽然这很常见,但我认为它提供的价值不大,并且在限制诊断潜力的同时将DoS和占用空间降至最低。
除了可疑的拒绝服务攻击(DoS)保护和降低configuration文件之外,还有一个常见但被忽视的原因是给定的IP可能不会对ping做出响应:它实际上并没有分配给一个接口。
将IP /协议/端口元组redirect(端口转发)到所需的各种服务,可以在较小的networking上提供更高的服务密度。
例如,假设你的ISP路由到你1.2.3.4/30。 你有三个select:
第三种方式越来越普遍。 大多数pipe理员(包括我自己)在设置时都不用去redirectICMP,因此它只能在防火墙上下载。
阻止ICMPtypes0(Echo应答)没有任何危害,但是如果retunpath中的任何链路的MTU小于TCP连接的Send Max Segment Size,则阻止所有ICMPstream量会中断对客户端的响应。 发生这种情况是因为Web服务器不能再接收ICMPtypes3代码4数据包(Destination Unreachable; Fragmentation Needed和DF set)。
在实践中,这不是什么大问题,因为任何需要隧道传输的人也必须build立一个机制来处理大量的Web服务器,这些Web服务器的TCP堆栈由于configuration不当的防火墙而受到阻碍。
帮助拒绝服务攻击。 没有真正的理由需要这个网站打开公众的ping。
另外它不给网站的统计资料; 一个主机或IP可以很容易地回答后端服务器的负载平衡服务器场(ping一个mysite.com不会告诉你所有的服务器是否正常工作在名称后面)。
可能只是公司的政策,以减less不必要的stream量,或者只允许将端口80和SSLstream量redirect到其他服务器内部。
我想另外一个问题就是,为什么要让外部系统ping你的服务器,如果他们真的没有必要呢?