在防火墙中我必须写入我需要访问的 IP 地址吗?许多站点前面都有负载平衡器,所以我想找到它的 IP。
如果我google.com
以
$ nslookup google.com
Server: 172.24.1.131
Address: 172.24.1.131#53
Non-authoritative answer:
Name: google.com
Address: 216.58.207.206
Name: google.com
Address: 2a00:1450:400f:80b::200e
问题
这是负载均衡器216.58.207.206
的 IPgoogle.com
吗?还是仅仅是负载均衡器后面某个主机的 IP?
如果它是一台工作主机,我如何找到负载均衡器的 IP?
答案1
对于您进行 DNS 查询的这个特定时间点,是的,216.58.207.206
是您访问时浏览器将连接的 IP 地址google.com
。无论它是负载平衡器还是真实的 Web 服务器,它仍然是您需要允许的地址。
然而,一般来说,仅允许特定的 IP 地址对于一般的互联网来说是行不通的。
- 网站通常使用 CDN 服务器来存储静态资产。CDN 服务器的 IP 地址会随时间而变化
- 网站使用多个独立的服务器来提供网页资源。例如,连接到
cnn.com
可使 Web 服务器从 30 多个域获取资源。 - 某些站点部署在 IP 地址每次部署时都会发生变化的环境中
为了在防火墙中创建有效的允许列表,您需要编写软件来持续监控允许的网站所需的所有资源。然后,该软件会在防火墙配置中添加更新 IP 地址。
实际上,通过 IP 地址允许现代网站是不可能的。
答案2
小型网站使用单个服务器或多个服务器并在其前面配备负载均衡器,但大型网站(如谷歌、微软或 Facebook)将使用多种技术的组合来提高可用性并从最近的地理位置满足您的请求。
这在实践中意味着,当你向 DNS 查询那些站点,您可以获取各种不同类型的 IP 地址来进行连接。
您需要一个能够根据请求的 URL 进行过滤并实施“允许访问google.com
”等策略的防火墙;如果您仅限于根据 IP 地址进行过滤,那么您根本无法跟上现代大型网站/服务的步伐。