DNS域名解析原理

DNS用于管理和解析域名与IP地址,包括正向和反向解析,以及主机别名、邮件服务器别名和负载均衡。DNS服务器分为根服务器、顶级服务器、权威服务器和本地DNS。访问原理涉及查询和缓存机制。DNS面临DDoS攻击和缓存中毒等安全问题,其中DDoS攻击可能针对根DNS和TLD,而缓存中毒通过虚假回复污染DNS缓存。
摘要由CSDN通过智能技术生成

1.DNS提供服务

        DNS(domain name system) 主要用于管理和解析域名与IP地址对应关系的技术,包括将域名解析为IP地址(正向解析)及将IP地址解析为域名(反向解析)。
此外,提供其他服务:
1.主机别名,将别名翻译成规范主机名。如:enterprise.com和www.enterprise.com的规范主机名类似relay.west-coast.enterprise.com。
2.邮件服务器别名,将邮件服务器别名翻译成规范主机名。如:邮件地址bob@yahoo.mail,但yahoo邮件服务器的规范主机名类似relay1.west-coast.yahoo.com。
3.负载均衡,一个域名包括多个IP地址的负载。

2.DNS工作原理

2.1 DNS服务器

2.1.1 按查询分类

        DNS用分布式分层数据库记录域名与IP地址的对应关系。包括根DNS服务器、顶级DNS服务器(TLD)、权威DNS服务器。
DNS存储结构
1.根DNS(Root DNS server)。世界上共有13台根DNS服务器,实际包括504台服务器共用13个IP地址进行负载均衡,提供了顶级DNS服务器的IP地址。

2.顶级DNS(Top-level domain server)。顶级DNS服务器(TLD)提供了本地域名服务器的IP地址,对于每个顶级域如.com(商业组织)、.org(非营利性组织)、.gov(政府部门)、.net(网络服务商)、.edu(教育机构)、.pub(公共大众)及国家顶级域如.cn、.uk、.fr、.ca等均有TLD服务器(或服务器群)。

3.权威DNS(Authoritative DNS server)。每个在Internet上拥有可公开访问的主机的组织或者机构都拥有一个DNS映射主机IP地址的记录,组织或者机构的权威DNS服务器(或服务器集群)包含了这些记录。

4.本地DNS( local DNS server/recursive DNS server)。不属于DNS分布式分层数据结构,互联网服务提供商(Internet Service Provider,ISP)都有一个本地DNS服务器(递归DNS服务器),当主机连接到ISP时,ISP通常通过DHCP向主机提供多个本地DNS服务器的IP地址。

2.1.2 按功能分类

1.主服务器。在特定区域内具有唯一性,负责维护该区域内域名与IP地址之间的对应关系。
2.从服务器。从主服务器获得域名与IP地址的对应关系并进行维护,作为主服务器的HA。
3.缓存服务器。通过向其他域名解析服务器查询获得域名与IP地址对应关系,并将查询结果缓存到服务器本地,提高重复查询时的效率。
        主服务器用户管理域名与IP地址对应的关系的真正服务器,从服务器分散部署在各个区域,以便用户就近查询,减轻主服务器压力,缓存服务器一般部署在组织或机构的内网网关,加速用户的域名查询请求。

2.1.3 nslookup

NSLOOKUP
nslookup可以查看本机的DNS服务器IP地址(114.114.114.114),目标域名www.cisco.com的IP地址(IPv6,IPv4),非权威应答表示从本地DNS的缓存获取的结果。

2.2 访问原理

DNS访问机制以客户端访问pypi.org为例
0:首先检查主机本地缓存(ipconfig/displaydns),再查本地HOSTS文件是否有对应域名-IP对应关系。
Q1:客户端询问本地DNS,pypi.org对应的IP地址是?
Q2:本地DNS无缓存,询问根DNS pypi.org对应的IP地址是?
A1:根DNS返回.org对应的TLD。
Q3:本地DNS问TLD pypi.org对应的IP地址是?‘
A2:TLD返回pypi.org对应的权威DNS。
Q4:本地DNS问权威DNS pypi.org对应的IP地址是?
A3:权威DNS返回IP地址151.101.0.223。
A4:本地DNS返回客户端IP地址151.101.0.223。

2.2.1 DNS缓存

        用以提高延迟性能,减少Internet上传播的DNS信息数量。在查询链中,当DNS服务器收到DNS回复(主机名-IP地址映射关系),即可将其缓存到本地内存中,以待下次有相同请求时可以高效地获得。

2.2.2 DNS信息

(Name,Value,Type,TTL)

标识说明示例
TTL信息缓存的时间
Type=AName=规范主机名,Value=IP地址relay1.bar.foo.com, 145.37.93.126, A
Type=NSName=主机别名,Value=权威DNSfoo.com, dns.foo.com,NS
TType=CNAMEName=主机别名,Value=规范主机名名foo.com, relay1.bar.foo.com,CNAME
Type=MXName=主机别名,Value=规范邮件服务名foo.com,mail.bar.foo.com,MX

nslookup查询A记录、NS记录、CNAME记录及MX记录
A记录
A记录
NS记录
NS记录
CNAME记录
CNAMEMX记录
MX记录

3.DNS安全漏洞

3.1 DDos攻击

3.1.1 DoS vs. DDoS

拒绝服务攻击(Denial-of-Service attack,DoS)使合法用户无法使用网络、主机或其他基础设施。包括:
1.漏洞攻击(Vulnerability attack)。利用软件漏洞使目标主机瘫痪,无法处理网络请求。
2.带宽消耗(Bandwidth flooding)。向目标服务器发送大量数据包,导致网络拥堵,使得正常用户请求无法到达。
3.连接耗尽(Connection flooding)。与目标服务器建立大量TCP连接,将其端口资源消耗殆尽,使得正常用户无法与其建立TCP连接。

        若使用一台主机以第二种方式实施攻击,一是想用一台主机去将服务器的资源耗尽非常困难,二是单一源头非常容易被目标服务器的安全检测发现,因此出现了分布式拒绝服务攻击(Distributed Denial-of-Service attack,DDOS),通过一台主机利用僵尸网络模拟多个源头,耗尽目标服务器的资源。

3.1.2 DDos攻击DNS

DDos攻击根DNS。攻击者向13个根DNS发送大量数据包,导致合法的DNS查询无法得到应答。但是根DNS配置通常为阻止指向根DNS的ICMP ping的消息,此外,本地DNS中通常缓存了TLD的IP地址,使得查询过程绕过了根DNS,此类攻击对用户的影响较小。

DDos攻击TLD。相对与根DNS,对TLD的查询难以绕过。通过再本地DNS缓存可部分缓解。

3.2 DNS缓存中毒攻击

攻击者向DNS服务器发送虚假回复,诱使DNS服务器在缓存中记录下错误信息。但由于需要拦截数据包,此类攻击较难实施。

参考文献(强推)
Kurose J F, Ross K W. Computer Networking: A Top-Down Approach. Edition[J]. Addision Wesley, 2007.

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值