目录
DNS应答以太网数据帧
1. 数据链路层
1.1 以太网首部:(目的MAC地址6字节)(源MAC地址6字节)(帧类型2字节)共14字节
1.2 以太网首部数据
2. 网络层
2.1 IP协议头部共20个字节
2.2 IP协议头部数据
3. 传输层
3.1 UDP头部共8字节
3.2 UDP头部数据
4. 应用层
4.1 DNS应答数据报
4.2 DNS协议头部 (12字节)
4.3 查询问题部分 (19字节)
4.4 应答资源记录1 (30字节)
4.5 应答资源记录2 (16字节)
4.6 应答资源记录3 (16字节)
4.7 授权资源记录1 (18字节)
4.8 授权资源记录2 (18字节)
4.9 授权资源记录3 (18字节)
4.10 授权资源记录4 (18字节)
4.11 授权资源记录5 (18字节)
4.12 额外资源记录1
4.13 额外资源记录2
4.14 额外资源记录3
4.15 额外资源记录4
4.16 额外资源记录5
4.17 额外资源记录6
4.18 额外资源记录7
4.19 额外资源记录8
4.20 额外资源记录9
本文是以下博文链接的延续,看完整的DNS查询和应答报文解析,可先阅读以下博文
DNS查询报文分析-CSDN博客
DNS应答以太网数据帧
3c:6a:48:e2:d5:67 > 00:0c:29:83:72:68, ethertype IPv4 (0x0800), length 393: 192.168.0.1.domain > 192.168.0.155.48516: 50690 3/5/9 CNAME www.a.shifen.com., A 183.240.98.161, A 183.240.98.198 (351)
0x0000: 000c 2983 7268 3c6a 48e2 d567 0800 4574 ..).rh<jH..g..Et
0x0010: 017b 4c5f 0000 3411 b6b2 c0a8 0001 c0a8 .{L_..4.........
0x0020: 009b 0035 bd84 0167 933f c602 8180 0001 ...5...g.?......
0x0030: 0003 0005 0009 0377 7777 0562 6169 6475 .......www.baidu
0x0040: 0363 6f6d 0000 0100 01c0 0c00 0500 0100 .com............
0x0050: 0001 2c00 1203 7777 7701 6106 7368 6966 ..,...www.a.shif
0x0060: 656e 0363 6f6d 00c0 2b00 0100 0100 0001 en.com..+.......
0x0070: 2c00 04b7 f062 a1c0 2b00 0100 0100 0001 ,....b..+.......
0x0080: 2c00 04b7 f062 c6c0 2f00 0200 0100 0002 ,....b../.......
0x0090: 3100 0603 6e73 34c0 2fc0 2f00 0200 0100 1...ns4././.....
0x00a0: 0002 3100 0603 6e73 31c0 2fc0 2f00 0200 ..1...ns1././...
0x00b0: 0100 0002 3100 0603 6e73 33c0 2fc0 2f00 ....1...ns3././.
0x00c0: 0200 0100 0002 3100 0603 6e73 35c0 2fc0 ......1...ns5./.
0x00d0: 2f00 0200 0100 0002 3100 0603 6e73 32c0 /.......1...ns2.
0x00e0: 2fc0 6900 0100 0100 0000 ec00 040e d7b1 /.i.............
0x00f0: e5c0 6900 0100 0100 0000 ec00 046f 1404 ..i..........o..
0x0100: 1cc0 9f00 0100 0100 0000 2200 04b4 4c4c .........."...LL
0x0110: 5fc0 7b00 0100 0100 0000 2b00 046e f244 _.{.......+..n.D
0x0120: 2ac0 b100 0100 0100 0000 d000 04dc b521 *..............!
0x0130: 20c0 8d00 0100 0100 0000 3100 0424 9b84 ..........1..$..
0x0140: 0cc0 8d00 0100 0100 0000 3100 0499 03ee ..........1.....
0x0150: a2c0 9f00 1c00 0100 0001 f100 1024 0e00 .............$..
0x0160: bfb8 0110 0600 0000 ffb0 4f34 6bc0 9f00 ..........O4k...
0x0170: 1c00 0100 0001 f100 1024 0e09 4006 0300 .........$..@...
0x0180: 0a00 0000 ffb0 8d23 9d .......#.
1. 数据链路层
1.1 以太网首部:(目的MAC地址6字节)(源MAC地址6字节)(帧类型2字节)共14字节
1.2 以太网首部数据
000c 2983 7268 3c6a 48e2 d567 0800
0x000c 2983 7268:对应的是目的MAC地址6字节,也就是接收方主机192.168.0.155的MAC地址
0x3c6a 48e2 d567:对应的是源MAC地址6字节,也就是发送方主机192.168.0.1的MAC地址
0x0800:对应的是帧类型,是用来区分上层协议的(即网络层),0x0800表示这帧是IP协议数据报,我们就可以根据这个帧类型在网络层怎么去解析数据报了
2. 网络层
2.1 IP协议头部共20个字节
2.2 IP协议头部数据
4574 017b 4c5f 0000 3411 b6b2 c0a8 0001 c0a8 009b
0x4574:对应的是(4位版本号)(4位头部长度)(8位服务类型TOS)。
高字节数据 0x45 中的前4位是IP版本号,值为 4 说明这是IPv4
高字节数据 0x45 中的低4位是IP头部长度,标识IP头部有多少个4字节,值为 5 说明IP头部有20字节。
低字节数据 0x74 是8位数据报服务类型。
0x017b:对应的是16位总长度(单位:字节),即在该层中报文(包括IP协议头部和上层数据报) 379 字节
0x4c5f:对应的是 16位标识,唯一标识主机发送的每一个数据报,主机192.168.0.155查询时,随机生成的,所以应答时,应该原封不动将该值发回给查询的主机。
0x0000:该16位数据对应的是(3位标志)(13位片偏移),高3位为 0b000,最高位为 0,保留位,中间位为 0,表示允许分片,低位为 0 表示这是最后一个分片。因为这个数据报的总长度为 0x017b,即 379 字节,没有分片,所以这13位的值为0
0x3411:对应的是(8位生存时间TTL)(8位协议)
高8位为 0x34,即十进制 52,数据报到达目的地之前允许经过的路由器跳数。
低8位为 0x11,即十进制 17,是用来区分上层协议(即传输层),在 /etc/protocols 可以查询,比如,1是 icmp,6是 tcp,17是 udp
0xb6b2:对应的是16位头部校验和(header checksum) 由发送端填充, 接收端对其使用CRC算法以检验IP数据报头部(注意, 仅检验头部) 在传输过程中是否损坏。
0xc0a8 0001:对应的是32位发送方IP地址,应答的发送方是网关 192.168.0.1,用点分十六进制就是 0xc0.80.0.1
0xc0a8 009b:对应的是32位接收方IP地址,我们的接收方是主机 192.168.0.155,用点分十六进制就是 0xc0.80.0.9b
3. 传输层
3.1 UDP头部共8字节
3.2 UDP头部数据
0035 bd84 0167 933f
0x0035:对应的是16位源端口号,即十进制 53
0xbd84:对应的是16位目的端口口,即十进制 48516
0x0167:对应的是16位UDP长度,即十进制 359
0x933f:对应的是16位UDP校验和
4. 应用层
4.1 DNS应答数据报
c602 8180 0001 ...5...g.?......
0x0030: 0003 0005 0009 0377 7777 0562 6169 6475 .......www.baidu
0x0040: 0363 6f6d 0000 0100 01c0 0c00 0500 0100 .com............
0x0050: 0001 2c00 1203 7777 7701 6106 7368 6966 ..,...www.a.shif
0x0060: 656e 0363 6f6d 00c0 2b00 0100 0100 0001 en.com..+.......
0x0070: 2c00 04b7 f062 a1c0 2b00 0100 0100 0001 ,....b..+.......
0x0080: 2c00 04b7 f062 c6c0 2f00 0200 0100 0002 ,....b../.......
0x0090: 3100 0603 6e73 34c0 2fc0 2f00 0200 0100 1...ns4././.....
0x00a0: 0002 3100 0603 6e73 31c0 2fc0 2f00 0200 ..1...ns1././...
0x00b0: 0100 0002 3100 0603 6e73 33c0 2fc0 2f00 ....1...ns3././.
0x00c0: 0200 0100 0002 3100 0603 6e73 35c0 2fc0 ......1...ns5./.
0x00d0: 2f00 0200 0100 0002 3100 0603 6e73 32c0 /.......1...ns2.
0x00e0: 2fc0 6900 0100 0100 0000 ec00 040e d7b1 /.i.............
0x00f0: e5c0 6900 0100 0100 0000 ec00 046f 1404 ..i..........o..
0x0100: 1cc0 9f00 0100 0100 0000 2200 04b4 4c4c .........."...LL
0x0110: 5fc0 7b00 0100 0100 0000 2b00 046e f244 _.{.......+..n.D
0x0120: 2ac0 b100 0100 0100 0000 d000 04dc