【Linux网络基础】 DNS:介绍、作用、解析原理

摘要:
DNS协议运行在UDP协议之上,使用端口号53。如果LDNS服务器中有域名www.baidu.com所对应的IP地址,则返回给客户端的浏览器,如果没有,则继续请求其他DNS服务器。这个DNS服务器就是企业购买域名时用于管理解析的服务器。baidu.com域名DNS服务器会把www.baidu.com域名所对应的IP地址给解析出来,然后发送给LDNS。它的顶点也是根(.)全球总共有13台根DNS服务器。
1. DNS是什么?

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去+·记住能够被机器直接读取的IP数串。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

DNS协议运行在UDP协议之上,使用端口号53。

访问网站的实质就是解析其域名得到IP地址,再转向其网站。

就是将浏览器中的www.baidu.com通过DNS解析得到IP地址:183.232.231.172

2. DNS的作用

A记录的解析过程:
浏览器-->www.etiantian.org--> 网站服务器的ip地址 --> ip地址对应的网站服务器

3. DNS的解析原理
【Linux网络基础】 DNS:介绍、作用、解析原理第1张

原理步骤:

  1. 系统首先会查找本地的DNS缓存hosts文件信息,确认其中是否有与 域名www.baidu.com所对应的IP地址。

如果有,就直接访问这个IP地址所对应的www.baidu.com域名服务器.

#macbook的hosts文件信息
192:etc zoe$ cat /etc/hosts
###Host Database#
#localhost is used to configure the loopback interface#when the system is booting.  Do not change this entry.##
127.0.0.1localhost
255.255.255.255broadcasthost
::1localhost
139.224.179.40dcba
10.86.212.19pi01
10.86.212.56pi02

#虚拟机上linux的hosts信息
[root@oldboy ~]#cat /etc/hosts
127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  1. 如果没有找到,那么,系统将会把浏览器的解析请求发送给本地主机所指定的DNS服务器,称为LDNS
    如果LDNS服务器中有域名www.baidu.com所对应的IP地址,则返回给客户端的浏览器,如果没有,则继续请求其他DNS服务器。
  1. LDNS服务器会从DNS系统的根(.)开始请求对域名www.baidu.com的解析。根DNS服务器全球只有13台,根域名服务器是没有域名www.baidu.com解析记录的。但是它会有域名www.baidu.com所对应的顶级域 .com的解析记录,因此直接把顶级域 .com所对应的DNS地址返回给LDNS服务器。
  1. LDNS服务器获取到顶级域.com对应的DNS服务器地址后,就会去.com服务器请求对www.baidu.com域名的解析。在顶级域名服务器也不会有www.baidu.com的解析记录。但是它具有www.baidu.com的父级域名的解析记录,即baidu.com。 因此顶级域名 .com服务器又会把 baidu.com 所对应的DNS服务器的IP地址返回给LDNS。
  1. LDNS服务器收到baidu.com 所对应的IP地址后,就会去baidu.com域名服务器请求对www.baidu.com的域名解析。Baidu.com 域名对应的DNS服务器是该域名的授权DNS服务器。这个DNS服务器就是企业购买域名时用于管理解析的服务器。
  1. baidu.com 域名DNS服务器会把www.baidu.com域名所对应的IP地址给解析出来,然后发送给LDNS。
  1. LDNS把解析出来的结果,www.baidu.com所对应的IP地址发送给客户端的浏览器。并且LDNS也会将其域名和对应的地址缓存到cache中。
  1. 客户端浏览器收到后,也会将其域名以及对应的IP地址缓存到DNS缓存和hosts文件中。

知识梳理:

DNS数据库的结构如下图所示,就像一棵倒挂着的树。

它的顶点也是根(.)

全球总共有 13台 根DNS服务器。

顶级域名 org, com, net, me, cc,

一级域名:baidu, sina, google, alibaba, taobao

【Linux网络基础】 DNS:介绍、作用、解析原理第2张

DNS域名解析命令:

  • dig
  • nslookup
  • host
  • ping

dig命令解析dns

192:etc zoe$ dig @8.8.8.8 www.baidu.com +trace

; <<>> DiG 9.10.6 <<>> @8.8.8.8 www.baidu.com +trace
; (1server found)
;; global options: +cmd
.            211565    IN    NS    a.root-servers.net.
.            211565    IN    NS    b.root-servers.net.
.            211565    IN    NS    c.root-servers.net.
.            211565    IN    NS    d.root-servers.net.
.            211565    IN    NS    e.root-servers.net.
.            211565    IN    NS    f.root-servers.net.
.            211565    IN    NS    g.root-servers.net.
.            211565    IN    NS    h.root-servers.net.
.            211565    IN    NS    i.root-servers.net.
.            211565    IN    NS    j.root-servers.net.
.            211565    IN    NS    k.root-servers.net.
.            211565    IN    NS    l.root-servers.net.
.            211565    IN    NS    m.root-servers.net.
.            211565    IN    RRSIG    NS 8 0 518400 20191005050000 20190922040000 59944 . kFUBbJE9raFU30U6hkdXdjkSmMeokgUl7GMZokb1cX7XAIXMuJSlqtxP 1zouEX6o/49O4pwIJL8DlCOpAJ+Fk84xbY+0i32BAlkTPBd6KwqU7Fra UaKe1a6ylMFg6Ov4kaTpL/Y4njrobc3N+FL0pBZX6/hH5ltNVyutpiDt 3ZXWjCqHy8tJcd/MV4zIbvlLZ52cLCufzIxAVQrbryg4tpkkUrb+BiR8 VYuBG/y+RToCZRgmf3vTX06G3RKADwcOBiBj0jt/RQMCZjC4BGdTD/H9 bwyaKEXRjCi53AspEDfI7hF+uPHB+Fd+lRa9rjGi5jyf+e56dKg6IKsp 1VqSSQ==;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 200 ms
com.            172800    IN    NS    l.gtld-servers.net.
com.            172800    IN    NS    b.gtld-servers.net.
com.            172800    IN    NS    c.gtld-servers.net.
com.            172800    IN    NS    d.gtld-servers.net.
com.            172800    IN    NS    e.gtld-servers.net.
com.            172800    IN    NS    f.gtld-servers.net.
com.            172800    IN    NS    g.gtld-servers.net.
com.            172800    IN    NS    a.gtld-servers.net.
com.            172800    IN    NS    h.gtld-servers.net.
com.            172800    IN    NS    i.gtld-servers.net.
com.            172800    IN    NS    j.gtld-servers.net.
com.            172800    IN    NS    k.gtld-servers.net.
com.            172800    IN    NS    m.gtld-servers.net.
com.            86400    IN    DS    30909 8 2E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.            86400    IN    RRSIG    DS 8 1 86400 20191006050000 20190923040000 59944 . Pe9CAXBj4SVoH+viy4eJMGSCOQZPWyPH6sOoNRE1O7ScsqdNPqaLBLYt DRXEAmwC+wKiqiLbwTcIzQbraifFDOeftMXeA4Zx23AXuuU2w84PWe1h 0TqgQwGyZnEIhbEj9OryhTvc/LcC1Govyk6cgDhJhxVNy3A2fhDU5eOp KcbxEp5VeLMtilQMdrjPSMQAy8RNDgoHvd5YBmpjUlGquvpASHEItZlZ hT6dWQYSqroI4ruyt6xCvrcKCma2nyR78FcZZLdg2jTJFaBsOaAsnI0V nfrWXsD09S4EvTHq+SIEIHyvJgC2+HKScUUlJgXTDAdd0zLxlQqW4fcn z5xhyQ==;; Received 1173 bytes from 192.5.5.241#53(f.root-servers.net) in 41 ms
baidu.com.        172800    INNS    ns2.baidu.com.
baidu.com.        172800    INNS    ns3.baidu.com.
baidu.com.        172800    INNS    ns4.baidu.com.
baidu.com.        172800    INNS    ns1.baidu.com.
baidu.com.        172800    INNS    ns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 -CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20190928044441 20190921033441 17708 com. G131mLtsBTVuH1wpOFbRs0/voaY+V7rxVJHc9XWhCelqZkbFiB6tVxKw oqpWdiXL+p4V40G3Koo8Y7y/Qd2M+hV4edC0nal1RrNt97hkRLQAcTJ/ wHZcMl84JbDtZT44UY1iHWv4GUxlxyaQiew/YceADjSzNtqG8mU1zNhC P1g=HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN NSEC3 1 1 0 -HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6  NS DS RRSIG
HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN RRSIG NSEC3 8 2 86400 20190930045238 20190923034238 17708 com. k5LZWJ8Oa5v6NqVOZ9PUeDx0vdwV6gFSH0EZp9rFHr9GeAYPOnr0ucQX XogUAJweh+CvXYMqFa3s3ZQUsqbRv2O5XTjKuZDrOzBSPooK3csZ1tJy q5HdJczJeMVTdHsbaVcO2Kt1Iwl+5Obl8UCt60ZfyTQoegAI+dtQdPNa ADA=;; Received 697 bytes from 192.41.162.30#53(l.gtld-servers.net) in 266 ms
www.baidu.com.        1200    INCNAME    www.a.shifen.com.
a.shifen.com.        1200    INNS    ns3.a.shifen.com.
a.shifen.com.        1200    INNS    ns4.a.shifen.com.
a.shifen.com.        1200    INNS    ns5.a.shifen.com.
a.shifen.com.        1200    INNS    ns2.a.shifen.com.
a.shifen.com.        1200    INNS    ns1.a.shifen.com.
;; Received 239 bytes from 14.215.178.80#53(ns4.baidu.com) in 42 ms

192:etc zoe$ 
192:etc zoe$ dig @8.8.8.8 www.baidu.com +trace

; <<>> DiG 9.10.6 <<>> @8.8.8.8 www.baidu.com +trace
; (1server found)
;; global options: +cmd
.            197496    IN    NS    a.root-servers.net.
.            197496    IN    NS    b.root-servers.net.
.            197496    IN    NS    c.root-servers.net.
.            197496    IN    NS    d.root-servers.net.
.            197496    IN    NS    e.root-servers.net.
.            197496    IN    NS    f.root-servers.net.
.            197496    IN    NS    g.root-servers.net.
.            197496    IN    NS    h.root-servers.net.
.            197496    IN    NS    i.root-servers.net.
.            197496    IN    NS    j.root-servers.net.
.            197496    IN    NS    k.root-servers.net.
.            197496    IN    NS    l.root-servers.net.
.            197496    IN    NS    m.root-servers.net.
.            197496    IN    RRSIG    NS 8 0 518400 20191005050000 20190922040000 59944 . kFUBbJE9raFU30U6hkdXdjkSmMeokgUl7GMZokb1cX7XAIXMuJSlqtxP 1zouEX6o/49O4pwIJL8DlCOpAJ+Fk84xbY+0i32BAlkTPBd6KwqU7Fra UaKe1a6ylMFg6Ov4kaTpL/Y4njrobc3N+FL0pBZX6/hH5ltNVyutpiDt 3ZXWjCqHy8tJcd/MV4zIbvlLZ52cLCufzIxAVQrbryg4tpkkUrb+BiR8 VYuBG/y+RToCZRgmf3vTX06G3RKADwcOBiBj0jt/RQMCZjC4BGdTD/H9 bwyaKEXRjCi53AspEDfI7hF+uPHB+Fd+lRa9rjGi5jyf+e56dKg6IKsp 1VqSSQ==;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 265 ms
com.            172800    IN    NS    l.gtld-servers.net.
com.            172800    IN    NS    b.gtld-servers.net.
com.            172800    IN    NS    c.gtld-servers.net.
com.            172800    IN    NS    d.gtld-servers.net.
com.            172800    IN    NS    e.gtld-servers.net.
com.            172800    IN    NS    f.gtld-servers.net.
com.            172800    IN    NS    g.gtld-servers.net.
com.            172800    IN    NS    a.gtld-servers.net.
com.            172800    IN    NS    h.gtld-servers.net.
com.            172800    IN    NS    i.gtld-servers.net.
com.            172800    IN    NS    j.gtld-servers.net.
com.            172800    IN    NS    k.gtld-servers.net.
com.            172800    IN    NS    m.gtld-servers.net.
com.            86400    IN    DS    30909 8 2E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.            86400    IN    RRSIG    DS 8 1 86400 20191006050000 20190923040000 59944 . Pe9CAXBj4SVoH+viy4eJMGSCOQZPWyPH6sOoNRE1O7ScsqdNPqaLBLYt DRXEAmwC+wKiqiLbwTcIzQbraifFDOeftMXeA4Zx23AXuuU2w84PWe1h 0TqgQwGyZnEIhbEj9OryhTvc/LcC1Govyk6cgDhJhxVNy3A2fhDU5eOp KcbxEp5VeLMtilQMdrjPSMQAy8RNDgoHvd5YBmpjUlGquvpASHEItZlZ hT6dWQYSqroI4ruyt6xCvrcKCma2nyR78FcZZLdg2jTJFaBsOaAsnI0V nfrWXsD09S4EvTHq+SIEIHyvJgC2+HKScUUlJgXTDAdd0zLxlQqW4fcn z5xhyQ==;; Received 1173 bytes from 192.203.230.10#53(e.root-servers.net) in 41 ms
baidu.com.        172800    INNS    ns2.baidu.com.
baidu.com.        172800    INNS    ns3.baidu.com.
baidu.com.        172800    INNS    ns4.baidu.com.
baidu.com.        172800    INNS    ns1.baidu.com.
baidu.com.        172800    INNS    ns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 -CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20190928044441 20190921033441 17708 com. G131mLtsBTVuH1wpOFbRs0/voaY+V7rxVJHc9XWhCelqZkbFiB6tVxKw oqpWdiXL+p4V40G3Koo8Y7y/Qd2M+hV4edC0nal1RrNt97hkRLQAcTJ/ wHZcMl84JbDtZT44UY1iHWv4GUxlxyaQiew/YceADjSzNtqG8mU1zNhC P1g=HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN NSEC3 1 1 0 -HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6  NS DS RRSIG
HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN RRSIG NSEC3 8 2 86400 20190930045238 20190923034238 17708 com. k5LZWJ8Oa5v6NqVOZ9PUeDx0vdwV6gFSH0EZp9rFHr9GeAYPOnr0ucQX XogUAJweh+CvXYMqFa3s3ZQUsqbRv2O5XTjKuZDrOzBSPooK3csZ1tJy q5HdJczJeMVTdHsbaVcO2Kt1Iwl+5Obl8UCt60ZfyTQoegAI+dtQdPNa ADA=;; Received 697 bytes from 192.43.172.30#53(i.gtld-servers.net) in 192 ms
www.baidu.com.        1200    INCNAME    www.a.shifen.com.
a.shifen.com.        1200    INNS    ns4.a.shifen.com.
a.shifen.com.        1200    INNS    ns1.a.shifen.com.
a.shifen.com.        1200    INNS    ns3.a.shifen.com.
a.shifen.com.        1200    INNS    ns5.a.shifen.com.
a.shifen.com.        1200    INNS    ns2.a.shifen.com.
;; Received 239 bytes from 14.215.178.80#53(ns4.baidu.com) in 43 ms

nslookup域名解析

[root@oldboy ~]#nslookup
>baidu.com
Server:         192.168.1.1Address:        192.168.1.1#53
Non-authoritative answer:
Name:   baidu.com
Address: 39.156.69.79Name:   baidu.com
Address: 220.181.38.148

host域名

[root@oldboy ~]#host www.baidu.com
www.baidu.com is an alias forwww.a.shifen.com.
www.a.shifen.com has address 183.232.231.174www.a.shifen.com has address 183.232.231.172

ping 域名返回地址

[root@oldboy ~]#ping www.baidu.com
PING www.baidu.com (183.232.231.174) 56(84) bytes of data.
64 bytes from 183.232.231.174: icmp_seq=1 ttl=55 time=43.8ms
64 bytes from 183.232.231.174: icmp_seq=2 ttl=55 time=44.2ms


免责声明:文章转载自《【Linux网络基础】 DNS:介绍、作用、解析原理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Net Core2.0 基于QuartzNet任务管理系统mysql集群搭建 (PXC)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

超哥笔记--linux准备知识(1)

一 岗位 前端小姐姐 python后端大神 测试工程师 测试+python 测试开发 运维工程师(背锅侠) -安全运维 -linux系统管理员 -桌面运维(helpdesk) -IDC机房运维(服务器上下架) -devops 运维开发 , python开发技能+ linux命令技能 -cmdb资产管理平台(django+saltstack+linux 服...

Linux系统下安装python3.7.3环境

这里用到的Linux系统是centos7系统,centos7是自带py的但是py的2.7.5版本                         连接服务器的使用的是SSH Secure shell 1.首先安装依赖包1)安装gcc编译器   gcc编译器有些系统版本已经默认安装了,可以通过 gcc --version进行查看              安...

针对防止自己的Linux进程被杀死的解决办法

这里后三种方法 在/etc/inittab文件加一条语句( :id:rstate:action:process),运行动作为 respawn,这样在每次系统检测到process进程不存在时,就会重启它。 创建一个守护进程,该守护进程的功能就是检测主进程是否在运行,若不在运行,那么守护进程就启动它。(这里存在一个问题,守护进程也可能会被杀死,那么更狠的一点...

Linux(Ubuntu):搭建Docker-Compose

1. Docker Compose 简介及安装 Docker Compose 是一种用于通过使用单个命令创建和启动 Docker 应用程序的工具。我们可以使用它来配置应用程序的服务。 它是开发,测试和升级环境的利器。 它提供以下命令来管理应用程序的整个生命周期: 启动,停止和重建服务 查看运行服务的状态 流式运行服务的日志输出 在服务上运行一次性命令...

Linux命令:文件查找相关 Whereis、find和locate+updatedb

文件查找相关Whereis、find和locate+updatedb 命令简介    ●名称:whereis功能:定位文件所在的目录       使用whereis命令可以定位常用命令的位置:    [root@yanghsia root]#whereis ls                  (# 定位ls命令的位置)    ls:/bin/ls   ...

Python 脚本实现对 Linux 服务器的监控

本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 原文地址 由于原文来自微信公众号,并且脚本都是图片,所以这里自己亲自把代码整理执行一遍 工作原理:基于/proc文件 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核...