Google cloud platform 在google云中设置私有DNS

Google cloud platform 在google云中设置私有DNS,google-cloud-platform,dns,nslookup,google-cloud-dns,Google Cloud Platform,Dns,Nslookup,Google Cloud Dns,两年前,谷歌引入了私有DNS,这对于内部域通信非常重要 我使用下面的文档指南设置了一个私有dns以了解dns 下面是创建示例区域所遵循的步骤 创建了专用区域“专用区域” 然后在谷歌云中创建了一个虚拟机,并对域名运行了nslookup。 但这并没有解决问题 testdns:~$ nslookup example.com Server: 169.254.169.254 Address: 169.254.169.254#53 Non-authoritative answ

两年前,谷歌引入了私有DNS,这对于内部域通信非常重要

我使用下面的文档指南设置了一个私有dns以了解dns

下面是创建示例区域所遵循的步骤

创建了专用区域“专用区域”

然后在谷歌云中创建了一个虚拟机,并对域名运行了
nslookup
。 但这并没有解决问题

testdns:~$ nslookup example.com
Server:         169.254.169.254
Address:        169.254.169.254#53
Non-authoritative answer:
*** Can't find example.com: No answer
我在创建的Vm实例上使用Debian OS

Linux testdns 4.19.0-12-cloud-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
这是中除NS和SOA记录之外的两个A记录

test.example.com.   A   300  192.0.0.9
www.example.com.    A   300  192.0.0.91
example.com.        A   3600 192.0.1.1
下面的例子进行了测试

未添加“example.com”记录时的nslookup

mymach@testdns:~$ nslookup example.com ns-gcp-private.googledomains.com
Server:         ns-gcp-private.googledomains.com
Address:        169.254.169.254#53
Non-authoritative answer:
*** Can't find example.com: No answer
#dig example.com使用名称服务器添加了“A”记录

testdns:~$ dig example.com @ns-gcp-private.googledomains.com
; <<>> DiG 9.11.5-P4-5.1+deb10u2-Debian <<>> example.com @ns-gcp-private.googledomains.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41534
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.com.                   IN      A
;; ANSWER SECTION:
example.com.            3600    IN      A       192.0.1.1
;; Query time: 12 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Tue Dec 08 23:03:58 UTC 2020
;; MSG SIZE  rcvd: 56
挖掘
testdns:~$dig example.com
;  挖掘9.11.5-P4-5.1+deb10u2 Debian example.com
;; 全局选项:+cmd
;; 得到答案:

;; ->>标题在您使用以下内容创建区域后:

gcloud dns managed-zones create --dns-name="example.com" --description="Private Zone" --visibility=private --networks=default "private-zone"
您必须为其创建DNS注册表,例如:

gcloud dns record-sets transaction start --zone="private-zone"
gcloud dns record-sets transaction add 10.2.3.4 --name="example.com" --ttl="3600" --type="A" --zone="private-zone"
gcloud dns record-sets transaction execute --zone="private-zone"

给GCP一分钟的时间,然后使用默认的“/etc/resolv.conf”文件重试。

您是否修改了
/etc/resolv.conf
或对正在运行此命令的实例进行了任何其他DNS或DHCP更改?您希望
example.com
解决什么问题?除非您已经创建了DNS资源记录,否则example.com不会返回任何内容。@JohnHanley;感谢您的回复,我没有修改resolv.conf文件,我希望这能给我一个IP,我是在记录中作为私有域设置的一部分获得的。请编辑您的问题,并提供A记录的详细信息。另外,您实际使用的是example.com还是这只是一个占位符?哪个操作系统和版本?发布此命令的输出
nslookup example.com 127.0.0.1
转到Google云控制台->网络服务->区域详细信息。查找NS资源记录的值。在以下命令中将NS_值替换为该值:
nslookup example.com NS_值
。在你的问题中发布这个输出。这就是DNS或web浏览器的工作原理。在web浏览器中键入
example.com
时,浏览器会显示
www.example.com
,这是因为web服务器、负载平衡器等进行了HTTP重定向。如果解析
example.com
,则只解析
example.com
。我忽略了通配符。谢谢@Frank,是的。。我已经在UI中添加了A记录,但只是想知道如何解决各种查询,如“www.example.com”或“example.com”或任何其他不完全是“example.com”的查询。根据我对“www”子域的经验,您需要手动添加这些记录,这些记录被添加为“CNAME”而不是“A”键入指向根记录“example.com”,这样,当“example.com”发生更改时,“www.example.com”记录将自动跟随,您还可以分别手动维护“www”和根域。
testdns:~$ dig example.com 
; <<>> DiG 9.11.5-P4-5.1+deb10u2-Debian <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24673
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.com.                   IN      A
;; ANSWER SECTION:
example.com.            3600    IN      A       192.0.1.1
;; Query time: 11 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Tue Dec 08 23:06:30 UTC 2020
;; MSG SIZE  rcvd: 56
dig example.com @127.0.0.1
; <<>> DiG 9.11.5-P4-5.1+deb10u2-Debian <<>> example.com @127.0.0.1
;; global options: +cmd
;; connection timed out; no servers could be reached
gcloud dns managed-zones create --dns-name="example.com" --description="Private Zone" --visibility=private --networks=default "private-zone"
gcloud dns record-sets transaction start --zone="private-zone"
gcloud dns record-sets transaction add 10.2.3.4 --name="example.com" --ttl="3600" --type="A" --zone="private-zone"
gcloud dns record-sets transaction execute --zone="private-zone"