zoukankan      html  css  js  c++  java
  • DNS解析

    DNS的几个概念:

    一、根域

    “.”,即域名最后的“.”,浏览器输入一般都会省略。
    根域服务器具有13个IP地址,但是机器数量却不是13台,这些IP地址借助了任播技术,我们可以在全球设立这些IP的镜像。

    二、域的划分

    根域下来就是顶级域或者一级域,如com.、net.、cn.、jp.等。
    每个域都会有域名服务器,也叫权威域名服务器。权威域名服务器不做递归。

    三、域名服务器

    域名服务器即能够提供域名解析的服务器,上面的记录类型可以是A(address)记录、NS(name server)记录、MX(mail)、CNAME等。

    四、DNS查询模式

    递归:A查询B,如果B找不到,那么就会B向C发起请求,直到找到请求,后将结果发送給A.
    迭代:A查询B,如果B找不到,但是知道C有,那么告诉B的C服务器地址,让B去向C服务器发起请求。
    递归查询:在该模式下,服务器接收到客户端DNS查询请求,必须响应一个准备的查询结果。如果DNS服务器本地没有存储查询DNS信息,会询问其他服务器,并将返回查询结果响应给客户端。
    迭代查询:DNS服务器会向客户端响应本地能否解析的DNS服务器地址。如果DNS服务器本地没有存储查询DNS信息,会响应客户端另一个DNS服务器地址,客户端再向新的DNS服务器提交请求,依次循环直到返回查询结果。

    五、DNS解析常用命令

    host

    host语法:
    Host [option] [domain] [server]
    选项支持:

    • -a:即-v -t Any
    • -c,指定查询class。
    • -d,即-v
    • -l,列出域名对应所有hosts,使用AXFR
    • -r,关闭递归
    • -t,指定查询记录类型
    • -T,TCP/IP模式
    • -v,打开verbose输出
    • -4,只使用IPv4传输
    • -6,只使用IPv6传输
    • -V,打印版本号

    nslookup

    nslookup [-option] [name] [server]
    如果在nslookup后面没有加上任何主机或者ip,那将进入nslookup查询功能,可以设置其他参数,如
    set type=any :查询所有类型记录。
    set type=mx :查询mx记录

    dig

    dig(domain information groper):用于探测DNS,会打印出DNS name server的回应。
    dig语法:dig [@server] domain [type]
    域名解析:dig [@server] domain
    反向解析:dig -x IP @server
    查找域的授权dns服务器:dig domain +nssearch
    从根服务器追踪一个域名解析过程:dig domain +trace

    六、附录

    其他关键信息

    DNS请求端口号默认53
    /etc/hosts :记录hostname对应的ip地址(配置IP不符合规范则不生效)
    /etc/resolv.conf :设置DNS服务器的ip地址
    /etc/host.conf :指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析)

    A记录与CNAME记录

    A记录是把一个域名解析到一个IP地址,而CNAME记录是把域名解析到另外一个域名,而这个域名最终指向一个A记录,在功能实现上A记录与CNAME记录没有区别。
    CNAME记录在做IP地址变更时比A记录方便。

    DNS域名解析中的域名记录

    A记录:指向IPv4地址的记录。
    CNAME记录:也叫别名记录,可以将多个记录映射到同一台计算机上。
    MX记录:MX记录的权重对Mail服务很重要,发送邮件的时候,Mail服务器先对域名进行解析,查询mx记录,优先查找权重数最小的服务器。
    TXT记录:一般是某条记录的设置说明,还可以用于验证域名的所有者。
    AAAA记录:指向IPv6地址的记录。
    NS记录:是域名服务器记录,用来指定域名由哪台服务器解析。
    SRV记录:记录了哪台计算机提供了哪个服务,格式为:服务的名字.协议的类型。
    SOA记录:起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中哪一台是主服务器。
    TTL(time to live)值:表示记录在DNS服务器中的缓存时间,TTL的单位是秒,一般为3600秒。

  • 相关阅读:
    RabbitMQ简介、特性、使用场景、安装、启动与关闭
    mybatis的工作原理
    bzoj2119 股市的预测
    Noi2014 购票
    51Nod 算法马拉松22 开黑记
    COGS2485 从零开始的序列
    Codeforces Round #402 (Div.2)
    BestCoder Round #92
    COGS2294 释迦
    bzoj4764 弹飞大爷
  • 原文地址:https://www.cnblogs.com/amyzhu/p/8667406.html
Copyright © 2011-2022 走看看