![本地域 DNS 与全局 DNS 设置](https://linux22.com/image/573989/%E6%9C%AC%E5%9C%B0%E5%9F%9F%20DNS%20%E4%B8%8E%E5%85%A8%E5%B1%80%20DNS%20%E8%AE%BE%E7%BD%AE.png)
我的情况:所有本地用户都通过本地域控制器工作,该域控制器设置为典型环境:Win 2008、MS Exchange、MS DNS 等。我有一个连接到本地网络的 Web 服务器。为了使此服务器可从“外部”访问,防火墙中有一个静态路由,它将所有端口 80 流量从外部 IP 转发到我的本地 Web 服务器。有一个指向我的外部 IP 的 xxx.domain.com 公共 DNS (A) 记录。这里一切正常……至少如果您从“外部”访问 xxx.domain.com(不是作为本地域用户连接)。
我正在尝试做什么:如果本地用户尝试打开 xxx.domain.xom,dns 会解析正确的公共 IP,但连接失败。我试图将转发 DNS 区域添加到 MS DNS 服务器中,以覆盖本地用户的 xxx.domain.com,以便它直接转到本地 Web 服务器。
我现在面临的问题:nslookup 对 xxx.domain.com 返回 xxx.domain.com.domain.local 和有效的 Web 服务器 IP 地址,但 ping 和 connect 将 xxx.domain.com 解析为外部 IP。因此,与 xxx.domain.com 的连接失败。
问题:我做错了什么? - 为什么本地用户不能使用外部 IP 连接到服务器? - 如何设置 DNS 服务器来为本地用户覆盖 xxx.domain.com?
如果我的问题看起来不够清楚,请随时提问!
答案1
方法很简单:
假设您的外部域名是 external.com。
- 您不需要对您的 Web 服务器进行静态路由,除非它位于不同的子网(例如 DMZ)。这应该是路由器上的简单端口转发。根据您对路由所做的操作,这可能会影响客户端无法从内部访问您的 Web 服务器的原因。
- 在您的内部 DNS 中设置区域“external.com”。应该有一个指向您网站内部 IP 的 A 记录。 不是外部 IP
- 如果您的网站有“www”,例如 www.external.com。则创建指向 example.com 的“www”的 CNAME 记录。
以下是 NetGear 端口转发的示例 http://kbserver.netgear.com/kb_web_files/n101145.asp
这里介绍了如何创建正向和反向查找区域。此外,还介绍了如何创建 A 和 CNAME 记录。 http://support.microsoft.com/kb/323445
答案2
我究竟做错了什么?
首先,我列举了四件事:
- 您在域名问题上对我们撒谎,然后期望我们能够根据虚假和明显错误的数据来诊断您的问题。
- 您正在使用
nslookup
。 - 您忽略了 DNS 客户端中的搜索路径设置的影响。
- 您正在滥用
local.
,这不是您拥有的域名。
而所有这一切仅仅是因为缺少发夹 NAT。
进一步阅读
- 乔纳森·德·博因·波拉德(2001、2002)。不要隐藏你的 DNS 数据. 常见问题答案。
- 乔纳森·德·博因·波拉德(2001,2004)。
nslookup
是一个有严重缺陷的工具。不要使用它。. 常见问题答案。 - 乔纳森·德·博因·波拉德(2003年)。您忘记用数据填充“内部”DNS数据库。. 常见问题答案。
- 乔纳森·德·博因·波拉德(2012年)。使用您拥有的域名,不要滥用您不拥有的域名。. 常见问题答案。
答案3
据我所知,您有一个简单的问题。当您的用户连接到 www.mydomain.com 时,他们正在连接到您的公共 IP。
解决方案:在本地 DNS 服务器中为 www.mydomain.com 创建一个域。不是mydomain.com 的 A 记录为 www,但域名为 www.mydomain.com。在其中创建一个没有名称的默认 A 记录,其中包含服务器的内部 IP(假设为 192.168.1.10)。
将会发生的是,内部用户将查找 www.mydomain.com,它将解析为 192.168.1.10。
mydomain.com 中的所有其他地址都将被发送到公共 dns 服务器并正常解析。
伊恩