ping 回复中的主机名来自哪里?

Where does the hostname in ping reply come from?

当我从同一子网中的机器 ping 一个 IP 地址时,以下是回复:

root@dia11:~# ping B.test.com
PING B.test.com (10.1.128.76) 56(84) bytes of data.
64 bytes from A.test.com (10.1.128.76): icmp_seq=1 ttl=62 time=4.85 ms
64 bytes from A.test.com (10.1.128.76): icmp_seq=2 ttl=62 time=5.44 ms

但是,当我对该 IP 地址执行 PTR 记录挖掘时,显示了一个不同的主机名:

; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> -x 10.1.128.76
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42254
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;76.128.1.10.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
76.128.1.10.in-addr.arpa. 3600  IN      PTR     B.test.com

;; Query time: 0 msec
;; SERVER: 10.1.129.9#53(10.1.129.9)
;; WHEN: Sat Sep 19 22:41:59 HKT 2020
;; MSG SIZE  rcvd: 87

据我所知,“B.test.com”是 DNS 设置的“正确”主机名。

所以我想知道为什么在 ping 回复中显示“A.test.com”,它来自哪里。

有人对此有想法吗?

它来自直接 DNS 查找。 ping 向解析器询问主机 B.test.com 的 IP 地址并获得 10.1.128.76ping 不使用反向查找。

我猜到test.com区有以下记录

A    A    10.1.128.76
B    A    10.1.128.76

A    A    10.1.128.76
B    CNAME A.example.com.

并在反向区128.1.10.in-addr.arpa

76  IN PTR A.example.com.

这是另一个例子(IP V6 结果省略)

$host www.google.com
www.google.com has address 172.217.5.100
$dig -x 172.217.5.100

; <<>> DiG 9.10.6 <<>> -x 172.217.5.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16073
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;100.5.217.172.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
100.5.217.172.in-addr.arpa. 21457 IN    PTR sfo03s07-in-f4.1e100.net.
100.5.217.172.in-addr.arpa. 21457 IN    PTR sfo03s07-in-f100.1e100.net.

;; Query time: 13 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Sep 19 23:28:06 PDT 2020
;; MSG SIZE  rcvd: 124