我有一个公共 IP,例如 123.45.67.89 和一个私有网络 192.168.1.0/24
当我在私有网络之外的任何地方时,我可以连接到公共 IP。当我在私有网络内部时,我无法与公共 IP 通信(HTTP/IMAP/等)。
有人告诉我,当在网络内部时,我的 DNS 应该从公共 IP 解析为私有 IP。
这是真的吗?我该怎么做?在服务器 2003(DNS 服务器)上,我设置了 123.45.67.0 的反向查找,并创建了指向我的私有主机名的 123.45.67.89 指针。在客户端上运行 ipconfig /flushdns 后,这似乎不起作用。
答案1
DNS 没有路线任何东西——它只解析名称。
您正在寻找的功能是水平分割 DNS。您可以设置 DNS 服务器,根据请求的来源,将同一个名称解析为不同的地址。例如:
192.168.0.1 → dnsserver: query 'mail.example.com.' A
dnsserver → 192.168.0.1: answer 'mail.example.com.' A 192.168.1.42
45.67.89.0 → dnsserver: query 'mail.example.com.' A
dnsserver → 45.67.89.0: answer 'mail.example.com.' A 123.456.78.9
答案2
您遇到的问题是路由器未启用 NAT 遍历。如果您想从网络内部连接到服务器,则需要启用 NAT 遍历(如果可以选择)或需要使用私有 IP。您还应该能够使用内部 DNS 选项,其中内部域名指向该私有 IP。
配置公共 DNS 记录以指向私有 IP 或主机名将不起作用。
答案3
解决方案是使用主机名而不是公共 IP。用于公共 IP 的主机名是由 ISP 分配的。从那里,我在 DNS 中添加了一个条目,以将到主机名的流量转发到私有 IP。在网络外部,主机名显然会解析为公共 IP。有人告诉我,以前 Linksys 路由器没有出现这个问题的原因是 Linksys 的安全性较弱,而 NAT 引擎允许这样做。出于安全原因,Cisco 路由器不允许这样做。当路由器后面的私有 IP 位于路由器后面时,无法连接到路由器的公共 IP。
答案4
我就是这样做的。我的问题是我无法通过 Wifi 连接将 iPhone 连接到内部邮件服务器,但它在外部或移动互联网上连接正常,没有任何问题。
实际上,问题在于我的防火墙 (Cisco) 没有在内部路由邮件服务器的公共 IP。实现此目的的唯一选择是将我们的公共邮件域(例如)解析mail.myserver.co.uk
为本地(私有)IP 而不是公共 IP。我们不会触碰外部 DNS 条目,也不能触碰。
以下是您需要执行的操作(在 Windows 环境中):
在您的 DNS 服务器上,右键单击正向查找区域并选择新区域. 使用所有默认设置,输入区域名称作为您服务器的 DNS 名称(不包括最后一个域),例如,对于 ,
mail.myserver.com
您将输入myserver.com
或对于sales.myoffice.com
,请输入myoffice.com
。在这个区域内创建一个 AA 主机条目,即邮件和 IP 应该是您的私有 IP,例如
192.168.1.10
等等。就是这样。现在您必须确保您的设备/iPhone 具有 DNS 名称而不是公共 IP,例如
mail.myserver.co.uk
等。