我是 bind 的新手,不久前我从 ISP 购买了一个静态 IP。我使用 bind 启动了一个域,现在它运行正常,没有任何问题。
例如:我的服务的局域网 IP 是 192.168.1.101,我从 ISP 购买的 IP 是 120.4.5.6。域名例如是 example.com。按照 数字海洋,我使用本地 LAN IP 设置了 A 记录和区域。但是,当我 ping 它时,它返回本地 IP,因此我只能从 LAN 内访问域。为什么会发生这种情况?我没有使用 LAN IP,而是使用了公开购买的 IP,并相应地修改了绑定中的 A 记录,现在一切都正常了!但是,在我看来,这似乎是不正确的,因为根据我所知道的:
当您输入域名地址(例如 example.com)时:首先,它会检查“。”是否识别 com。然后,它会查询与 com 相关的 DNS 服务,看它是否识别 example。最后,返回 example.com 的 IP(120.4.5.6)。那么,为什么当我在 A 记录的绑定中设置自己的 LAN IP(192.168.1.101)时,我只能从内部网络访问该域名,并且为什么 ping 命令返回的是 LAN IP(192.168.1.101)而不是公网 IP(120.4.5.6)?
我认为,当 DNS 提供商返回我的公共 IP 时,客户端应该知道我的 IP 是什么。当它发送到我的系统时,我们使用 bind 来配置 A 记录和内部 LAN 网络设置,以指定 NS、主服务器和支持。如果我误解了什么,请告诉我,我将不胜感激。
答案1
使用 bind,您可以设置“水平分割”,以便对本地 DNS 服务器实例的本地/LAN 查询接收 LAN 地址,而来自 LAN 之外的查询接收公共 IP 地址
答案2
要使绑定 DNS 公开可用,您需要确保域指向您的 DNS 服务器。这可以通过修改域并将名称服务器指向绑定 DNS 服务器来完成。您的 ISP 可能需要针对您想要的域进行更改。然后,您需要确保您的绑定服务器可通过互联网在端口 53 上访问。我不会将您的内部 IP 发布到互联网,因此您需要创建一个具有公共部分和内部部分的分区。公共区域包含您的服务在其上运行的公共 IP 的记录,而内部区域包含内部网络的记录。我挑战您弄清楚如何在绑定中创建分区
基本上,它解析了内部记录,因为您的绑定 DNS 服务器只知道内部 IP,而这是第一个被查询的 IP。另一个选择是将解析器添加到您的 ISP 的公共 DNS 服务器或类似 opendns 的服务器中,将解析器放在绑定中,如果绑定无法在您的内部区域中找到记录,它会查询公共 DNS 层次结构