问题补充: 百度服务器会崩溃吗
ping这个以前还有用,现在已经无效了,大型服务器早把这个做策略自主忽略了,就是防火墙这关都过不了[泪奔]只有DDOS这种简单暴力的玩意儿加上顶尖黑客和大算力的服务器或者计算平台一起才可能真正攻破百度。想当年(大概03年吧)国内有个小孩,为了攻破百度,踩点半年,读了几百万行程序找漏洞,才把这事儿搞定,然后人被招安,做安防了[泪奔]这么多年过去了,这些操作没点辅助根本做不到
先说结论, 不会怎么样.
你的意思应该是ICMP洪水攻击, 这种攻击是需要预先知道对方真实IP的网络DDOS攻击. 大规模发起IP的ping请求, 耗光对方IP服务器所在线路带宽. 这种只是攻击单个固定IP比较合适, 而百度显然不是.
因为百度是集群服务, 各地机房有n个IP, 即使你使用上述方法耗光了某个机房的带宽, 能怎样, 百度还有其他机房提供服务.
那就把百度所有对外服务IP都进行攻击, 耗掉所有带宽. 想得很好, 这里有个问题, 你能穷举百度的所有机房的所有IP吗? 实际上非常困难. 运营商的实际线路非常复杂, 不是你能简单探测到的.
再说DNS过程, 从baidu.com -> IP 这样进行穷举, 基本上是不可行的. 这层DNS解析的防护现在都非常成熟了, 解析服务器会自动发现异常流量, 然后将流量拒绝解析挡掉或者将峰值流量导向一个无效IP, 这样就保证了主干带宽不会被占满.
很高兴能回答这个问题,我个人结论是服务器不会崩的,因为在全国范围内Ping百度是没用的。服务器根本不需要响应。Ping只检测网络的状态。百度不是服务器,你Ping一下,你就可以拦截攻击,不,什么是防火墙。baidu.com是指向一个存有跳转页面的服务器的域名,跳转到www.baidu.com。而后访问www.baidu.com时,因为CDN借助CNAME将访问的地址代理到对应的CDN服务器,故DNS请求解析将得到www.a.shifen.com对应的多个IP地址,最终由14.215.177.39这台缓存服务器给我们提供了服务。www.a.shifen.com是一个CNAME名。
百度和淘宝的工作方式不同。淘宝双11每秒请求1亿次。为了保证数据的正确性,它会有一个锁机制,所以支付时服务器会瘫痪。百度不需要确保数据及时更新。你会发现,百度搜索同一个关键字在你的本地搜索和其他地方,结果是不一样的。这是因为这两个区域中的数据不同步。这种分布式服务器体系结构大大提高了服务器的安全性,同时可以分流流量,减轻服务器的压力。
全国人民平百度,因为我们的请求被分配到不同的服务器,不会对百度造成太大影响。
不会崩溃,因为大家ping的是他的各地cdn服务器而已,对于cdn来说你的ping是一根毛而已,即便你牛X把他其中一个CDN击垮了,那也只是那个节点下的用户无法访问。
过去廉价的“死亡之ping”对于如今的互联网大厂并没有什么用了。我国网民数有10亿左右,按照正常的逻辑也仅只有2亿左右的并发数,每ping一次也仅有百来字节9(通常ping包大小为32字节,加上IP标头则为84字节),这对于单节点超过10G带宽的服务器产生不了啥影响。
很多人已经注意到了全国各地ping同一个互联网大厂的网址返回都不是同一个IP地址,这是因为服务器集群、负载均衡、分布式存储和CDN加速技术已经相当成熟了,通俗一点来讲就是鸡蛋并不会放在同一个篮子里,就算一个篮子的蛋没有了,还有N个篮子。
服务器集群
服务器集群顾名思义就是两个或者多个服务器同时工作,这些服务器可以在同一个数据中心,也可以在不同地域的不同数据中心,集群中的每台服务器都称为一个节点,每台服务器都具有自己的特性,比如CPU、RAM、硬盘等等。
虽然服务器集群是一个群组,但它在网络中以一个主机名称显示,并且只有一个IP地址,具备分配到服务器集群里的那台或者那几台服务器会有相应的算法。这样就可以保障24小时为访客提供高质量的服务,如果集群中的某一台服务器发生故障,会自动切换到集群中的另一台服务器。
负载均衡
负载均衡其实很好理解,比如两个人干活,一个人出力多干得多,另一个人出力少干得少,于是负载均衡就会“均摊”工作量,让两台或者两台以上的服务器进行分流工作。
负载均衡可以避免集群中部分服务器压力过大,而另一些服务器比较空闲。通过负载均衡每一个服务器都可以获取到适合自己处理能力的负载。在处理一些高负载、高并发的服务时还可以实现弹性的分流,避免资源浪费。
分布式存储
过去数据存储采用集中的存储服务器来存放所有数据,存储服务器的性能成为了系统性能的瓶颈,可靠性和安全性也非常差。比如存储服务器模块硬盘坏了很有可能导致所有数据丢失。
分布式存储采用可扩展的系统结构,采用多台存储服务器来分担存储负荷,这些存储服务器可以在同一个数据中心,也可以在不同区域的数据中心。如此就可以利用位置服务器定位存储信息,提高系统的可靠性、可用性、安全性之外,还易于扩展。
CDN
CDN可以给用户分配最近的服务器,快速、可靠地将内容发送给用户。CDN总承载量可以比单一的骨干最大带宽还要大,如果将100Gbps处理能力的服务器放在只有10Gbps带宽的数据中心,仅能发挥10Gbps的承载量,但如果放到十个10Gbps的地点,整个系统的承载量就会达到10*10Gbps。
CDN除了可以实现更快的内容分发之外,还有一个优势就是异地备援,当某个服务器发生故障的时候,邻近的用户将会调用其他较近的服务器服务。
总结
到这时你还会认为全国一个ping一个互联网大厂会把它给整垮吗?并不会。早期的网络通过Ping来进行攻击很容易实现,ping也是非常廉价的攻击方式,所以誉为“死亡之ping”,当时大部分的电脑无法处理大于IPV4最大封包大小的Ping封包(65535字节),所以大ping包可以令电脑崩溃。过量的ping也会致使目的电脑泛洪使得正常的访问没有办法达到目的电脑。
但1997-1998年后几乎所有的系统都修正了这一问题,一次仅能发送32字节的ping封包。ping至此回归了它本来的用途,用来测试网路的连线能力是否正常,确认指定设备之间网路路径的可靠程度。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!
喜欢我的,请关注我,再次感谢!
这个问题首先看ping的是什么,ping的是最近的服务器节点,也就是离你最近的cdn节点,然后再看ping的本质是什么,就是发包向终端服务器,大家一起ping,终端节点的cdn服务器可能就会宕机,无法提供服务,这差不多有点类似DDoS攻击,但是这种攻击没法防御,因为都是真实用户去访问,不过百度可以做到cdn服务器不接受ping包,那么ping的意义就不大了。从你的问题上来看宏观上会搞死百度,但是只针对这个场景的话,百度虽然无法像防御DDoS攻击那样去防御但是可以服务器不接受ping来拒绝你的请求,来抵抗恶意访问带来的影响和压力。
百度的域名做了CDN,不同地区、不同运营商ping出的地址都不同
很多人会认为,如果非常多的人一起ping一个网站,会把这个网站ping死的。
这种用ping攻击一个网站导致网站崩溃的事情,在以前是经常发生的。但现在一般不会发生了,或者说稍微有点维护力量的网站不会被ping死的。
道理很简单。
第一,既然很多人都知道大量ping会导致一个网站宕机,那么做网站维护的人员也会把这个事当成一件发生概率很大的事,网站建好后首先要做的安全防护就是这个了。也就是说这是业界的一个常识了,百度作为行业内数一数二的网站,早都想到了,防护措施那是妥妥的了。
第二,像百度这样的大网站,每天成千上万的人同时访问,数据量是巨大的,简单的服务器完全应付不来。所以百度在各大城市都放了服务器,做了集群、备份、缓存、CDN、流量清洗等各种技术考虑和安全策略,既满足当地的快速访问需求,同时又分担了访问量,不至于拥塞或反应慢。同时,各大城市之间又互为备份,一个城市有问题的时候,其他城市在后台会自动接管这个城市的访问请求。所以,你会感觉百度好像永远在线。
第三,百度看起来是个搜索工具,但为了完成海量搜索功能,它需要巨大的后台计算能力,所以百度实际上是个技术型公司,并且还是个不一般的技术公司,那技术是相当牛的,各种网络技术、IT技术、安全技术都是最好的,要不然怎么能算大厂呢?各种最前沿的IT技术都是这些大厂最先应用和提出来的。谁让他们做了这些看起来简单无比但后台巨复杂的网站(应用)呢?这叫有应用才有需求,有需求才有动力,有动力就会卓越。所以要想把百度搞崩溃了,不是件容易的事,得是真正的技术大咖才行。