2016-12-29 DNS简介上 域名空间、域、迭代解析、递归解析、DNS服务器

2016-12-29 DNS简介上 域名空间、域、迭代解析、递归解析、DNS服务器

Domain name system

    域名系统(Domain Name System,DNS)是把名字映射到地址的目录系统。其将信息分布在世界上的很多台计算机中。需要映射的计算机可寻找到最近一台持有所需信息的计算机。

    DNS也分客户端和服务器,以调用文件传输向服务器传送文件为例子。文件传输客户端首先要调用本地DNS客户端,DNS客户端向DNS服务器查询服务器名对应的地址,随后文件客户端使用此地址与文件服务器端建立连接,传送数据。


名字空间

名字空间将每一个地址映射到一个唯一的名字,它可以按两种方式组织:平面的和层次的。

    在平面名字空间(flat name space)中,一个名字分配给一个地址。空间的名字是一个无结构的字符序列。名字之间可能有也可能没有公共部分;即使有公共部分,也没有实际含义。平面名字空间的缺点是必须集中控制才能避免二义性和重复,因而不能用于如因特网这样的大规模系统中。

    在层次名字空间(hierarchical name space)中,每一个名字由几个部分组成。每个部分由不同的层级,中央管理机构可以分配名字的一部分,这部分定义组织的性质和组织的名字。其他部分由组织自己管理,这个组织还可以以此类推进行分层管理。


域名空间

    为了获得层次名字空间,设计了域名空间(domain name space)。所有的名字有一个根在顶部的倒置数结构定义。该数最多有128级:0级(根结点)至127级。可表示X的0次方+X的1次方+X的2次方+........+X的127次方个节点。

    标签 树上的每一个节点有一个标签。标签是一个最多为63个字符的字符串。根结点的符号是空字符串(空串)。DNS要求每一个节点的子节点(从同一个节点分支出来的节点)有不同的标签,这样就确保了域名的唯一性。

    域名 (由底部向根部依次用“.”符号连接各个标签,构成一个域名)

        树上的每一个节点都有一个域名。一个完整的域名(domain name)是用点“.”分隔的标签序列。域名总是从节点向上读到根结点。最后一个标签是根结点的标签(空)。这表示一个完整的域名总是以一个空符号结束,也意味着最后一个字符是一个点(.),因为空字符串表示什么也没有。



    如上所诉:如果一个标签以一个空字符串结束(其实就是以一个“.”符号结束),则他就称为全称域名(fully qualified domian name,FDQN)。

    反之称为部分域名(partially qualified domain name,PQDN),部分域名起始于一个结点,但没有到达根结点。

当这个需要解析的名字属于和客户机相同的站点时可使用部分域名。这种情况下,解析程序能够提供省略的部分,称为后缀(suffix),以创建FQDN。


域(Domain)

    域是域命名空间的子树。域的名称是子树顶端节点的名称。注意域本身仍可能被分割成多个域。


名字空间的分布:

    把域名空间所包含的信息存储在一台计算机中显然是不合适的。


名字服务器的层次结构

    将信息分布在多台称为 DNS服务器(DNS server)的计算机中。

    与建立名字的层次结构一样,建立服务器的也是类似的层次结构。每一台服务器负责(授权的)域或者较小的域。


区域

    一台服务器也无法完全维护一个较大的域,我们讲一个区域(Zone)定义为整个树中的一个连续部分。如果服务器负责一个域,且这个域没有被划分成更小的子域时,“域”和“区域”是相同的。

DNS服务器有一个数据库,称为区域文件,他保存这个区域里所有节点的信息。

    如果服务器将他的域划分为多个子域,并将其部分授权委托给其他服务器,那么“域”和“区域”就不同了。在子域结点的信息会保存在较低层次的服务器中,原来的服务器则保存到这些较低层次服务器的某种参照。


DNS服务器

    根服务器(root server)的区域由整颗树组成。根服务器通常不保存关于域的任何信息,只是将其授权委托给其他服务器,并保存这些服务器的参照关系。

    目前世界上有多个根服务器,每一台都覆盖整个域名空间。这些服务器分布在世界各地。


    主服务器和辅助服务器

        主服务器(primary server)是指存储了授权区域有关文件的服务器。他负责创建、维护和更新区域文件,并将区域文件存储在本地磁盘中。

        辅助服务器(secondary server)负责从另一个服务器(主服务器或辅助服务器)传输一个区域的全部信息,并将文件存储在他的本地磁盘中。辅助服务器不创建或更改更新区域文件。如果需要则有主服务器完成,由主服务器发送更新的版本到辅助服务器中。


    主服务器和辅助服务器对他服务的区域都有服务能力,主要是为了建立数据的冗余备份,增加健壮性。

    注意,一台服务器可能是某个特定域区的主服务器,同时也是另一个区域的辅助服务器。所以,当提到一个服务器作为主服务器或者辅助服务器时,需要弄清楚所指的是哪个区域。



因特网中的DNS

    在因特网中,域名空间(树)被划分为三个部分:通用域、国家域和反向域(可以用在给定IP地址中找到主机名,已废止)。

        通用域(generic domain)

        国家域(country domain)部分使用双字母的国家缩写,第二级标号可以是机构,或者更具体一些,有各个国家自己制定。



    将名字映射为地址或者将地址映射为名字的过程,称为名字-地址解析(name-address resolution)。

    DNS是一个客户/服务器应用程序。需要服务时主机要调用一个称为解析程序(resolver)的DNS客户程序。


一次解析可能是递归的或者迭代的

    递归解析

    在迭代解析中,每个不知道映射的服务器将下一台服务器的IP地址发送回到请求查询的主机上,由请求查询的的主机继续查询。


       

高速缓存

    DNS服务器有一种称为高速缓存(cache)的机制。当一个服务器向另一个服务器请求映射并得到回应时,他将该回应发送给客户端之前会缓存此数据。当其他的用户请求统一映射时,会返回次数据,不过该服务器获奖这一响应标志为非授权的。

    授权服务器会将一个称为生存时间(TTL)的信息添加到映射上。缓存此数据的服务器会根据此数据检查缓存的有效性。高速缓存也会定期检查数据,清除过期缓存。



资源纪录

    与每个服务器相关的区域信息以资源纪录(resource record)集的形式实现。换言之,域名服务器存储了资源纪录的数据库。

    资源纪录由5部分组成

        域名、类型(定义了数值应该如何被解释)、类别、TTL、数值



DNS报文

查询报文(query)

响应报文(response)



nslookup

1:

nslookup www.baidu.com

Server: 10.1.12.80

Address: 10.1.12.80#53


Non-authoritative answer:

www.baidu.com canonical name = www.a.shifen.com.

Name: www.a.shifen.com

Address: 115.239.210.27

Name: www.a.shifen.com

Address: 115.239.211.112


2:

nslookup www.a.shifen.com

Server: 10.1.12.80

Address: 10.1.12.80#53


Non-authoritative answer:

Name: www.a.shifen.com

Address: 115.239.210.27

Name: www.a.shifen.com

Address: 115.239.211.112



使用http://115.239.210.27即可访问baidu网页


3:

nslookup www.sina.com

Server: 10.1.12.80

Address: 10.1.12.80#53


Non-authoritative answer:

www.sina.com canonical name = us.sina.com.cn.

us.sina.com.cn canonical name = news.sina.com.cn.

news.sina.com.cn canonical name = jupiter.sina.com.cn.

jupiter.sina.com.cn canonical name = auriga.sina.com.cn.

Name: auriga.sina.com.cn

Address: 61.172.201.194

Name: auriga.sina.com.cn

Address: 61.172.201.195

Name: auriga.sina.com.cn

Address: 61.172.201.237

Name: auriga.sina.com.cn

Address: 61.172.201.239


注意上面有写名字后面有一个 “.”,这个应该是所谓的规范名。


封装

    DNS可以只用UDP或者TCP协议。当相应的报文小于512字节时,就使用UDP否者使用TCP,如果解析程序预先知道响应报文超过512字节,则会使用TCP。若不知道大小,则使用UDP。但是,如果响应报文超过512字节,那么服务器会截断这一报文。此时解析程序会启动TCP连接,并重复该请求,从服务器中获取完整响应。



注册机构

    新的域名如何加入到DNS中呢?通过注册机构,注册机构首先确认询问的域名是唯一的。然后将它输入到DNS数据库中,这是需要收费的。为了能够组册,组织机构需要给出域名服务器的主机名和IP地址。

    今天的因特网已经不再允许使用手动方式更新数据库。DNS主文件必须能够动态更新。动态域名系统(Dynamic Domain Name System,DDNS)应运而生。




DNS安全

1:读取DNS服务器的响应,获取到的信息可能被利用。

2:截获DNS的响应,并加以改变,伪造响应将客户导向危险的站点。

3:用泛洪攻击淹没DNS服务器,最终使之瘫痪。



//————————---———————---—————------————————————--———————------—————————————------———————————————//

史上最严重DDoS攻击!今早大半个美国“断网”了

2016-10-22 10:09:07  /http://news.mydrivers.com/1/504/504214.htm

随着人们对互联网的依赖增强,很难想象没有网络该如何生活。今天早晨,大半个美国的用户就遭遇了一次集体“断网”事件,让很多人都陷入混乱当中。

据外媒报道,各大美国热门网站今天早些时候都出现了无法访问的情况,根据用户反馈,包括Twitter、Spotify、Netflix、Github、Airbnb、Visa、CNN、华尔街日报等上百家网站都无法访问、登录。

目前可断定,此次“断网”事件是由于美国最主要DNS服务商Dyn遭遇了大规模DDoS攻击所致。媒体将此次事件形容为“史上最严重DDoS攻击”,不仅规模惊人,而且对人们生活产生了严重影响。

由于Dyn主要职责就是将域名解析为IP地址,从而准确跳转到用户想要访问的网站。所以当其遭受攻击,就意味着来自用户的网页访问请求无法被正确接收解析,从而导致访问错误。

Dyn表示,虽然目前仍在追查攻击的来源,但可以肯定这是一次有组织有预谋的网络攻击行为,攻击行为来自超过一千万IP来源。此外,Dyn也表示攻击者利用了大量物联网设备实施了攻击。

此次大规模网络攻击甚至引起了美国国土安全部的注意,该部门发言人Todd Breasseal称,正在对可能发起攻击的“各种潜在原因进行调查”。

DDoS攻击,也叫拒绝式服务攻击,其攻击方式相当的简单粗暴,通过堆砌大量的垃圾数据,使得用户的正常登录被“堵塞”。


三种常见DNS攻击及应对办法

2015-03-03 10:15:03

  DNS服务器能够将IP地址翻译成域名,这就是为什么你可以在浏览器输入域名来访问我们的网站,而不需要记住IP地址。

  当DNS被攻击时,可能发生各种情况,不过,攻击者经常使用两种方法来利用被攻击的DNS服务器。首先,攻击者可以做的第一件事情是重定向所有入站流量到他们选择的服务器。这使他们能够发动更多的攻击,或者收集包含敏感信息的流量日志。

  攻击者可以做的第二件事情是捕捉所有入站电子邮件。更重要的是,第二种做法还允许攻击者发送电子邮件,利用受害者企业的域名以及其良好的声誉。让事情更糟的是,攻击者还可以选择同时做上述两种攻击行为。

  专注于流量管理和DNS的Dyn公司首席技术官Cory von Wallenstein在一篇博客文章中介绍了三种常见的DNS攻击类型以及应对方法。

  第一种DNS攻击类型被称为缓存中毒攻击,这种攻击发生在攻击者成功将恶意DNS数据注入到递归DNS服务器(由很多ISP运作)之后。从网络拓扑的角度来看,这行类型的DNS服务器是最接近用户的服务器,因此,对这些服务器的攻击将会直接影响到连接这些服务器的特定用户。

  我们有阻止这种攻击的有效办法,并且,DNSSEC等标准能够提供额外的保护。如果DNSSEC不可行,另一种解决方法就是限制需要保护的名称服务器上的递归。递归用来确定服务器是仅处理其保存在缓存中的数据,还是服务器会到互联网与其他服务器通信来找出最佳答案。

  第二种类型的DNS攻击需要攻击者掌控一个或多个授权DNS服务器。授权DNS托管是Dyn公司向Twitter提供的服务类型。不过,Dyn没有成为黑客集团叙利亚电子军队(SEA)的目标,所以其向Twitter提供的服务在周二的事件中没有受到影响。

  如果攻击者能够攻击授权DNS服务器,这种攻击的影响将是全球性的。虽然SEA最近的一次攻击中没有这样做,但此前出现过。

  在2009年,Twitter遭受了伊朗网络军队的攻击。该组织修改了DNS记录,并重定向流量到他们控制的服务器。该组织之所以能够修改DNS设置,是因为他们攻击了一个Twitter员工的电子邮件账户,然后使用该账户来授权DNS更改。

  抵御这些类型的攻击的方法通常包括:高强度密码,以及基于IP的ACL(可接受访问控制列表)。此外,还应该对员工进行彻底的培训,来防止社会工程学。

  第三种类型的DNS攻击也是很棘手的问题。这种攻击是攻击者攻击域本身的注册,然后使用这种访问来更改分配到它的DNS服务器。

这也正是SEA攻击的做法,在攻击Twitter和纽约时报时,他们获得了MelbourneIT的访问权,该注册机构负责这两个目标域名,然后,攻击者把授权DNS服务器改为他们自己的服务器。企业最好将授权服务器托管在企业内部,从而对其完全控制。


//————————---———————---—————------————————————--———————------—————————————------———————————————//


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值