dig 中的主机和域有什么区别?

dig 中的主机和域有什么区别?

运行时,dig您可以指定“服务器”(您进行查询的 DNS 服务器)、“域”和“主机”。由于“主机”不是可选的,我猜这就是您想要解决的问题。但您也可以指定一个“域”。我认为如果我们unix.stackexchange.com以 为例,“主机”可能是unix,“域”可能是stackexchange.com,但是dig stackexchange.com unix似乎没有检索 的 dns 记录unix.stackexchange.com

我所指的“主机”和“域”是下面帮助行中列出的内容。

(澄清一下,我知道这是dig unix.stackexchange.com可行的,我在挖掘帮助热线中询问“主机”和“域”的含义)

$ dig -v
DiG 9.16.44-Debian
$ dig -h
Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}
            {global-d-opt} host [@local-server] {local-d-opt}
            [ host [@local-server] {local-d-opt} [...]]
Where:  domain    is in the Domain Name System
        q-class  is one of (in,hs,ch,...) [default: in]
        q-type   is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]
                 (Use ixfr=version for type ixfr)
        q-opt    is one of:
                 -4                  (use IPv4 query transport only)
                 -6                  (use IPv6 query transport only)
                 -b address[#port]   (bind to source address/port)
                 -c class            (specify query class)
                 -f filename         (batch mode)
                 -k keyfile          (specify tsig key file)
                 -m                  (enable memory usage debugging)
                 -p port             (specify port number)
                 -q name             (specify query name)
                 -r                  (do not read ~/.digrc)
                 -t type             (specify query type)
                 -u                  (display times in usec instead of msec)
                 -x dot-notation     (shortcut for reverse lookups)
                 -y [hmac:]name:key  (specify named base64 tsig key)
        d-opt    is of the form +keyword[=value], where keyword is:
                 +[no]aaflag         (Set AA flag in query (+[no]aaflag))
                 +[no]aaonly         (Set AA flag in query (+[no]aaflag))
...
        global d-opts and servers (before host name) affect all queries.
        local d-opts and servers (after host name) affect only that lookup.
        -h                           (print help and exit)
        -v                           (print version and exit)

答案1

我认为这只是描述中的一个错误23年前完成的重构。帮助文本来自语法正确的内容:

"Usage:  dig [@server] [domain] [q-type] [q-class] {q-opt} {d-opt}\n"
"where:  server,\n"
"        domain   are in the Domain Name System\n"

对此(请注意它仍然说“在域名系统中”,但现在主语是单数“域”):

"Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}\n"
"        {global-d-opt} host [@local-server] {local-d-opt}\n"
"        [ host [@local-server] {local-d-opt} [...]]\n"
"Where:  domain   are in the Domain Name System\n"

如果您检查这些更改,您会发现它们几乎完全是为了更改选项的分配方式(全局与每次查找),以及选择主机/域/名称/无论您调用它的代码被查找本身是不变的。它没有在解析本身中添加任何新的域与主机区别。我想提交的作者混淆了这些术语,因为他们似乎也在host大约同一时间进行工作(并host使用了“主机名”)。

此更改早于dig(1)联机帮助页本身,该联机帮助页发布几个月后。联机帮助页避免使用“域”、“主机”和“主机名”标签,而是使用第四个标签“名称”,使用[@server] ... [name] [type] [class] [queryopt...]仍然可见的更简单的格式。

答案2

Dig 的可选host参数是要将查询发送到的本地计算机的名称。它不是完全限定域名的“主机”部分。 (即,不是unix来自unix.stackexchange.com)。参数domain是您要查找的名称。 (IE,unix.stackexchange.com

因此,如果您的本地 DNS 解析器计算机名为“mydns”,则dig对该名称的地址的查询unix.stackexchange.com将是:

dig unix.stackexchange.com mydns

虽然它通常更像是:

dig @mydns unix.stackexchange.com

或者,如果您想dig询问计算机的默认解析程序(可能是同一台计算机上的进程),它可以简单如下:

dig unix.stackexchange.com

对我来说返回:

% dig unix.stackexchange.com

; <<>> DiG 9.10.6 <<>> unix.stackexchange.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34418
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;unix.stackexchange.com.        IN  A

;; ANSWER SECTION:
unix.stackexchange.com. 300 IN  A   172.64.144.30
unix.stackexchange.com. 300 IN  A   104.18.43.226

;; Query time: 25 msec
;; SERVER: 2001:558:feed::1#53(2001:558:feed::1)
;; WHEN: Mon Dec 11 23:17:58 PST 2023
;; MSG SIZE  rcvd: 83

相关内容