DNS 查询是什么样的?

What does a DNS query look like?

我想用 Go 做一个简单的 DNS 服务器。我知道 DNS 的工作原理,但我不能 100% 确定 DNS 查询的实际外观。

例如,HTTP GET 请求如下所示:

GET /index.html HTTP/1.1

所以我的问题是,DNS 查询看起来像这样吗:

QUERY google.com A

或者 DNS 服务器是否解释被查询域名的二进制表示?

您可以查看 miekg/dns 项目。
它构建 Msg compose of a MsgHdr which includes the QUERY code (amongst other OpCodes)。

您可以在“Chapter 15 DNS Messages”中看到的消息 Header 之后。