我们生活在企业代理/防火墙的后面,该代理/防火墙只能使用静态IP规则,而不能使用FQDN。
对于我们的项目,我们需要访问Google Speech To Text API:https://speech.googleapis.com
。如果在公司网络之外,我们将通过HTTP / 2使用gRPC流来实现这一目标。
理想情况如下:
Corporate network -> static IP in GCP -> forwarded gRPC stream to speech.googleapis.com
我们尝试创建的是全局静态外部IP,但是在配置Load Balancer时失败,因为它只能连接到VM,而不能连接到API。
或者,我们正在考虑使用nslookup speech.googleapis.com
IP地址范围的输出并每天进行更新,尽管看起来很“肮脏”。
我知道我们可以配置计算引擎资源/ VM并转发流量,但这似乎也不是一个很好的解决方案。最好,我们可以使用现有的GCP网络组件来实现。
非常感谢您的指导!
答案 0 :(得分:0)
Google不会发布供您使用的CIDR块。每天尝试将IP地址列入白名单,您都会感到悲伤。 Google的大多数API服务都以全球前端(GFE)为前端。此操作使用HTTP主机标头路由流量而不是IP地址,这将导致路由失败。
尝试查找IP地址可能是一个问题。 DNS不必在每次调用中都返回所有IP地址以进行名称解析。这意味着DNS查找现在可能会返回一组地址,而返回的地址则与之不同。这是一个悲伤的边缘例子,您可能会因将IP地址列入白名单而导致自己陷入困境。
解决方案:与您的防火墙供应商联系。
答案 1 :(得分: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),那么这应该可以解决问题。