github 的 IP 地址是否已更改?

gio*_*nda 4 domain-name-system ip-address github

我今天遇到了一个问题,由于与 github 的连接问题,我在应用服务器上的部署无法完成。

我注意到,当我使用谷歌 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.
Run Code Online (Sandbox Code Playgroud)

但是,当我使用我的托管服务提供商 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.
Run Code Online (Sandbox Code Playgroud)

当我联系我的提供商询问他们为什么提供这些结果时,他们说 github 的记录已更改。事实上,这似乎是正确的,因为当我再次使用 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
Run Code Online (Sandbox Code Playgroud)

为什么当我使用 google DNS 查询 github.com 时,它会重新运行“旧 ips”,但是当我使用 dns 跟踪时,它会返回新的 ips?google dns 是否返回缓存记录(即使是在一天之后)?

另一方面,github 会不会在不通知任何人的情况下更改他们的 IP 地址?他们的文档没有提到那些“新”IP 地址,据我研究,每当他们做出这样的改变时,他们也会在他们的博客上发布。

Den*_*ker 7

如果您必须依赖 IP 地址,并且我可以理解您的评论,那么您应该定期刷新它们。GitHub 在https://api.github.com/meta上发布他们使用的 IP 地址


Tho*_*mBR 5

不要依赖 IP 地址(这不是 60 年代),只要服务器更换提供商、实施 CDN、镜像或一组负载均衡器,它们就会发生变化。域名更改的可能性较小。

如果他们在后端执行任何操作,则无需通知任何人,他们只需镜像基础架构、更改提供商并更改域记录即可。照常营业。这很简单,世界各地的系统管理员一直在这样做。


小智 2

alex.forencich 对您问题的评论可能解释了您所看到的内容。

github.com 的 A 记录可能会有所不同,具体取决于您提出请求的位置。请记住,上一句中的“您”实际上指的是您的服务器解析器正在与之通信的任何递归 DNS 服务器。您的 ISP 的 DNS 服务器使用位于德国法兰克福的 AWS eu-central-1 可用区中的 IP 进行应答 - 完全合理,因为您的 ISP 是 Hetzner。

我不知道 Google 的公共递归 DNS 服务器是否有效,但当您询问时得到的答案似乎是针对北美的。

回到您最初询问的原因,如果出于某种原因您需要知道内部主机将要与之通信的 IP,您需要查看他们的 DNS 服务器使用的内容,并使用相同的服务器来获取 IP 以用于您的防火墙规则。没有一个“真正的”答案,所以你应该追求的是一致性。