DNS概括

DNS

通过域名(通常为三级:三级.二级.顶级)查找主机ip的过程。

  • 客户端 -> 发起域名解析 -> 层层查找… -> 根域名服务器(最权威的13个机构,1个主的,12个辅助)
  • 服务端 <- 域名对应IP <- 层层解析… <- 根域名服务器

原理

UDP报文递归查询。任何一级域名服务器均会对结果进行缓存,时间设置为ttl。ttl越大,网络开销越小,准确性越低。


过程

  1. 检查应用(如浏览器)缓存,查看是否存在已解析的ip地址。

    缓存保留的时间由ttl设置。

  2. 检查操作系统缓存,查看是否有已解析过的结果。

    操作系统会先检查hosts文件,即本地域名解析配置。域名劫持也由此而来:hosts文件被黑客修改过,指定到他期望的ip地址。

  3. 请求本地域名服务器(LDNS)来解析这个域名。

    这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。

  4. 由本地域名服务器(LDNS)请求根域名服务器(ROOT Server)解析,获取顶级域名服务器(TLD Server-Top Level Domain)。

    TLD Server是能够解析【.com】、【.cn】等顶级域名的服务器,分为两种:nTLD-国家顶级域名;gTLD-通用顶级域名。

  5. 由本地域名服务器(LDNS)请求顶级域名服务器(TLD Server)解析,获取命名服务器(Name Server),也叫权限域名服务器。

    Name Server就是网站注册的域名服务器,即服务商用于维护域名的服务器。

  6. (Name Server)根据映射关系表找到目标ip,返回给LDNS。LDNS缓存并返回给用户。
  7. 用户使用ttl值缓存到本地。

服务商和解析商

  • 服务商:提供域名买卖。通常情况下,服务商也有解析的能力,也可能是和他方dns解析商合作。
  • 解析商:可以理解为(Name Server)dns服务器,存储【域名/IP】映射关系,可能同步架设在很多地方。

1.当注册购买了域名时,仅代表拥有了使用权,但尚未设置解析,即不存在域名/IP映射关系,因此无法通过域名直接访问您的网站,或作为电子邮箱后缀进行邮件收发。

2.当设置了解析(即域名/IP)后,解析商就将解析的配置存储到指定的dns解析服务器里,解析服务器可能架设在很多地方,每个地方都会同步一份。例如:购买“xxx.xyz”域名后,在阿里云设置解析到自己的云服务器“xxx.xxx.xxx.xxx”,阿里会提示:”当前分配的DNS服务器是:dns9.hichina.com, dns10.hichina.com“,即该解析配置由这两个dns域名下的服务器负责解析,它们是权限域名服务器。

这两个dns域名服务器,通过nslookup可以查看到是一个服务器集群。


指定dns解析

分为两个角度:

  1. 服务端解析配置时,指定dns,将决定由谁(命名服务器)能够解析该域名,通常选择安全、稳定的dns解析商,阿里域名默认使用阿里系。
  2. 客户端,指定dns,将选择从客户端发起的dns解析线路,

测试:域名解析分析网站


延伸

  1. nslookup查看DNS信息
nslookup 域名 # 查看A记录
nslookup -q=cname 域名 # 查看cname记录
nslookup -q=ns 域名 # 查看dns服务器
nslookup -debug 域名 # 查询过程中会显示完整的响应包以及其中的交互包

示例:nslookup -q=ns -debug baidu.com

待补充

  • dns负载均衡:dns解析也是一个服务程序,可以实现负载均衡,即可以指定多个ip,通过负载均衡策略指定其中的某个ip。
  • dns劫持

你可能感兴趣的:(网络,dns,dns解析,nslookup)