zoukankan      html  css  js  c++  java
  • DNS协议

    DNS Message:

        Header   消息头部

        Question    DNS请求

        Answer  回答请求的资源记录(Resource Record(s))

        Authority   指向域的资源记录

        Additional  其他资源记录

     

    --------------------------------------------------------------

     

    DNS header: 12byte

                                    1  1  1  1  1  1

      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                      ID                       |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |QR|   Opcode  |AA|TC|RD|RA|   Z    |   RCODE   |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                    QDCOUNT                    |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                    ANCOUNT                    |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                    NSCOUNT                    |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                    ARCOUNT                    |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

     

    --------------------------------------------------------------

     

    DNS请求

                                    1  1  1  1  1  1

      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                                               |

    /                     QNAME                     /

    /                                               /

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                     QTYPE                     |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                     QCLASS                    |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

     

    QNAME   域名被编码为一些labels序列,每个labels包含一个字节表示后续字符串长度,

            以及这个字符串,以0长度和空字符串来表示域名结束。

            注意这个字段可能为奇数字节,不需要进行边界填充对齐。

            

    QTYPE   2个字节表示查询类型,.取值可以为任何可用的类型值,以及通配码来表示所有的资源记录。

    1   A   IPv4地址。

    2   NS  名字服务器。

    5   CNAME   规范名称。定义主机的正式名字的别名。

    6   SOA 开始授权。标记一个区的开始。

    11  WKS 熟知服务。定义主机提供的网络服务。

    12  PTR 指针。把IP地址转化为域名。

    13  HINFO   主机信息。给出主机使用的硬件和操作系统的表述。

    15  MX  邮件交换。把邮件改变路由送到邮件服务器。

    28  AAAA    IPv6地址。

    252 AXFR    传送整个区的请求。

    255 ANY 对所有记录的请求。

     

    QCLASS 2个字节表示查询的协议类,比如,IN代表Internet。

     

    --------------------------------------------------------------

     

    DNS响应

     

                                    1  1  1  1  1  1

      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                                               |

    /                                               /

    /                      NAME                     /

    |                                               |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                      TYPE                     |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                     CLASS                     |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                      TTL                      |

    |                                               |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    |                   RDLENGTH                    |

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|

    /                     RDATA                     /

    /                                               /

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

     

    NAME    资源记录包含的域名

    TYPE    2个字节表示资源记录的类型,指出RDATA数据的含义

    CLASS   2个字节表示RDATA的类

    TTL     4字节无符号整数表示资源记录可以缓存的时间。0代表只能被传输,但是不能被缓存。单位:秒

    RDLENGTH        2个字节无符号整数表示RDATA的长度

    RDATA   不定长字符串来表示记录,格式根TYPE和CLASS有关。

            比如,TYPE是A,CLASS 是 IN,那么RDATA就是一个4个字节的ARPA网络地址。

  • 相关阅读:
    构造函数的继承
    创建一个不被销毁的空间 闭包小应用
    如何在Linux上恢复误删除的文件或目录
    一文详解 Ansible 自动化运维
    Shell 脚本编程最佳实践
    10 分钟看懂 Docker 和 K8S!
    BGP路由协议详解(完整版)
    浅析 Linux 中的零拷贝技术
    2020年DevOps工程师入门指南
    一条更新的SQL如何执行
  • 原文地址:https://www.cnblogs.com/549294286/p/5172396.html
Copyright © 2011-2022 走看看