Domain-Name-System

github的IP地址被改變了嗎?

  • December 9, 2017

我今天遇到了一個問題,由於與 github 的連接問題,我在應用程序伺服器上的部署無法完成。

我注意到,當我使用Google DNS 伺服器執行 github.com 的 DNS 查找時,我得到了“正確/舊”的 IP 地址,這些地址也是由 guthub HERE官方記錄的。

root@server# host github.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

github.com has address 192.30.253.112
github.com has address 192.30.253.113
github.com mail is handled by 10 ALT4.ASPMX.L.GOOGLE.com.
github.com mail is handled by 10 ALT3.ASPMX.L.GOOGLE.com.
github.com mail is handled by 5 ALT1.ASPMX.L.GOOGLE.com.
github.com mail is handled by 1 ASPMX.L.GOOGLE.com.
github.com mail is handled by 5 ALT2.ASPMX.L.GOOGLE.com.

但是,當我使用我的託管服務提供商 DNS 伺服器時,我會得到不同的結果:

root@server# host github.com 213.133.98.98
Using domain server:
Name: 213.133.98.98
Address: 213.133.98.98#53
Aliases: 

github.com has address 18.195.85.27
github.com has address 35.159.8.160
github.com has address 18.194.104.89
github.com mail is handled by 1 ASPMX.L.GOOGLE.com.
github.com mail is handled by 10 ALT4.ASPMX.L.GOOGLE.com.
github.com mail is handled by 10 ALT3.ASPMX.L.GOOGLE.com.
github.com mail is handled by 5 ALT1.ASPMX.L.GOOGLE.com.
github.com mail is handled by 5 ALT2.ASPMX.L.GOOGLE.com.

當我聯繫我的提供商詢問他們為什麼提供這些結果時,他們說 githubs 的記錄已經改變。確實這似乎是正確的,因為當我再次使用 google dns 伺服器執行 githubs dns 記錄的跟踪時,我得到了“新”記錄:

root@server# dig github.com +trace @8.8.8.8
...    
text omitted
...
github.com.     172800  IN  NS  ns-520.awsdns-01.net.
github.com.     172800  IN  NS  ns-421.awsdns-52.com.
github.com.     172800  IN  NS  ns-1707.awsdns-21.co.uk.
github.com.     172800  IN  NS  ns-1283.awsdns-32.org.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20171215054800 20171208043800 11324 com. mBRl9D0i8jmeYbtZzR527TfVtbq2x6RSECv23chq0usVGZzVCQz5BYbV JaWeaQ1QWRuTWz3snYFkQBaG7SLQbipDEaVaMgjQ9qnHitJxwzEYPTn0 mT5nweDT+IVqP3NpppB748HAr9IiqqNOar1IyQokv3S59E9cK+s1W3V0 Mik=
4KB3QDAGSO6KO9JK2O5F2FO8F4C5FTA2.com. 86400 IN NSEC3 1 1 0 - 4KB4PTQQ5CTA7POCTGM7RUFC8B1RKTEU NS DS RRSIG
4KB3QDAGSO6KO9JK2O5F2FO8F4C5FTA2.com. 86400 IN RRSIG NSEC3 8 2 86400 20171212052031 20171205041031 11324 com. DmETcOQrFR+iFYhCH4xGJT+khPaTF4Ay50o+FrdpBvRTOPT9WTFf1wOF Ew3cQlBGHdwS2TiT+tLsUlshkmiKZpdH753Lac9Z0ZBU6fcB/PWOwMQX NGPWwYZFrGb8I2QsEvQreBM+WcftfdHGXHn5ziUx8phz1lbJuQXhVYyl LBk=
;; Received 840 bytes from 192.43.172.30#53(i.gtld-servers.net) in 17 ms

github.com.     60  IN  A   18.195.85.27
github.com.     60  IN  A   18.194.104.89
github.com.     60  IN  A   35.159.8.160
github.com.     900 IN  NS  ns-1283.awsdns-32.org.
github.com.     900 IN  NS  ns-1707.awsdns-21.co.uk.
github.com.     900 IN  NS  ns-421.awsdns-52.com.
github.com.     900 IN  NS  ns-520.awsdns-01.net.
github.com.     900 IN  NS  ns1.p16.dynect.net.
github.com.     900 IN  NS  ns2.p16.dynect.net.
github.com.     900 IN  NS  ns3.p16.dynect.net.
github.com.     900 IN  NS  ns4.p16.dynect.net.
;; Received 307 bytes from 205.251.198.171#53(ns-1707.awsdns-21.co.uk) in 12 ms

為什麼當我使用 google DNS 查詢 github.com 時,它會重新執行“舊 ips”,但是當我使用 dns 跟踪時,它會返回新的?Google dns 是否返回記憶體記錄(甚至在一天之後)?

另一方面,github會在不通知任何人的情況下更改他們的IP地址嗎?他們的文件沒有提到那些“新”的IP地址,據我研究,每當他們做出這樣的改變時,他們也會在他們的部落格上發布。

alex.forencich 對您的問題的評論可能解釋了您所看到的。

github.com 的 A 記錄可能會有所不同,具體取決於您從哪裡詢問。請記住,上一句中的“您”實際上是指您的伺服器的解析器正在與之通信的任何遞歸 DNS 伺服器。您的 ISP 的 DNS 伺服器使用位於德國法蘭克福的 AWS 的 eu-central-1 可用區中的 IP 進行響應 - 完全合理,因為您的 ISP 是 Hetzner。

我不知道 Google 的公共遞歸 DNS 伺服器是否有效,但是當您詢問時得到的答案似乎是針對北美的。

回到您最初詢問的原因,如果出於某種原因您需要知道您的內部主機將要與之交談的 IP,您需要查看它們用於 DNS 伺服器的內容,並使用相同的伺服器來獲取 IP 以用於您的防火牆規則。沒有一個“真正的”答案,所以你應該瞄準的是一致性。

引用自:https://serverfault.com/questions/887189