域名服务作为互联网的基础设施,它的重要性不言而喻。目前全球的十三个根域名服务器和成千上万的授权域名服务器承担着超过万亿次的DNS查询,默默为全世界的网民做域名解析服务。

这样重要的基础设施,必然是全世界黑客的目标。

2002年10月21日,全球的十三台根域名服务遭受了持续将近一个小时的攻击,这些攻击形式多样,主要集中为:ICMP攻击、TCP SYN攻击、fragmented TCP攻击和UDP攻击。这次攻击导致了一些跟域名服务器瘫痪。

之后全世界的科学家们痛则思痛,对当时的根域名服务做了大量的防护工作。

2007年2月6日,黑客们又对根域名服务器发起了几次疯狂的攻击,此时的ROOT DNS SERVERS已经很健壮了,对正常服务没有造成什么影响。

根域名服务器采取了一些什么样的措施,使得DDoS攻击不会造成根域名服务器的全线瘫痪呢?

原因一:积极的反应

今天在公司内网看到公司的清洗软件前段时间抗住了对一个网页高达6Gbps(每秒6Gbit)的攻击,最后攻击者看到没有效果,只能灰溜溜夹尾巴收工,而我们的这个页面呢?用户访问感觉不到任何异常(顺便赞一下我们优秀的工程师同学们)。

俗话说:“道高一尺,魔高一丈”,如果黑客真的优秀,就不会做黑客了。优秀的大型网站不缺少优秀的工程师,所以也不缺少优秀的防攻击预案。当攻击来的时候,检测软件会检测到网络异常,并采取相应的清洗策略,把异常的攻击流量阻挡在正常服务器之外。这样普通的用户可能只会感觉到一小段时间的访问缓慢,当清洗开始后,就跟正常访问无异了。

  清洗的办法,常用有:1)通过某种统计标准发现异常流量,限制某个IP的查询次数,或者直接拒绝为该IP服务;2)攻击流量会有一定的规律,比如包大小是特定的(比如768字节),则将该大小的包blocked(当然要确保该包大小跟正常请求的包大小不一样才可以用这种策略)。

原因二:十三台根域名服务器的多样性

     十三台根域名服务器都可以解析根域名(.com, .net等),而且这些根域名服务器由不同的组织管理。它们唯一相同的是解析根域名的功能,其它的,比如说硬件环境;使用的域名服务器软件;安全策略等等都不一样,因为攻击都是有针对性的攻击,所以这样又无形中增加了攻击者的攻击难度。

原因三:Anycast 

Anycast可以使一组提供DNS解析服务的主机通过一个对外的IP地址标识,这些主机可以位于不同的地址。这样当对某一个域名服务器的流量增加的时候,通过Anycast我们可以将攻击流量分发到各主机上。现在的根域名服务器都采用了Anycast技术,比如f-root,它后面就有四五十台主机在服务。

原因四:fat pipes

根域名服务器都位于全球的骨干网上,而不是在边缘网络中(你们家的宽带位于边缘网络中,你们小区的用户都在双十一购物狂欢节的时候一起抢东西,就会觉得巨慢无比:-) ),所以想通过打大流量堵塞根域名服务器的网络的黑客,你还是早点洗洗睡吧。

原因五:gTLD(generic Top-Level DNS Server) 域名服务器 和 缓存

根域名服务器只服务根域名,根域名服务器下面还有gTLD服务器,比如为所有.com后缀做域名解析的服务器。而且Local DNS会有缓存,在TTL期内不会对相同域名做重复请求。所以用发起DNS请求的方式攻击根域名服务器的话,基本上是不可能的,因为层层的缓存足以使到达根域名服务器的流量微乎其微。

参考资料:

1,http://en.wikipedia.org/wiki/Distributed_denial_of_service_attacks_on_root_nameservers

2,http://en.wikipedia.org/wiki/Anycast

根域名服务器(root DNS Servers)会被DDoS打垮么?的更多相关文章

  1. 根域名服务器 根服务器一般指根域名服务器 (DNS)

    Why There Are Only 13 DNS Root Name Servers -------------------------------------------------------- ...

  2. rest-assured的根路径(root path)和URL编码(URL Encoding)

    一.根路径(Root path) 为了避免在body方法中使用重复的路径来断言,我们可以指定一个根路径(root path),比如: 我们以前的写法是: when(). get("/some ...

  3. 根运动 (Root Motion) – 工作原理

    http://blog.csdn.net/myarrow/article/details/45505085 1. 基本概念 在Unity3D动画中,模型的位置.角度经常会发生变化,我们需要决定是否将模 ...

  4. Best free and public DNS servers of 2019

    1. OpenDNSPrimary, secondary DNS servers: 208.67.222.222 and 208.67.220.220 2. CloudflarePrimary, se ...

  5. 使用多个DNS供应商以缓解DDoS攻击

        随着不安全物联网(IoT)设备的激增,针对域名系统(DNS)供应商的分布式拒绝服务(DDoS)攻击在数量和规模上正在不断增加.这些攻击随之影响依赖于这些供应商进行域名解析的网站.虽然DNS供应 ...

  6. Vue父子组件传值之——访问根组件$root、$parent、$children和$refs

    Vue组件传值除了prop和$emit,我们还可以直接获取组件对象: 根组件: $root // 单一对象 表示当前组件树的根 Vue 实例,即new Vue({...根组件内容}).如果当前实例没有 ...

  7. 《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击

    在上个系列<你的DNS服务真的安全么?>里我们介绍了DNS服务器常见的攻击场景,看完后,你是否对ddos攻击忧心重重?本节我们来告诉你,怎么破局!! 首先回顾一下DDoS攻击的原理.DDo ...

  8. 【Linux】Could not resolve: www.test.com (Could not contact DNS servers)

    在请求微信小程序服务时候报错了 从这个报错,可以很明显的发现是域名解析不了 1 故障排查:因为代码里调用的是curl,所以测试一下curl是否能够正常解析dns 果然不行, 2 解决办法: vi /e ...

  9. 如何证明一个数的数根(digital root)就是它对9的余数?

    数根就是不断地求这个数的各位数之和,直到求到个位数为止.所以数根一定和该数模9同余,但是数根又是大于零小于10的,所以数根模9的余数就是它本身,也就是说该数模9之后余数就是数根. 证明: 假设有一个n ...

随机推荐

  1. linux学习第八天 (Linux就该这么学)

    今天学了,mount 挂载,umount撤销挂载,.fdisk 命令 管理硬盘 交换分区swap,硬盘配额 xfs_quota命令 今天工作,手机看了,看的不全,回头看录播了.

  2. [Machine Learning] some concept about the CV

    Cross-validation VS SSE CV is not designed to improve the fit on the training data, but it won't nec ...

  3. C# WebService服务器搭建、发布、上线、调试

    C#  WebService服务器搭建.发布.上线.调试 1. WebService服务器搭建 开发环境选择VS2017版本 步骤1:打开VS,文件->新建 ->项目->ASP.NE ...

  4. 简单了解下java中的堆、栈和方法区。

    堆.栈.方法区 1,首先了解下java中的数据类型. ①java中的八大基本数据类型:boolean, char , byte, short, int, long , float , double. ...

  5. MySQL之二 yum安装及初识

      安装   yum install mysql-server chkconfig -list mysqld 查看mysqld服务是否为开机启动 chkconfig mysqld on 设为开机启动 ...

  6. 3.装配Bean 基于XML

    一.实例化方式 3种bean实例化方式:默认构造.静态工厂.实例工厂 1.默认构造 <bean id="" class=""> 必须提供默认构造 2 ...

  7. java 项目的路径详情

    title: 项目下的路径问题tags:grammar_cjkRuby: true--- 在javaee的项目中,存取文件,解析xml和properties文件,以及项目中的文件,都需要获取路径,常用 ...

  8. 【洛谷4770】 [NOI2018]你的名字(SAM,线段树合并)

    传送门 洛谷 Solution 做过的比较玄学的后缀自动机. 果然就像\(Tham\)所讲,后缀自动机这种东西考场考了不可能做的出来的... 考虑如果\(l=1,r=|S|\)的怎么做? 直接建后缀自 ...

  9. Android Studio在项目中添加assets资源目录

    第一步: 切换到"Project"视图,找到app --> src --> main目录 第二步: 右键点击main目录,New --> Directory -- ...

  10. 我来谈谈PHP和JAVA在web开发上的的区别

    这里的标题写的是谈谈PHP和JAVA的区别,其实是委婉的说法,其实别人是想听PHP好还是JAVA好!!! 从而从中找到存在感!!! 因为由于我是从多年的php开发转到java开发的.所以最,不时的有好 ...