我为其中一个云服务器(ubuntu)购买/注册了一个域名mydomain.net
,它指向服务器(nslookup)。我已经使用域安装了 DNS(bind) 服务mydomain.net
。现在我正在尝试为其他云服务器添加一些主机记录(都具有静态公共 ip),以便我可以在任何地方使用分配为 DNS 中主机记录的名称全局访问它们。
我添加了一些主机(我使用 webmin 来管理 DNS)用于名称和 ip 解析,但我无法解析它们的名称。
很多时候,我安装和配置了没有公开注册域名的本地 dns 服务器。但是我不明白为全局名称解析运行 DNS 背后的概念是什么。任何人都可以在这里告诉我是否真的可能。
编辑:1
我已经为我的 DNS ip 204.xxx 添加了名称服务器my-dns-hostname-here.mydomain.net
,还为我的 DNS ip 204.xxx 添加了如下主机记录
my-dns-hostname-here.mydomain.net
mediawiki.mydomain.net
当我对上述主机记录进行 nslookup 时,它没有解决它们
编辑:2
作为一个过程,我将在 /etc/resolv.conf 中添加domain mydomain.com
&nameserver dns-ip-here
条目,同时执行本地 dns 服务器,但在云 dns 服务器中我没有,但 ISP 的 dns 服务器 ips。如果我必须更改它,那么我可能必须重新启动我无法做到的云服务器,因为它是生产服务器之一。
编辑:3
输出dig mydomain.net
:我已经编辑以避免安全问题
; <<>> DiG 9.7.0-P1 <<>> mydomain.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42599
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;mydomain.net. IN A
;; ANSWER SECTION:
mydomain.net. 1000 IN A 204.x.x.x
;; AUTHORITY SECTION:
mydomain.net. 3600 IN NS dns1.stabletransit.com.
mydomain.net. 3600 IN NS dns2.stabletransit.com.
;; Query time: 239 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed May 4 14:29:00 2011
;; MSG SIZE rcvd: 104
您可以在wikipedia上找到关于 dns 如何工作的很好的解释。
作为简化,您可以将其视为逆文件系统。要发现 mydomain.net 的 IP 地址,计算机的工作方式与在 /net/mydomain 上查找文件类似。首先,它必须读取根目录以找到网络目录的 id,在 dns 土地上,它必须向根服务器询问 .net。然后它会读取 net dir 来搜索 mydomain,在 dns 域中它会向 .net 服务器询问 mydomain。
请注意,这不是技术上正确的答案。文件系统不是这样工作的,DNS 缓存和多个 DNS 使名称解析更加复杂。但我觉得这是一个简单的模型。
回到你的问题:.net 根 dns 说你的域的权威 dns 是dns1.stabletransit.com。和dns2.stabletransit.com。. 因此,当计算机尝试解析 test.mydomain.net 时,它会向 dns1.stabletransit.com 询问 test.mydoin.net IP,而不是您的服务器,并且 stabletransit 对测试一无所知。
你有两个选择:
1)明智和容易的一个。忘记运行您的 dns 服务器,只需将 test.mydomain.net 添加到 dns1.stabletransit.com。在您购买域名的地方可能有一些选择。
2)极客方式,非常适合学习。将您的 dns 委托给您自己的服务器,了解有关 dns 的所有信息,找到一些辅助服务器(您的 ISP 可能会这样做)并玩得开心。您将不得不阅读大量文档并进行一些实验。确保您能够通过 IP 访问您的域,当(而不是如果)出现问题时,您将需要它。