使用 DNS 流水线查询 IPv4 和 IPv6

Query IPv4 and IPv6 with DNS pipelining

背景

我们已经看到一些 DNS servers 在单个 TCP 命令中阻​​止了 ipv4 和 ipv6 都是来自 DNS 的查询的查询

RFC says this is something called DNS pipelining, 6.2.1.1

查询

我正在尝试了解如何从命令行或 C 代码对此进行模拟。

我遇到了这个 link 但它不会发出单个查询,而是一个接一个地发出 2 个查询。那不是我需要的

基本上我需要一种方法来随意发出此类查询,以向客户证明他们的 DNS 有问题:)

任何指针如何实现这一点?我想知道 glibc/resolver 是怎么做到的。尝试在那里挖掘但无法弄清楚

有人可以指点我一些代码吗?

这可能是您要查找的内容:https://manpages.debian.org/experimental/bind-dnsutils/mdig.1.en.html

mdig is a multiple/pipelined query version of dig: instead of waiting for a response after sending each query, it begins by sending all queries. Responses are displayed in the order in which they are received, not in the order the corresponding queries were sent.