Ping

為什麼 ping 解析到與 traceroute 不同的地址?和猞猁?

  • December 5, 2017

我們有一個使用 centos 的託管伺服器,最近它開始出現奇怪的行為:

root@server [/tmp]# ping www.google.com
PING www.google.com (172.217.8.196) 56(84) bytes of data.
64 bytes from ord37s09-in-f4.1e100.net (172.217.8.196): icmp_seq=1 ttl=53 time=24.8 ms

所以這看起來相當不錯。

在這裡它變得很奇怪。我們有自己的伺服器而不是Google伺服器!

root@server [/tmp]# traceroute www.google.com
traceroute to www.google.com (75.102.21.14), 30 hops max, 60 byte packets
1  server.plannersys.net (75.102.21.14)  0.041 ms  0.017 ms  0.015 ms

然而,Nslookup 看起來不錯:

root@server [/tmp]# nslookup
> www.google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   www.google.com
Address: 172.217.8.196
> ^C

wget 和 lynx 也為我們提供了我們自己的伺服器。

root@server [/tmp]# wget https://www.google.com
--2017-12-04 11:50:56--  https://www.google.com/
Resolving www.google.com... 75.102.21.14
Connecting to www.google.com|75.102.21.14|:443... connected.
ERROR: no certificate subject alternative name matches
       requested host name “www.google.com”.
To connect to www.google.com insecurely, use ‘--no-check-certificate’.

And with lynx:
SSL error:host(www.google.com)!=cert(troutaccess.com)-Continue? (y)

這可能是什麼原因?為什麼 traceroute 和 wget 和 lynx 使用不同的地址?

您沒有使用完全限定域名。 www.google.com不是完全限定(人類可讀形式)的域名。它不以點結尾。

您的 DNS 客戶端庫中還配置了一個搜尋路徑plannersys.net.和一個萬用字元 DNS 資源記錄*.plannersys.net.

作為這些的結果,wgettranceroute查找了完全限定的域名www.google.com.plannersys.net.並收到了 IP 地址 75.102.21.14 作為結果。請記住,您的 DNS 客戶端庫使用配置的搜尋路徑將非完全限定域名轉換為完全限定域名,然後發出完全限定名稱的查找。

nslookup不同,因為它使用不同的內部 DNS 客戶端庫。有趣的是,這是一個與沒有區別的實例ping,但這可能是因為您的 DNS 客戶端庫配置了多個代理 DNS 伺服器,這些代理 DNS 伺服器並不都提供相同的 DNS 名稱空間視圖,或者您有類似systemd-resolved的東西這正在動態更改您的 DNS 客戶端配置。您的問題中關於您的 DNS 客戶端庫的資訊為零,因此您提供的資訊不足以讓任何人確定這是為什麼。

進一步閱讀

引用自:https://unix.stackexchange.com/questions/408890