0

我们生活在企业代理/防火墙后面,它只能使用静态 IP 规则而不是 FQDN。对于我们的项目,我们需要访问 Google Speech To Text API https://speech.googleapis.com:. 如果在公司网络之外,我们使用 gRPC 流 over HTTP/2 来做到这一点。

理想的场景如下所示:
Corporate network -> static IP in GCP -> forwarded gRPC stream to speech.googleapis.com

我们尝试的是创建一个全局静态外部 IP,但在配置负载均衡器时失败,因为它只能连接到虚拟机而不是 API。

或者,我们正在考虑使用nslookup speech.googleapis.comIP 地址范围的输出并每天更新它,尽管它看起来很“脏”。

我知道我们可以配置计算引擎资源/虚拟机并转发流量,但这看起来也不是一个优雅的解决方案。最好,我们可以使用现有的 GCP 网络组件来实现这一点。

非常感谢您的任何指点!

4

2 回答 2

0

Google 不会发布 CIDR 块供您使用。您每天都会为尝试将 IP 地址列入白名单而感到悲伤。Google 的大多数 API 服务都以全球前端 (GFE) 为前端。这使用 HTTP 主机标头来路由流量而不是 IP 地址,这将导致路由失败。

尝试查找 IP 地址可能是个问题。DNS 不必在每次调用中为名称解析返回所有 IP 地址。这意味着 DNS 查找现在可能会返回一组地址,而一个小时后可能会返回另一组地址。这是一个让您将 IP 地址列入白名单的悲痛示例。

解决方案:与您的防火墙供应商联系。

于 2019-10-16T12:54:24.397 回答
0

感谢 Google 的聪明网络工程师找到了解决方案,在此处发布以供将来参考:

您可以在内部 DNS 中使用 CNAME 将 *.googleapis.com 指向 private.googleapis.com。公共 DNS 中的这条记录指向两个公共 IP 地址 (199.36.153.8/30),这两个公共 IP 地址无法从公共 Internet 访问,而只能通过 VPN 隧道或云互连访问。

因此,如果可以在 GCP 中为项目设置 VPN 隧道(并且应该很容易,请参阅https://cloud.google.com/vpn/docs/how-to/creating-static-vpns),那么这个应该解决问题。

于 2019-10-24T07:51:27.470 回答