美文网首页
【HTTP-DNS专题一】DNS协议报文(史上最详细)

【HTTP-DNS专题一】DNS协议报文(史上最详细)

作者: 口子窖 | 来源:发表于2021-12-16 17:02 被阅读0次

    DNS协议报文

    1、DNS协议报文

    报文 中文 长度 说明
    Header 1.1 报文头 12
    Question 1.2 查询请求
    Answer 1.3 应答
    Authority 1.4 授权应答
    Additional 1.5 附加信息

    1.1、Header部分

    报文 中文 长度 说明
    TransactionID 会话标识 2 客户端设置,响应报文会原样带回,用于客户端区分不同的请求应答
    Flag 标志 2 详细描述见1.1.1 00110000000
    QDCOUNT 查询问题区域的数量 2 对应1.2部分
    Answers 回答区域的数量 2 对应1.3部分
    Authoritative 授权区域的数量 2 对应1.4部分
    Additional 附加区域的数量 2 对应1.5部分

    1.1.1、Flag说明

    QR OPcode AA TC RD RA Z Rcode
    1 4 1 1 1 1 3 4
    • QR(Response):查询请求/响应的标志信息。查询请求时,值为 0;响应时,值为 1。
    • Opcode:操作码。其中,0 表示标准查询;1 表示反向查询;2 表示服务器状态请求。
    • AA(Authoritative):授权应答,该字段在响应报文中有效。值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。
    • TC(Truncated):表示是否被截断。值为 1 时,表示响应已超过 512 字节并已被截断,只返回前 512 个字节。
    • RD(Recursion Desired):期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询。
    • RA(Recursion Available):可用递归。该字段只出现在响应报文中。当值为 1 时,表示服务器支持递归查询。
    • Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。
    • rcode(Reply code):返回码字段,表示响应的差错状态。当值为 0 时,表示没有错误;当值为 1 时,表示报文格式错误(Format error),服务器不能理解请求的报文;当值为 2 时,表示域名服务器失败(Server failure),因为服务器的原因导致没办法处理这个请求;当值为 3 时,表示名字错误(Name Error),只有对授权域名解析服务器有意义,指出解析的域名不存在;当值为 4 时,表示查询类型不支持(Not Implemented),即域名服务器不支持查询类型;当值为 5 时,表示拒绝(Refused),一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。

    1.2、Question部分

    报文 中文 长度 说明
    QNAME 0x00结束 长度+内容+长度+内容……
    QTYPE 查询类型 2
    QCLASS 查询类 2

    1.2.1、QTYPE说明

    类型 助记符 说明
    1 A 由域名获得IPv4地址
    2 NS 查询域名服务器
    3 MD 过期类型
    4 MF 过期类型
    5 CNAME 查询规范名称
    6 SOA 开始授权
    7 MB 指定邮箱域名
    8 MG 指定邮件组成员
    9 MR 指定邮件重命名域名
    A NULL 指定空的资源记录
    B WKS 熟知服务
    C PTR 把IP地址转换成域名
    D HINFO 主机信息
    E MINFO 指定邮箱或列表信息
    F MX 邮件交换
    10 TXT 文本信息
    28 AAAA 由域名获得IPv6地址
    252 AXFR 传送整个区的请求
    255 ANY 对所有记录的请求

    1.2.2、QCLASS说明

    数值 类型 说明
    01 IN Internet类别
    02 CSNET 过期类型
    03 Chaos
    04 MIT Athena Hesiod

    1.3、应答部分(Answer、Authority、Additional)

    报文 中文 长度 说明
    NAME 0x00结束
    TYPE 查询类型 2
    CLASS 查询类 2
    TimeToLive 生存时间 4
    DaTaLength 资源数据长度 2
    DaTa 资源数据 DaTaLength

    NAME:不定长,通常以0x00结束。第一个字节是长度,后面是内容,再长度,后面是内容

    C0 ~~:C0标识需要启用偏移量,后面是长度

    2、报文案例解析说明

    2.1、请求包(方便阅读换过行):

    55 12

    01 00

    00 01

    00 00

    00 00

    00 00

    05 63 74 6c 64 6c 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 00

    00 01

    00 01

    -----head----
    TransactionID:5512
    Flag:0x0100->0000000100000000,QR-0 RD-1
    QDCOUNT:0x0001 
    Answers:0x0000
    Authoritative:0x0000
    Additional:0x0000
    ----Question----
    QNAME:05 63 74 6c 64 6c 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 00
    0x05->0x63746c646c->ctldl
    0x0d->0x77696e646f7773757064617465->windowsupdate
    0x03->0x636f6d->com
    0x00->结束
    QNAME->ctldl.windowsupdate.com
    QTYPE:0x0001->A 由域名获得IPv4地址
    QCLASS:0x0001-> In Internet类别
    

    2.2、应答包(方便阅读换过行):

    55 12

    81 80

    00 01

    00 0d

    00 00

    00 00

    05 63 74 6c 64 6c 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 00 (此行长度,25)

    00 01

    00 01

    c0 0c

    00 05

    00 01

    00 00 02 f7

    00 1c

    07 77 75 2d 73 68 69 6d 0e 74 72 61 66 66 69 63 6d 61 6e 61 67 65 72 03 6e 65 74 00 (此行长度,28)

    c0 35

    00 05

    00 01

    00 00 00 1b

    00 26

    08 64 6f 77 6e 6c 6f 61 64 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 01 61 06 62 64 79 64 6e 73 c0 20 (此行长度,38)

    c0 5d

    00 05

    00 01

    00 00 00 1b

    00 17

    0c 6f 70 65 6e 63 64 6e 6d 73 64 6c 32 07 6a 6f 6d 6f 64 6e 73 c0 20 (此行长度,23)

    c0 8f

    00 01

    00 01

    00 00 00 0e

    00 04

    2a ca 98 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 3b 24 cb 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 24 67 ec 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 3c bc 42 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 01 b6 30 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 24 67 f6 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 0e d7 59 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 31 4f e1 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 1b 94 bc 2b

    c0 8f 00 01 00 01 00 00 00 0e 00 04 2a 51 54 2b

    -----head----
    TransactionID:5512
    Flag:0x8180->1000000110000000,QR-1 RD-1 RA-1
    QDCOUNT:0x0001 
    Answers:0x000d->13个
    Authoritative:0x0000
    Additional:0x0000
    
    ----Question----
    QNAME:05 63 74 6c 64 6c 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 00
    0x05->0x63746c646c->ctldl
    0x0d->0x77696e646f7773757064617465->windowsupdate
    0x03->0x636f6d->com
    0x00->结束
    QNAME->ctldl.windowsupdate.com
    QTYPE:0x0001->A 由域名获得IPv4地址
    QCLASS:0x0001-> In Internet类别
    
    ----Answer1----
    NAME:0xc00c,c0代表偏移,偏移量是0c->长度12,即05 63 74 6c 64 6c 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 00
    即:ctldl.windowsupdate.com
    TYPE:0x0005->CNAME
    CLASS:0x0001->In Internet类别
    TimeToLive:0x000002f7 ->759
    DaTaLength:0x001c->长度28
    DaTa:07 77 75 2d 73 68 69 6d 0e 74 72 61 66 66 69 63 6d 61 6e 61 67 65 72 03 6e 65 74 00
    0x07->0x77752d7368696d->wu-shim
    0x0e->0x747261666669636d616e61676572->trafficmanager
    0x03->0x6e6574->net
    即wu-shim.trafficmanager.net
    
    ----Answer2----
    NAME:0xc035,c0代表偏移,偏移量是35,即长度53
    07 77 75 2d 73 68 69 6d 0e 74 72 61 66 66 69 63 6d 61 6e 61 67 65 72 03 6e 65 74 00
    即wu-shim.trafficmanager.net
    TYPE:0x0005->CNAME
    CLASS:0x0001->In Internet类别
    TimeToLive:0x0000001b ->27
    DaTaLength:0x0026->长度38
    DaTa:08 64 6f 77 6e 6c 6f 61 64 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 01 61 06 62 64 79 64 6e 73 c0 20
    0x08->0x646f776e6c6f6164->download
    0x0d->0x77696e646f7773757064617465->windowsupdate
    0x03->0x636f6d->com
    0x01->0x61->a
    0x06->0x626479646e73->bdydns
    0xc020->0x03636f6d
    即:download.windowsupdate.com.a.bdydns.com
    
    ----Answer3----
    NAME:0xc08f,c0代表偏移,偏移量是8f,即长度143
    即08 64 6f 77 6e 6c 6f 61 64 0d 77 69 6e 64 6f 77 73 75 70 64 61 74 65 03 63 6f 6d 01 61 06 62 64 79 64 6e 73 c0 20 
    即:download.windowsupdate.com.a.bdydns.
    TYPE:0x0005->CNAME
    CLASS:0x0001->In Internet类别
    TimeToLive:0x0000001b ->27
    DaTaLength:0x0017->长度23
    DaTa:0c 6f 70 65 6e 63 64 6e 6d 73 64 6c 32 07 6a 6f 6d 6f 64 6e 73 c0 20
    0c :6f 70 65 6e 63 64 6e 6d 73 64 6c 32->opendmd2
    07 :6a 6f 6d 6f 64 6e 73->jomodns
    c0 20->com
    即opendmd2.jomodns.com
    
    ----Answer4----
    NAME:0xc05d,c0代表偏移,偏移量是5d,即长度93
    0c 6f 70 65 6e 63 64 6e 6d 73 64 6c 32 07 6a 6f 6d 6f 64 6e 73 c0 20
    即opendmd2.jomodns.com
    TYPE:0x0001->A 由域名获得IPv4地址
    CLASS:0x0001->In Internet类别
    TimeToLive:0x0000000e ->14
    DaTaLength:0x0004->长度4
    DaTa:0x2a 0xca 0x98 0x2b->42.202.152.43
    
    ----Answer5----
    ----Answer6----
    ----Answer7----
    ----Answer8----
    ----Answer9----
    ----Answer10----
    ----Answer11----
    ----Answer12----
    ----Answer13----
    

    3、参考

    报文示例

    RFC文档

    16位转字符

    进制转换

    相关文章

      网友评论

          本文标题:【HTTP-DNS专题一】DNS协议报文(史上最详细)

          本文链接:https://www.haomeiwen.com/subject/wkpvfrtx.html