Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 无法从计算机解析Google云DNS管理的专用区域_Google Cloud Platform_Google Cloud Dns - Fatal编程技术网

Google cloud platform 无法从计算机解析Google云DNS管理的专用区域

Google cloud platform 无法从计算机解析Google云DNS管理的专用区域,google-cloud-platform,google-cloud-dns,Google Cloud Platform,Google Cloud Dns,我使用的是谷歌云DNS管理的私有区域,该区域允许的网络内的计算实例无法解决该问题。我正在使用两个Ubuntu 18.04 LTS标准图像。这两个实例位于同一网络的两个不同子网上,该子网已被允许查看专用区域 我使用的是GCloud CLI,我通过GCloud init登录并验证了一个选定的项目,我是该项目的所有者 我已经尝试调整/etc/resolv.conf,使之专门指向元数据服务器,但是这完全停止了解析。我最初使用的是私人区域中的一个记录,但它不起作用;基于本文,我尝试对[INSTANCE_N

我使用的是谷歌云DNS管理的私有区域,该区域允许的网络内的计算实例无法解决该问题。我正在使用两个Ubuntu 18.04 LTS标准图像。这两个实例位于同一网络的两个不同子网上,该子网已被允许查看专用区域

我使用的是GCloud CLI,我通过GCloud init登录并验证了一个选定的项目,我是该项目的所有者

我已经尝试调整/etc/resolv.conf,使之专门指向元数据服务器,但是这完全停止了解析。我最初使用的是私人区域中的一个记录,但它不起作用;基于本文,我尝试对[INSTANCE_NAME].[ZONE].c.[PROJECT].内部域使用CNAME,但也不起作用

我正在通过GCloud CLI进行的设置如下:

#!/bin/bash

# gcloud init or gcloud auth activate-service-account must have been previously run

CUSTOMER=test
NETWORK=testnetwork

# configure Cloud DNS - create customer.workshop.local

gcloud dns managed-zones create "${CUSTOMER}internal" \
--dns-name="${CUSTOMER}.workshop.local" --description="A zone" \
--visibility=private --networks="$NETWORK"

# IP is derived through a gcloud compute call but presume it is:
IP=10.10.0.4

gcloud dns record-sets transaction start --zone="${CUSTOMER}internal"
gcloud dns record-sets transaction add "$IP" \
  --name="server.${CUSTOMER}.workshop.local." \
  --ttl=300 \
  --type=A \
  --zone="${CUSTOMER}internal"

gcloud dns record-sets transaction execute --zone="${CUSTOMER}internal"
在子网10.10.1.0/24中从我的Ubuntu 18.04 LTS机器ping时,我得到:

david.alexander@jump-ubuntu-01:~$ ping server.test.workshop.local
ping: server.test.workshop.local: Temporary failure in name resolution

有人有什么想法吗?干杯

您是否已经尝试按照谷歌公共文档的官方指南进行操作:

只是,我看到你错过了这个项目:

gcloud dns --project=test record-sets transaction start --zone=testinternal
gcloud dns --project=test record-sets transaction add 10.10.0.4 --name=test.workshop.local. --ttl=300 --type=A --zone=testinternal
gcloud dns --project=test record-sets transaction execute --zone=testinternal

这只是Ubuntu 18.04的一个问题。Windows不会复制此问题。编辑-CentOS也已经过测试,没有复制此问题

当我在这个网络中创建一个Windows服务器并尝试名称解析时,它工作得很好。Ubuntu 18.04的规范映像(即非自定义映像)默认通过Netplan将名称解析为127.0.0.53,并且无法查询Google元数据服务器。Dig在默认图像上显示了这一点-如果指定元数据服务器,则可以解析名称

我将记录一个与Canonical有关的bug。谢谢约翰·汉利,我不能投票给你,因为你发表了评论,而不是回答了问题——如果你能告诉我怎么做,我可以做到


干杯

我在脚本中没有看到使专用区域对网络可见的命令
gcloud dns管理区域更新专用网络$NETWORK
。不要修改/etc/resolv.conf。Google会定期覆盖此文件(DHCP租约到期或大约每60分钟一次)。注意:
[INSTANCE\u NAME].[ZONE].c.[PROJECT].internal
是一个示例,而不是实际名称。
.c.
零件将不同(a、b、c……)。从这个实例中获取主机名
hostname-f
。谢谢John。我认为创建命令的最后两个选项设置了网络可见性
gclouddns管理的区域创建“${CUSTOMER}internal”\--dns name=“${CUSTOMER}.workshop.local”--description=“A zone”\--visibility=private--networks=“$NETWORK”
在第二点-我使用
hostname=server.test.workshop.local
创建虚拟机,但
hostname-f
只返回
server
,而不是FQDN。感谢您迄今为止的帮助!谢谢你,阿古斯丁。是的,我严格遵守了文件;当您使用gcloud init/gcloud auth activate服务帐户并且已经指定了项目上下文时,您不需要指定项目:),但是,我可以投票支持您的答案。感谢您发布有关问题和解决方案的详细信息。