1. DNS介绍

1.1. DNS功能

DNS的功能是提供域名<-->IP的解析。类似ARP表,MAC,IP路由表,提供一种转换对应方式。

1.1.1. 正向解析

根据域名或主机名查找对应的IP地址

1.1.2. 反向解析

根据IP地址查找对应的域名或主机名

1.1.3. 缓存域名服务器

将从其他域名服务器查询的解析缓存,并提供DNS高速解析功能

1.1.4. 主域名服务器

特定DNS区域的官方服务器,具有唯一性。负责该区域内所有的域名解析记录

1.1.5. 从域名服务器

辅助域名服务器,维护的解析记录来源于主域名服务器

DNS服务器分为: -(1)master(主DNS服务器):拥有区域数据的文件,并对整个区域数据进行管理。 -(2)slave(从服务器或叫辅助服务器):拥有主DNS服力器的区域文件的副 本,辅助主DNS服务器对客户端进行解析,当主DNS服务器坏了后,可以完全接替主服务器的工作。 -(3)forward:将任何查询请求都转发给其他服务器。起到一个代理的作用。 -(4)cache:缓存服务器。 -(5)hint:根DNS internet服务器集。


title: DNS解析原理 keywords: dns,service last_updated: August 10, 2017 tags: [dns,service] summary: dns sidebar: note_sidebar permalink: note_dns_principle.html

1.2. folder: note

DNS的目的是提供域名到IP地址对应关系

1.3. 解析过程

1.3.1. 递归查询

即客户端向本地DNS服务器请求查询域名,本地DNS服务器收到查询任务后如自身无法回答则向其他服务器查询,直到查到结果后返回结果给客户端。期间DNS服务器可能要查询很多其他DNS服务器。

1.3.2. 迭代查询

即客户端向本地服务器请求查询域名,本地DNS服务器无法回答,则给客户端返回另一个能查询域名的服务器地址,客户端再向另一服务器查询,期间可能客户端需查询多个DNS服务器,最终查到结果。

www.baidu.com域名解析为例

[root@wenyuecs note]# ping www.baidu.com
PING www.a.shifen.com (115.239.210.27) 56(84) bytes of data.
64 bytes from 115.239.210.27 (115.239.210.27): icmp_seq=1 ttl=54 time=33.1 ms
64 bytes from 115.239.210.27 (115.239.210.27): icmp_seq=2 ttl=54 time=33.2 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 33.130/33.179/33.228/0.049 ms

1.4. 本地范围

查询本地DNS缓存

查找/etc/hosts

[root@wenyuecs note]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolve.conf

[root@wenyuecs note]# cat /etc/resolv.conf 
options timeout:1 attempts:1 rotate single-request-reopen
; generated by /usr/sbin/dhclient-script
search localdomain
nameserver 223.5.5.5
nameserver 223.6.6.6

/etc/nsswitch.conf

1.5. 直连DNS

1.6. DNS服务器之间

  1. 客户机先查询本地dns缓存
  2. 查找本地配置文件/etc/hosts
  3. 向本地dns服务器发送域名解析的请求,即/etc/rsolv. conf中指定的dns服务器
  4. 本地dns查询缓存,如果有直接返回给客户机;如果没有再查询本地dns区域数据库文件里是否有记录,如果有返回给客户机;如果没有查询到就向跟域“. ”查询
  5. 根域告诉本地dns服务器找的com服务器
  6. 本地dns服务器向. com的服务器查询,com服务器告诉本地dns baidu这个域的dns服务器ip
  7. 本地dns服务器找到baidu. com域的dns服务器,查询到www这台主机的ip
  8. 同时放到自己的缓存里
  9. 告诉客户机www. baidu. com的域名对应的ip
  10. 客户机将ip放到缓存里
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-01-02 09:45:03

results matching ""

    No results matching ""