使用相同的主机名对应用程序进行内部和外部访问?

时间:2018-10-29 03:01:29

标签: google-cloud-platform google-compute-engine

我有一个可由内部gcp服务和实例以及办公室网络上的最终用户(但不是公开地)访问的应用程序。

对于内部访问,我可以在GCE实例上运行应用程序,并使内部gcp服务/实例使用实例的私有DNS主机名(以获取其私有IP)。对于办公室用户,我可以为该实例提供一个公共静态IP,并将该办公室网络的公共IP列入白名单。

如果不创建到办公网络的VPN,是否可以使用一个URL /端点内部GCP,而外部用户可以访问?如果可以的话,也可以在gke上运行该应用程序。

3 个答案:

答案 0 :(得分:4)

这是我写的标题为“ Google Cloud Private DNS Zones”的文章的副本和粘贴。

2018年10月23日,Google为Google Cloud DNS引入了私有DNS区域。这是一个重要的公告,因为这使内部DNS名称保持私有。今天的文章介绍了如何在Google Cloud Platform中实现此新功能。

什么是Google Cloud Private DNS区域? DNS服务器可以提供称为水平分割DNS的功能。这意味着返回到DNS查询的信息可以根据询问者的位置而改变。对于Google Cloud DNS,您可以通过公共Internet或Google Cloud VPC进行查询。

Google Cloud DNS现在可以提供:

  1. 创建专用DNS区域,以为您的专用网络资源(VM,负载平衡器等)提供DNS名称解析。
  2. 将专用区域连接到一个或多个网络,为您设计内部网络体系结构提供了灵活性。
  3. 创建水平/水平DNS架构,其中相同或重叠的区域可以在Cloud DNS中的公共区域和私有区域之间或跨不同的GCP网络共存。
  4. 利用基于IAM的特定于DNS的角色来委派管理或编辑者访问权限,以管理或查看托管的专用区域。

Google Cloud DNS的专用区域是Beta版功能。这需要使用gcloud CLI创建私有区域。

对于本文,我们将使用域名“ example.com”。我们将同时设置私有区域和公共区域。

第1步-创建专用区域。

gcloud beta dns managed-zones create --dns-name="example.com" --description="Private Zone" --visibility=private --networks=default "private-zone"

第2步-创建公共区域。

请注意,如果您的域名未使用Google Cloud DNS,则可以跳过此步骤。

gcloud beta dns managed-zones create --dns-name="example.com" --description="Public Zone" --visibility=public "public-zone"

第3步-使专用区域对默认网络可见。

gcloud beta dns managed-zones update private --networks default

第4步-获取VM实例的完整主机名和简短主机名。

此步骤需要手动确定实例的内部主机名是什么。连接到实例。这些命令从实例控制台运行。

hostname

此命令返回短主机名。

web-server-1

现在获得长主机名。

hostname -f

此命令返回长主机名。

web-server-1.us-east4-c.c.development-123456.internal

第4步-使用实例的私有DNS名称将其添加到私有区域。

此步骤使用Google Cloud Console。控制台->网络服务->云DNS。请注意,我们刚刚创建了两个区域“私有区域”和“公共区域”。选择私有区域。

控制台应显示该区域的两个条目。 NS(名称服务器)记录和SOA(授权开始)。

“ Google控制台”窗口顶部附近是“添加记录集”按钮。点击此按钮。

  • 对于DNS名称,输入:web-server-1

  • 将“资源记录类型”更改为:CNAME

  • 输入标准名称:web-server-1.us-east4-c.c.development-123456.internal

Create Record Set

第5步-使用实例的公共IP地址将其添加到公共区域。

返回到Cloud DNS。选择公共区域。点击“添加记录集”。

  • 对于DNS名称,请输入:web-server-1(或您希望公共DNS支持的名称)。

  • 对于资源记录类型:A

  • 对于IPv4地址,输入:the public IP address

第6步-验证公共DNS解析。

在您的台式机或连接到Internet的另一台计算机上,打开命令外壳/提示符,然后打开ping web-server-1.example.com。这应该解析为公共IP地址。

第7步-验证私有DNS解析。

从同一Google Cloud VPC中的另一个VM实例中,打开命令外壳/提示符,然后打开ping web-server-1.example.com。这样应该可以解析私有DNS名称和IP地址。

那里有。 Google Cloud DNS现在支持水平分割DNS(通常称为水平分割DNS)。

答案 1 :(得分:0)

适当的负载平衡器以及Cloud Armor策略。可以设置为“公共的Office网络到负载Balacer通信,但GCP上托管的应用程序的负载均衡器”通信是私有的。 CloudArmor将使您将Office网络的IP列入白名单,以允许负载平衡器上的流量并阻止其余的传入公共流量。您无需为应用程序服务器提供公共IP / DNS。

答案 2 :(得分:0)

DNS中的

单个主机名不能解析为两个IP地址。除非使用轮询或类似方法。

除主机名外,大多数服务器都能够收听0.0.0.0(任何接口)。

如果主机头对于虚拟主机很重要,则可以对其进行配置,

,以便两个主机名都可以访问相同的服务。