如何强制 TCP 数据包测试 DNS?

如何强制 TCP 数据包测试 DNS?

DNS 通常使用 UDP 数据包。但是,当响应大于一定大小时,它会切换到 TCP。

例如,如果我们可以在使用 DIG 或 NSLOOKUP 运行 DNS 查询命令时指定 TCP/UDP,那将非常有用。

有没有办法用 DIG 来做到这一点?

答案1

通过 dig 您可以使用+tcp

man dig说:

+[no]tcp
Use [do not use] TCP when querying name servers. The default behavior is to use UDP unless a type any or ixfr=N query is requested, in which case the default is TCP. AXFR queries always use TCP.

+[no]vc
Use [do not use] TCP when querying name servers. This alternate syntax to +[no]tcp is provided for backwards compatibility. The "vc" stands for "virtual circuit".

因此,两者都+tcp可以+vc实现您想要的功能,但+tcp对于您想要做的事情却更加清楚。

我自己使用 dig 并使用 Wireshark 跟踪流量,我发现dig google.com @8.8.8.8使用 UDP 和dig google.com @8.8.8.8 +tcp使用 TCP。

答案2

旧工具将此称为“虚拟电路”(vc)模式:

dig google.com @8.8.8.8 +vc

nslookup -vc google.com 8.8.8.8

Windows nslookup(交互模式):

nslookup> set vc

相关内容