专用网络内的服务器名称

专用网络内的服务器名称

我们的办公室有一个私有网络,其中任何对(预定)公共 IP 的请求都会转发到该网络内的私有 IP。在该私有 IP 上,我们有一台服务器运行多项服务,包括 HTTP 服务器和 SCM 系统。我们只控制我们的私有网络,无法控制公共 IP 配置。

我们购买了一个域名,并将其指向该公共 IP,这样人们就可以从外部访问我们的服务。但是,当里面办公室里的人不能使用该 DNS 名称,因为服务器和网络内的任何其他主机共享同一个公共 IP

对于办公室网络内的台式机,处理名称非常简单:在 hosts 文件中输入一个条目即可。但是,对于经常进出且需要访问办公室内服务的笔记本电脑来说,命名确实很烦人。

我不知道处理此类情况的“标准”流程。我考虑在办公室安装 BIND,并让人们配置他们的无线和有线连接以使用该 DNS 服务器。

在这种情况下,正确的方法是什么?如果使用 BIND(或任何其他 DNS 服务器)是答案,我应该如何配置它,以便办公室内的人员可以使用它来获取我们的自定义名称,并在尝试访问互联网时转发到 ISP DNS?

  • 接收所有从公共 IP 转发的请求的服务器是一台虚拟机,具有 4 个可用核心和 16 GB RAM,托管在 VMware ESXi 4.1 服务器上(总共 48GB RAM,8 个核心)。办公室网络有 10 个永久主机,另外至少还有 5 个可能不时出现的主机。
  • 我需要配置的实际示例。当然,只需要最相关的示例。并且,如果有多种解决问题的方法,请根据具体情况说明哪种方法更好。
  • 所有基础设施都依赖于 Linux 系统。即 Ubuntu 最新版本。

答案1

我猜 bind 太复杂了,无法满足您的需求,请考虑使用 dnsmasq。dnsmasq 非常简单:它从其运行的主机文件中获取内部 dns 名称。其他 dns 请求将交给上游 dns 服务器。因此,请将其安装在公司的默认 dns 服务器上。

结果:无需在客户端上维护主机文件。如果客户端在互联网上,则通过其常规 DNS 服务器进行解析;如果客户端在公司内,则通过 dnsmasq 进行解析。

答案2

Bind 确实是答案,尽管正确设置它可能具有挑战性。您需要的是所谓的“拆分 DNS”,即根据该人是否在您的局域网内,您拥有不同的名称和 IP 地址。

您还可以确保您的路由器执行 nat 环回(它有六个不同的名称),以便公共 IP 仍然可以在局域网内部工作。

答案3

至少你知道你的问题是本地用户被发送到公共 IP。

存在一些选择

  • 在局域网中使用时,获取要路由到本地服务器的公共 IP。使用 NAT 执行此操作,局域网上到公共 IP 的传出请求将转发到服务器的本地 IP。这样做的问题是所有请求都必须通过路由器,并且不会使用任何交换机。
  • 获取本地 DNS,这可以通过 BIND 服务器完成,或者可以使用 maraDNS 安装不常用的桌面。您需要在 DHCP 期间更改路由器提供的 DNS 服务器 IP。
    • 手动编辑每台机器上的主机文件。使用脚本、组策略(可能)执行此操作。

答案4

如果您使用的是 Windows,则在域控制器上的 DNS 中只需添加域,它将优先于公共 DNS。

相关内容