Ping
為什麼 ping 解析到與 traceroute 不同的地址?和猞猁?
我們有一個使用 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.
。作為這些的結果,
wget
並tranceroute
查找了完全限定的域名www.google.com.plannersys.net.
並收到了 IP 地址 75.102.21.14 作為結果。請記住,您的 DNS 客戶端庫使用配置的搜尋路徑將非完全限定域名轉換為完全限定域名,然後發出完全限定名稱的查找。
nslookup
不同,因為它使用不同的內部 DNS 客戶端庫。有趣的是,這是一個與沒有區別的實例ping
,但這可能是因為您的 DNS 客戶端庫配置了多個代理 DNS 伺服器,這些代理 DNS 伺服器並不都提供相同的 DNS 名稱空間視圖,或者您有類似systemd-resolved
的東西這正在動態更改您的 DNS 客戶端配置。您的問題中關於您的 DNS 客戶端庫的資訊為零,因此您提供的資訊不足以讓任何人確定這是為什麼。進一步閱讀
- 喬納森·德博因·波拉德 (2017)。什麼是 DNS 名稱限定。經常給出答案。
- 喬納森·德博因·波拉德 (2003)。為什麼結果
nslookup
與ping
. 經常給出答案。- 喬納森·德博因·波拉德 (2004)。DNS 診斷工具。經常給出答案。