DNS系统

DNS查询工具

  • dig @server name type
dig @8.8.8.8 +trace www.baidu.com ns
+short 指定简短展示
+tcp 指定tcp查询
  • nslookup: 有交互模式和非交互模式
$ nslookup 1.1.1.1
1.1.1.1.in-addr.arpa	name = one.one.one.one.

$ nslookup baidu.com
Server:		100.100.2.136
Address:	100.100.2.136#53

Non-authoritative answer:
Name:	baidu.com
Address: 39.156.69.79
Name:	baidu.com
Address: 220.181.38.148
  • host [-aCdlnrsTUwv] [-c class] [-N ndots] [-p port] [-R number] [-t type] [-W wait] [-m flag] [[-4] | [-6]] [-v] [-V] {name} [server]
$ host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 220.181.38.150
www.a.shifen.com has address 220.181.38.149

域名查询流程

  1. 向183.60.82.98#53查询根服务器地址
  2. 向192.203.230.10#53(e.root-servers.net)根服务器查询com.顶级域服务器地址
  3. 向192.31.80.30#53(d.gtld-servers.net)顶级域地址查询baidu.com.权威服务器地址
  4. 向权威服务器220.181.33.31#53(ns2.baidu.com)获取baidu.com.的A地址
[root@VM-16-2-centos ~]# dig +trace baidu.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> +trace baidu.com
;; global options: +cmd
.                       44876   IN      NS      e.root-servers.net.
.                       44876   IN      NS      c.root-servers.net.
.                       44876   IN      NS      l.root-servers.net.
.                       44876   IN      NS      h.root-servers.net.
.                       44876   IN      NS      b.root-servers.net.
.                       44876   IN      NS      a.root-servers.net.
.                       44876   IN      NS      g.root-servers.net.
.                       44876   IN      NS      m.root-servers.net.
.                       44876   IN      NS      d.root-servers.net.
.                       44876   IN      NS      f.root-servers.net.
.                       44876   IN      NS      k.root-servers.net.
.                       44876   IN      NS      i.root-servers.net.
.                       44876   IN      NS      j.root-servers.net.
;; Received 228 bytes from 183.60.82.98#53(183.60.82.98) in 0 ms

com.                    172800  IN      NS      a.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      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      l.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    86400   IN      DS      30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.                    86400   IN      RRSIG   DS 8 1 86400 20210621050000 20210608040000 14631 . SE7HNqehc1MlBqlV/jyDvqtTe2h47lT1wK+M0ypi/RZL6WUtZ4ZJRB7o 597nbFpT+tsXcklYmOtPCnruAhI58+Bs/cnghKQzgR9DoFxZV6vK/6mW 81m7Uk2Z9PuR5y2dWe7x8CWPWFzC4xXJFnuyrVJUnwJqkMnNOAxGa7CI AP3pPYs8JZOjYxMzkzz1pdTIpapbz7gQFDADgCf+m/AMNih+elu0P8+l erveIfVYtfDgYh4vHV4h/vyaBdNRviQQTvTx0W3AH8I251Jp1Q1xJa9s D0Zj7n0cojZufOP3XDs5msZxu0CwwV06Iq4SDbrSEcJPyHrN5SVEgaS1 z7ZduA==
;; Received 1169 bytes from 192.203.230.10#53(e.root-servers.net) in 220 ms

baidu.com.              172800  IN      NS      ns2.baidu.com.
baidu.com.              172800  IN      NS      ns3.baidu.com.
baidu.com.              172800  IN      NS      ns4.baidu.com.
baidu.com.              172800  IN      NS      ns1.baidu.com.
baidu.com.              172800  IN      NS      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 20210613042407 20210606031407 54714 com. lm/XkI4n74JY7boeU6gnPY1wG+EFdeiSkxwxzUKW8aAR2F62K2+WZ+5I sxjKMJwssmu0RF4cfpu0V64XHVNcUVYcOkRoYpsPURl3bd808NIbBna7 DSrUKHjHGHmcjy7NN10Dgsc3lCV6rOExULOEd+4XVIzC3fUY7KD5vXiF mgoDzYla7g81qcdJpxyegJIatCSE6dd3xUPSUPqdwHZb3Q==
HPVUSBDNI26UDNIV6R0SV14GC3KGR4JP.com. 86400 IN NSEC3 1 1 0 - HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6 NS DS RRSIG
HPVUSBDNI26UDNIV6R0SV14GC3KGR4JP.com. 86400 IN RRSIG NSEC3 8 2 86400 20210613045111 20210606034111 54714 com. a7SSdsZdXkOqKp6EOM6w4sSDOkN3/wYEgfoRjCYySK4Nwem4gHZ4GaPP N8W073BToSfEIH1dfOZw+Ln2+vFA67iRcw7w0vyd3kX9iKaNwvU62P/m bovKGjOJYR4xNhiiymBPhXmazbc0UFcW1N6srCwkAVzWGYbsnj1CkS8C u1j+Oh9leVDss4JGSkdIIACEkhoC1bFUdhPMzLfqWygeXg==
;; Received 757 bytes from 192.31.80.30#53(d.gtld-servers.net) in 218 ms

baidu.com.              600     IN      A       220.181.38.148
baidu.com.              600     IN      A       39.156.69.79
baidu.com.              86400   IN      NS      ns7.baidu.com.
baidu.com.              86400   IN      NS      ns3.baidu.com.
baidu.com.              86400   IN      NS      ns4.baidu.com.
baidu.com.              86400   IN      NS      ns2.baidu.com.
baidu.com.              86400   IN      NS      dns.baidu.com.
;; Received 240 bytes from 220.181.33.31#53(ns2.baidu.com) in 26 ms
  • 从根服务器开始授权链
> dig @a.root-servers.net gongzicp.com soa
;; QUESTION SECTION:
;gongzicp.com.                  IN      SOA
;; AUTHORITY SECTION:
com.                    172800  IN      NS      e.gtld-servers.net.
....
; AUTHORITY SECTION返回全球顶级域(global Top-Level Domain,gTLD)服务器是指定域名的下一环

> dig @k.gtld-servers.net gongzicp.com soa
;; QUESTION SECTION:
;gongzicp.com.                  IN      SOA
;; AUTHORITY SECTION:
gongzicp.com.           172800  IN      NS      dns2.hichina.com.
gongzicp.com.           172800  IN      NS      dns1.hichina.com.

> dig @dns2.hichina.com gongzicp.com soa
;; QUESTION SECTION:
;gongzicp.com.                  IN      SOA
;; ANSWER SECTION:
gongzicp.com.           600     IN      SOA     dns1.hichina.com. hostmaster.hichina.com. 2017101017 3600 1200 86400 360
; 返回了ANSWER响应,现在知道权威名称服务器,可以查询需要的gongzicp.com

> dig @dns2.hichina.com gongzicp.com any
;; QUESTION SECTION:
;gongzicp.com.                  IN      ANY
;; ANSWER SECTION:
gongzicp.com.           600     IN      A       39.106.14.121
gongzicp.com.           86400   IN      NS      dns2.hichina.com.
gongzicp.com.           86400   IN      NS      dns1.hichina.com.

概念

  • DNS本质上是发明了一种层次的、基于域的命名方案,并且用一个分布式数据库系统加以实现。
  • DNS服务器通常运行BIND软件。
  • /etc/resolv.conf ,客户端列出主机所使用的名称服务器
options timeout:1 rotate
; search 当ssh pctest时就会直接变为 ssh root@pctest.baidu.com
search baidu.com
; generated by /usr/sbin/dhclient-script
nameserver 183.60.82.98
nameserver 183.60.83.19
  • /etc/nsswitch.conf 指定如何完成主机名到IP地址的映射,以及dns是该先尝试、还是后尝试,或者干脆不尝试。
  • TTL 缓存时间
  • 假设要搭建一个权威服务器,networkutopia.com,则需要向TLD com服务器加入如下两条资源记录。
(networkutopia.com,dns1.networkutopia.com, NS) # 添加NS服务器名
(dns1.networkutopia.com,212.212.212.1, A) # 注册NS服务器的IP地址
  • 当需要访问www.networkutopia.com网站时,
  • 首先本地DNS服务器 从根服务器获取com名称服务器的NS和A记录;
  • 再从com名称服务器查询networkutopia.com的NS和A记录;
  • 再查询权威服务器获取www.networkutopia.com的A记录,即IP地址。
  • 正向映射forward mapping:主机名映射为IP地址(以及其他记录)
  • 反向映射reverse mapping:将IP地址映射为主机名。1.189.173.43.in-addr.arpa.
  • 顶级域:国家代码域和通用顶层域

名称服务器

  • 根服务器:管理互联网的主目录
  • 顶级域TLD服务器:对于每个顶级域(如com、org、net、edu和gov)和所有的国家顶级域(如uk、fr),都有TLD服务器。
  • 权威服务器:根据本地存储的信息(原始主记录)返回结果的服务器。
  • DNS转发器:用于从内部网络接收DNS查询并将其发送到外部DNS服务器。
  • 主服务器:磁盘上保存本区数据的正式副本
  • 从服务器:通过“区传输”(zone transfer)操作从主服务器获取自身数据。一个区可以拥有多台从名称服务器。
  • 存根服务器:一种特殊类型的从服务器,仅载入主服务器中NS(name server)记录
  • 缓存服务器:从启动文件中获取根域服务器地址,通过缓存已解析的查询来积累其余数据。
  • 主从服务器对于它们自己的区是权威的,但对于所缓存的其他区的信息就没有权威性了
  • 名称服务器要么是递归的,要么是非递归的。如果非递归服务器缓存了当前事务的查询结果,或者对所查询的域具有权威,那么它就能够提供正确的响应。否则,它并不会返回真正的答案,而是引荐更有可能知道答案的其他域的权威服务器。非递归服务器客户端必须准备处理这种情况。
  • 权威服务器(如根服务器和顶级域服务器)都是非递归的,因为它们每秒可能要处理数万次查询。
  • 递归服务器只返回真正的答案和错误信息。它会跟随被引荐的服务器,减轻客户端的负担。
  • 资源记录:dns通用语言,独立地控制着任何dns服务器操作的配置文件。

数据库

  • 区数据库是由管理员在该区的主名称服务器上维护的一组文本文件(区文件zone file)。区文件包括了两个条目:解析器命令(如 O R I G I N 和 ORIGIN和 ORIGINTTL)和资源记录。只有资源记录才是数据库真正组成部分,解析器命令只不过是提供了输入记录的一些便捷手段。
  • 解析器指令
    • $ORIGIN设置或更改起始域
    • $INCLUDE把多个文件读取到区数据库
    • $TTL设置跟随其后的资源记录存活时间字段的默认值。它必须是区文件的第一行。
  • 资源记录 [name] [ttl] [class] type data
    • name名称:标识资源记录所描述的实体(通常是主机或域)。如果多条连续资源记录指的都是同一个实体,第一条记录之后的name可以省略。名称有相对形式和绝对形式。绝对名以点号结尾。可以使用通配符*
    • ttl指定资源记录能够被缓存的时长(以s为单位)
    • class指定网络类型。默认类型IN表示为INternet。
    • type资源记录类型
      • 区基础设施记录
        • SOA 起始授权,定义域的权威信息(可以将其视为域的操作说明)。
        dig @dns2.hichina.com gongzicp.com soa
        gongzicp.com.           600     IN      SOA     dns1.hichina.com. hostmaster.hichina.com. 2017101017 3600 1200 86400 360
        # 名称服务器 :主名称服务器域名 dns1.hichina.com.
        # 电子邮件地址:DNS管理员邮件地址。hostmaster.hichina.com.
        # 序号serial:从服务器根据这个值确定是否启动区域传输。2017101017
        # 刷新频率refresh:从服务器多久查询一次主服务器,以判断序号是否变更。3600
        # 重试间隔retry:当从服务器向主服务器查询更新时,若没有响应,就会利用重试间隔。1200
        # 过期时间expire:如果主服务器一直不能访问,过期时间用来指定从服务器不再响应DNS客户端的查询请求。86400
        # 最小值minimum:设定否定的DNS响应缓存时间360
        
        • NS 名称服务器,标识服务器,授权子域
        baidu.com.              172800  IN      NS      ns2.baidu.com.
        
      • 基本记录
        • A 名称-IPv4地址转换
        • AAAA 名称-IPv6地址转换
        • PTR 地址-名称转换
        • MX 邮件交换
      • 安全记录:为区文件加入认证和签名
        • DS 授权签名方。已签名子区的key-signing密钥的散列
        • DNSKEY 公钥,DNS名称的公钥
        • NSEC: Next Secure。和DNSSEC共同用于否定答复
        • NSEC3: Next Secure v3。和DNSSEC共同用于否定答复
        • RRSIG: 签名,签过名的已认证资源记录集
      • 可选记录
        • CNAME:规范名。主机别名。如下 别名www.baidu.com,规范名www.a.shifen.com
        host -t any www.whitehouse.gov
        host -t any wildcard.whitehouse.gov.edgekey.net.
        host -t any e4036.dscb.akamaiedge.net.
        
        • SRV:服务。指出知名(well-known)服务的位置
        # ldap 轻量级目录访问协议
        $ host -t srv _ldap._tcp.openldap.org
        _ldap._tcp.openldap.org has SRV record 0 0 389 www.openldap.org.
        
        • TXT:文本。注释或无记录类型的信息

DNS安全

  • DNSsec提供3个基本服务
    • 证明数据从哪里发出来的:证实了返回的数据确实经过了区域所有者的同意。
    • 公钥的分发:对于安全地保存和获取公钥非常有用。
    • 事务和请求的认证:对于预防重放和欺骗攻击非常必要。
  • DNS攻击
    • Dos攻击:使DNS服务器过载不能服务
    • DNS投毒:改变资源记录内容或伪装成一个官方的DNS服务器。

DNS协议

  • 主要组成:用于执行对DNS特定名称查询的查询/响应协议和名称服务器用于交换数据库记录的协议(区域传输);
  • 基本的DNS消息以固定的12字节头部开始,其后跟随4个可变长度的区段(section):问题(或查询)、回答、授权记录和额外记录。
  • 动态更新:通过向一个区域的授权DNS服务器发送动态更新的DNS消息,DNS UPDATE就可以完成。
  • 区域传输:
    • 主服务器更新时,给从服务器推送DNS NOTIFY
    • 从服务器SOA查询
    • 主服务SOA响应
    • 从服务器AXFR【完整区域传输】或IXFR【增量区域传输】
    • 主服务器返回区域内容

参考

  • TCP/IP详解卷一
  • 计算机网络(第5版)清华大学出版社
  • 计算机网络 自顶向下方法
  • 计算机网络安全精要
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值