• DNS 01-DNS简介


    DNS简介

    • DNS--域名系统(Domain Name System)
    • 用于查询域名对应的IP地址。
    • 域名与目录树类似形成一个树状结构, 最右侧为顶级域, 向左域名级别降低。
    • 所有域名都属于根域。根域由13组根域名服务器管理。
    A.ROOT-SERVERS.NET - M.ROOT-SERVERS.NET
    
    • 根域的下一级为顶级域 TLD (top level domain)
      • 通用顶级域名:.com,.net,.gov
      • 地区顶级域名:.cn,.jp
      • 次级域名:cnblogs,baidu,google
      • 最低级的为主机名:www,mail

    DNS解析过程

    • 查询本地hosts文件, unix系操作系统一般在/etc/hosts。
    • 若hosts文件不存在相关记录, 则检查本地DNS缓存。
    • 若本地DNS缓存不存在相关记录则查询首选名称服务器。

    DNS功能分类

    • 主DNS服务器:存储着原始资料的DNS服务器
    • 从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器(辅助DNS服务器)
    • 缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也就递归服务器。
    • 转发器:发现非本机负责的查询请求时,不在向根域发起请求。而是直接转发给指定的一台或多台服务器。

    DNS记录类型

    • DNS是一个分布式的数据库, 主要是保存域名和IP之间的关系。
    • 名称服务器使用区域文件保存自己的记录, 区域文件中除了DNS记录外还定义了一些环境变量。
      • $ORIGIN:表示本NS管理的域, 如$ORIGIN example.com。
      • $TTL:表示解析记录在缓存中的默认过期时间。

    A记录和AAAA记录

    A记录是IPv4主机记录;AAAA记录是IPv6主机记录

    example.com.  IN  A     192.0.2.1
                  IN  AAAA  2001:db8:10::1
    
    • 表示主机example.com对应的IPv4地址为192.0.2.1, IPv6地址为2001:db8:10::1.
    • 第二个字段IN表示Internet
    • 最后加.表示采用绝对路径, 区域文件也可以用相对路径来配置

    SOA记录

    授权开始:SOA(Start of Authority)记录是区域文件的第一条记录, 用于记录为本服务器授权的上级名称服务器。

    example.com.  IN  SOA   ns.example.com. username.example.com. (         
        2007120710 ; serial number
        1d ; refresh interval 
        2h ; retry interval
        4w ; expiry period
        1h ; negative TTL
    )
    
    • 上述记录表示域example.com的主名称服务器为ns.example.com.
    • username.example.com.表示管理员邮箱为username@example.com, 注意@被替换为.
    • serial number:本服务器记录的版本号
      • 每次修改版本号就会加1
      • 通过比较本服务器版本号和上级服务器版本号已进行同步。
    • refresh interval:向SOA服务器请求更新记录的间隔
    • retry interval:向SOA服务器请求更新记录失败时的重试周期
    • expiry period:SOA服务器若在此时间内不响应, 则不再将其作为SOA服务器
    • negative ttl:当查询结果为无此记录时, 缓存该结果的时间

    NS记录

    用于表示某个域的名称服务器

    example.com.  IN  NS    ns   
    example.com.  IN  NS    ns2.example.com.
    
    • 上述两条记录表示example.com域的名称服务器为ns.example.com, 备用名称服务器为ns2.example.com。
    • 每个区域文件中至少定义两个名称服务器,以便在一个服务器出现问题时还能正确运行。
    • 在自顶向下查询过程中, 父域的名称服务器根据自己的ns记录确定子域的名称服务器。

    MX记录

    MX记录用于表示某个域的邮件服务器

    example.com.  IN  MX  10 mail.example.com.
    
    • 上述记录表示mail.example.com是example.com域的邮件服务器。
    • 也可以使用@表示根域, 使用相对路径表示邮件服务器。
    @             IN  MX    20 mail2.example.com. 
    @             IN  MX    50 mail3
    
    • 记录中第4个字段的数字表示优先级, 数字越小优先级越高。

    CNAME记录

    CNAME记录用于记录域名别名:

    www           IN  CNAME example.com.          
    wwwtest       IN  CNAME www
    
    • 上述记录表示www.example.com是example.com的一个别名。
    • wwwtest.example.com又是www.example.com的一个别名。

    DNS相关命令

    host

    常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

    host 选项 参数
    
    选项
       -a:显示详细的DNS信息;
    	-c<类型>:指定查询类型,默认值为“IN“;
    	-C:查询指定主机的完整的SOA记录;
    	-r:在查询域名时,不使用递归的查询方式;
    	-t<类型>:指定查询的域名信息类型;
    	-v:显示指令执行的详细信息;
    	-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
    	-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
    	-4:使用IPv4;
    	-6:使用IPv6.
    	
    

    实例

    host www.baidu.com
    host -a  www.baidu.com
    

    nslookup

    常用域名查询工具,就是查DNS信息用的命令。

    • nslookup有两种工作模式,即“交互模式”和“非交互模式”。
      • 在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。
      • 在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。
    • 进入交互模式,直接输入命令,不加任何参数:(此时nslookup会连接到默认的域名服务器,即/etc/resolv.conf的第一个dns地址。)
    nslookup
    
    • 进入非交互模式,输入命令:
    nslookup -nameserver/ip
    
    • 选项:-sil:不显示任何警告信息。

    dig

    常用的域名查询工具,可以用来测试域名系统工作是否正常。

    dig 选项 参数 
    选项
       @<服务器地址>:指定进行域名解析的域名服务器;
    	-b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
    	-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
    	-P:指定域名服务器所使用端口号;
    	-t<类型>:指定要查询的DNS数据类型;
    	-x<IP地址>:执行逆向域名查询;
    	-4:使用IPv4;
    	-6:使用IPv6;
    	-h:显示指令帮助信息。
    
    参数
        主机:指定要查询域名主机;
        查询类型:指定DNS查询的类型;
        查询类:指定查询DNS的class;
        查询选项:指定查询选项。
    

    实例

    dig www.baidu.com
    
  • 相关阅读:
    Apple Magic Keyboard All In One
    KMP Algorithm All In One
    js parser HTML template string to DOM element All In One
    Mac 电脑外接键盘的 Win 键坏了, 按了没反应, Win 键失效了问题排查和修复 All In One
    解决手机端手机键盘遮挡下边内容问题
    powershell 不能运行cnpm
    内容农场block
    '无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称' 或 'vue不是内部或外部命令
    powershell 设置代理
    cmd powershell proxy 代理 设置
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/9475699.html
Copyright © 2020-2023  润新知