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服务器之间
- 客户机先查询本地dns缓存
- 查找本地配置文件/etc/hosts
- 向本地dns服务器发送域名解析的请求,即/etc/rsolv. conf中指定的dns服务器
- 本地dns查询缓存,如果有直接返回给客户机;如果没有再查询本地dns区域数据库文件里是否有记录,如果有返回给客户机;如果没有查询到就向跟域“. ”查询
- 根域告诉本地dns服务器找的com服务器
- 本地dns服务器向. com的服务器查询,com服务器告诉本地dns baidu这个域的dns服务器ip
- 本地dns服务器找到baidu. com域的dns服务器,查询到www这台主机的ip
- 同时放到自己的缓存里
- 告诉客户机www. baidu. com的域名对应的ip
- 客户机将ip放到缓存里