DNS

DNS 8 NXRRSET vs 22 BADTRUNC

Both DNS 8 (NXRRSET) and 22 (BADTRUNC) belong to the DNS Response Codes (RCODEs) category. 8 indicates that rR Set that should exist does not. A required resource record set is missing from the zone. Meanwhile, 22 means that bad truncation. The TSIG record was truncated in a way that makes it impossible to verify the message signature.

描述

RR Set that should exist does not. A required resource record set is missing from the zone.

何时出现

A DNS UPDATE prerequisite expected a certain RRset to exist (e.g., an MX record), but the zone does not contain it.

如何修复

Create the missing RRset in the zone before retrying the update, or change the prerequisite to not require its existence.

描述

Bad truncation. The TSIG record was truncated in a way that makes it impossible to verify the message signature.

何时出现

A large DNS response was truncated (TC bit set) but the TSIG MAC was computed over the full message, making the truncated version unverifiable.

如何修复

Retry the query over TCP to avoid truncation. If using UDP, ensure your EDNS buffer size is large enough to receive the full signed response.

主要区别

1.

DNS 8: RR Set that should exist does not. A required resource record set is missing from the zone.

2.

DNS 22: Bad truncation. The TSIG record was truncated in a way that makes it impossible to verify the message signature.

3.

You encounter 8 when a DNS UPDATE prerequisite expected a certain RRset to exist (e.g., an MX record), but the zone does not contain it.

4.

You encounter 22 when a large DNS response was truncated (TC bit set) but the TSIG MAC was computed over the full message, making the truncated version unverifiable.

何时使用哪个

For 8 (NXRRSET): Create the missing RRset in the zone before retrying the update, or change the prerequisite to not require its existence. For 22 (BADTRUNC): Retry the query over TCP to avoid truncation. If using UDP, ensure your EDNS buffer size is large enough to receive the full signed response.

了解更多