DNS基础及域名系统架构

本文介绍了DNS的基础知识,包括域名解析方式、DNS查询类型、资源记录和DNS服务器类型。详细讲解了DNS如何通过hosts、DNS服务器进行域名解析,以及DNS查询命令如host和dig的使用。还探讨了DNS服务器上的资源记录及其属性,如A、MX、CNAME等类型,以及DNS服务器的Zone配置文件管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          先拿csdn说事儿吧
          www.youkuaiyun.com
           ↓          ↓   ↓
           主      域   类    
           机      名   型
           名
          类型:标识此域名的类型(com、net、org、edu、gov等)
          域名:域名称
          主机名:该域中某台主机的名称
          注释:
              ① 表示youkuaiyun.com这个域里面的www这台网页服务器
              ② 对大小写透明,比如Www.youkuaiyun.com,亦同
              ③ 完整的域名实际上在末端还有个".",也就是,www.youkuaiyun.com.,"."代表root DNS server
          

          域名是面向用户的,而计算机底层仍然是依赖IP通信



          日常主机(个人PC等)一般都是作为DNS客户端使用
          浏览器等通过调用OS底层提供的gethostbyname()发起对DNS服务器的查询
          进而实施域名解析
          

          域名解析方式


          ① /etc/hosts
          ② DNS
          ③ NIS
          注释:
          ⒈ hosts文件优先级较高,OS一般会优先访问hosts
             比如:
             [root@even ~]# cat /etc/hosts
             127.0.0.1 even.example.com  even
             117.79.93.222  www.youkuaiyun.com
             不过,这个hosts文件常会被一些黑客拿去“钓鱼攻击”
             将中国农业银行的IP解析到黑客所设置的另外一个钓鱼网
             不知不觉你的用户名和密码就被socket
        
          ⒉ 二把手的当属DNS,在resolv.conf有它的配置
             [root@even ~]# cat /etc/resolv.conf 
             ; generated by /sbin/dhclient-script
             search example.com         ##域名服务器的域名
             nameserver 192.168.227.2   ##域名服务器对应的IP地址
             在client端,DNS服务器的相关信息就保存在文件/etc/resolv.conf中
             每当client向server问一个域名,而server端必须要回答此域名的真正IP地址
             当地的DNS先会查自己的资料DNS服务器库。如果自己的资料库没有,则会往该DNS的上级的DNS询问
             依此得到答案之后,将收到的答案存起来,并回答客户
             DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称
        
        
          ⒊ 但是我们可以通过/etc/nsswitch.conf改变查询优先级
             [root@even ~]# cat /etc/nsswitch.conf
             hosts:      files dns
             这里的files就是指/etc/hosts这个文件
             如果我们想改变这个顺序:
                                  要么把files这个关键字删掉
                                  要么把files和dns掉个序
         

          DNS专用查询命令


            ① 简单型:host
                      ─→host www.youkuaiyun.com
            ② 复杂型:dig
                      ─→dig www.youkuaiyun.com
            这两个都不会使用/etc/nsswitch.conf的配置
            只会通过/etc/resolv.conf进行DNS查询


[root@even ~]# dig +trace www.youkuaiyun.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> +trace www.youkuaiyun.com
;; global options:  printcmd
.                       371171  IN      NS      d.root-servers.net.
.                       371171  IN      NS      k.root-servers.net.
.                       371171  IN      NS      m.root-servers.net.
.                       371171  IN      NS      e.root-servers.net.
.                       371171  IN      NS      i.root-servers.net.
.                       371171  IN      NS      f.root-servers.net.
.                       371171  IN      NS      a.root-servers.net.
.                       371171  IN      NS      b.root-servers.net.
.                       371171  IN      NS      c.root-servers.net.
.                       371171  IN      NS      h.root-servers.net.
.                       371171  IN      NS      g.root-servers.net.
.                       371171  IN      NS      l.root-servers.net.
.                       371171  IN      NS      j.root-servers.net.
;; Received 512 bytes from 192.168.1.1#53(192.168.1.1) in 87 ms

net.                    172800  IN      NS      k.gtld-servers.net.
net.                    172800  IN      NS      g.gtld-servers.net.
net.                    172800  IN      NS      j.gtld-servers.net.
net.                    172800  IN      NS      m.gtld-servers.net.
net.                    172800  IN      NS      i.gtld-servers.net.
net.                    172800  IN      NS      f.gtld-servers.net.
net.                    172800  IN      NS      e.gtld-servers.net.
net.                    172800  IN      NS      h.gtld-servers.net.
net.                    172800  IN      NS      d.gtld-servers.net.
net.                    172800  IN      NS      l.gtld-servers.net.
net.                    172800  IN      NS      a.gtld-servers.net.
net.                    172800  IN      NS      c.gtld-servers.net.
net.                    172800  IN      NS      b.gtld-servers.net.
;; Received 487 bytes from 128.8.10.90#53(d.root-servers.net) in 348 ms

youkuaiyun.com.               172800  IN      NS      ns1.dnsv2.com.
youkuaiyun.com.               172800  IN      NS      ns2.dnsv2.com.
;; Received 171 bytes from 192.42.93.30#53(g.gtld-servers.net) in 236 ms

www.youkuaiyun.com.           600     IN      A       117.79.93.222
youkuaiyun.com.               600     IN      NS      ns1.dnsv2.com.
youkuaiyun.com.               600     IN      NS      ns2.dnsv2.com.
;; Received 100 bytes from 221.204.186.8#53(ns1.dnsv2.com) in 195 ms


          注释:
          ① 由上可知:
                     "." → "net." → "youkuaiyun.com." → "www.youkuaiyun.com."
          ② "youkuaiyun.com."这个域名服务器通常由企业自行维护或者个人租用运营商
              可由我们自由控制在这个域名下有哪些主机信息
              我们可以自行搭建这样一台DNS服务器
          
          

          DNS查询类型


            ① 递归查询
               
            
            ② 循环查询
               
            
            ③ 混合查询
               


          资源记录

          
          在DNS服务器上,DNS的信息通过资源记录(RR,Resource Record)的格式进行保存
          RR不仅能够保存域名到IP的映射信息,还能够保存很多其他信息
          RR常用属性:
           ● name  :域名、主机名,如www,mail
           ● class :资源类别,一般都是IN,代表Internet
           ● type  :资源类型,常见如下:
                                       ▼ IN A → IPV4地址:用于设置主机名对应IP地址的对应记录
                                       ▼ IN AAAA → IPV6地址
                                       ▼ IN MX → 邮件记录:用于提供邮件服务器名称
                                       ▼ IN CNAME → 别名:用于在区域文件中对主机名称设置别名
                                       ▼ IN PTR → 指针(逆向解析):语法(IP地址 IN PTR 主机名)
                                       ▼ IN SRV → 服务资源

                                       ▼ IN NS
           ● rdata :record data
           比如:
                www       IN    A      192.168.1.1
                ↓           ↓    ↓           ↓
                name    class 
type   rdata
                
        
        

          DNS服务器类型

          
          Master:保存该域的zone配置文件,该域的所有配置、更改都在该服务器上进行
          Slave: 抓取Master的zone配置文件,但没有权限修改zone配置文件,可作为负载均衡使用
          Cache: 不存在任何zone配置文件,仅依靠缓存为客户端提供服务,通常作负载均衡和加速访问使用,比如在大的局域网出口就可以架设cache DNS server
          可见、无论Slave或cache、都是依靠缓存Master的zone配置文件
          
          

          Zone配置文件

          
          在DNS服务器中,一般一个域通过一个zone文件保存该域的相关信息
          zone文件格式是标准化的


          注释:
              ① "NS @"之上的代码无须我们去管理,有标准的模块可供参考
              
                  ▼ serial:序列号,如果DNS配置文件修改一次,则序列号加一,从而通知下级或从服务器去刷新配置文件,因为,序列号不一致
                  ▼ refresh:刷新时间,1D:一天,也就是从服务器一天刷新一次
                  ▼ retry:如果刷新不成功,多长时间重试
                  ▼ expire:多长时间缓存信息过期
                  以上这些信息是用来规定主从服务器之间信息的同步
                  一般使用默认即可,可能需要修改的仅是serial         
          
          

          高级查询

          
           ● dig -t mx www.youkuaiyun.com
           案例:查询gmail的邮件服务器

[root@even ~]# dig -t mx gmail.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> -t mx gmail.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64810
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 8

;; QUESTION SECTION:
;gmail.com.                     IN      MX

;; ANSWER SECTION:
gmail.com.              949     IN      MX      10 alt1.gmail-smtp-in.l.google.com.
gmail.com.              949     IN      MX      20 alt2.gmail-smtp-in.l.google.com.
gmail.com.              949     IN      MX      30 alt3.gmail-smtp-in.l.google.com.
gmail.com.              949     IN      MX      40 alt4.gmail-smtp-in.l.google.com.
gmail.com.              949     IN      MX      5 gmail-smtp-in.l.google.com.

;; AUTHORITY SECTION:
gmail.com.              186940  IN      NS      ns2.google.com.
gmail.com.              186940  IN      NS      ns3.google.com.
gmail.com.              186940  IN      NS      ns1.google.com.
gmail.com.              186940  IN      NS      ns4.google.com.

;; ADDITIONAL SECTION:
alt1.gmail-smtp-in.l.google.com. 244 IN AAAA    2a00:1450:4010:c04::1b
alt2.gmail-smtp-in.l.google.com. 244 IN AAAA    2607:f8b0:4002:c04::1a
alt3.gmail-smtp-in.l.google.com. 244 IN AAAA    2607:f8b0:400d:c00::1b
alt4.gmail-smtp-in.l.google.com. 244 IN AAAA    2607:f8b0:400c:c02::1b
ns1.google.com.         184158  IN      A       216.239.32.10
ns2.google.com.         189126  IN      A       216.239.34.10
ns3.google.com.         186984  IN      A       216.239.36.10
ns4.google.com.         192641  IN      A       216.239.38.10

;; Query time: 28 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Nov 27 00:26:40 2012
;; MSG SIZE  rcvd: 398

          MX后面的数字表示优先级
           ● dig -x 逆向解析
           ● dig -t soa 查询zone配置文件里面"NS @"之上的信息
           案例:查询youkuaiyun.com这个域的soa信息

[root@even ~]# dig -t soa youkuaiyun.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> -t soa youkuaiyun.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5007
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 6

;; QUESTION SECTION:
;youkuaiyun.com.                      IN      SOA

;; ANSWER SECTION:
youkuaiyun.com.               570     IN      SOA     ns1.dnsv2.com. level3dnsadmin.dnspod.com. 1353658206 3600 180 1209600 180

;; AUTHORITY SECTION:
youkuaiyun.com.               320     IN      NS      ns1.dnsv2.com.
youkuaiyun.com.               320     IN      NS      ns2.dnsv2.com.

;; ADDITIONAL SECTION:
ns1.dnsv2.com.          14141   IN      A       122.225.217.193
ns1.dnsv2.com.          14141   IN      A       183.60.59.230
ns1.dnsv2.com.          14141   IN      A       221.204.186.8
ns2.dnsv2.com.          14141   IN      A       180.153.162.151
ns2.dnsv2.com.          14141   IN      A       112.90.143.34
ns2.dnsv2.com.          14141   IN      A       119.167.195.7

;; Query time: 27 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Nov 27 00:31:54 2012
;; MSG SIZE  rcvd: 225


 

    倘若大家在调试DNS连通性的时候,可以借助google提供的全球免费的DNS免费服务器:8.8.8.8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值