私有networking内的服务器名称

我们的办公室有一个专用networking,其中(预定义的)公共IP上的任何请求都被转发到所述networking内的专用IP。 在这个私有IP上,我们有一个运行多个服务的服务器,包括HTTP服务器和SCM系统。 我们只控制我们的专用networking,不能控制公网IPconfiguration。

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

对于办公室networking内部的台式电脑来说,处理名字非常简单:在主机文件上input一个条目,我们就完成了。 但是,对于那些持续进出的笔记本电脑来说,需要访问办公室内部的服务,这个命名真的很烦人。

我不知道处理这种情况的“标准”过程。 我已经考虑在办公室安装BIND,并且让人们configuration他们的无线和有线连接来使用这个DNS服务器。

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

  • 获取从公共IP转发的所有请求的服务器是一台具有4个可用内核和16 GB RAM的虚拟机,在VMware ESXi 4.1服务器(总计48GB的RAM,8个内核)上“托pipe”。 办公室networking包括10个永久主机,至less有5个永久主机可能出现。
  • 我需要configuration的实际例子。 当然,只有最相关的那个。 而且,如果解决问题有多种方法,请根据上下文解释哪一个更好。
  • 所有的基础设施都依赖于Linux系统。 也就是说,Ubuntu最新版本。

我觉得绑定太复杂了,可以考虑使用dnsmasq。 dnsmasq非常简单:它从运行的主机文件中获取内部dns名称。 其他的DNS请求被交给上游的DNS服务器。 所以把它安装在你的公司的默认dns服务器上。

结果:不需要维护客户端上的主机文件。 如果他们在互联网上,他们通过正常的DNS服务器解决,如果他们在公司,他们通过dnsmasq解决。

绑定确实是他的答案,但正确设置可能是具有挑战性的。 你需要的是所谓的“分裂DNS”,这是你有不同的名字和IP地址取决于人是否在你的局域网内。

你也可以确保你的路由器在nat环回(它有六个不同的名称),所以公共ip仍然在lan内工作。

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

存在一些选项

  • 在局域网内使用时,将公共IP路由到本地服务器。 使用NAT进行此操作,将局域网上发出的公共IP发送到服务器的本地IP。 这个问题是所有的请求必须通过路由器,并不会使用任何开关。
  • 获取本地DNS,这可以用BIND服务器来完成,或者使用maraDNS可以安装一个不太常用的好桌面。 您将需要在DHCP期间更改路由器提供的DNS服务器IP。
    • 在每台机器上手动编辑主机文件。 这是否会脚本,组策略(也许)。

你一定需要你自己的DNS服务器。

一旦你有自己的DNS服务器,那么你可以编辑你的客户端的networkingconfiguration来接受你的build筑物的DHCPconfiguration,但DNS指向你自己的DNS服务器,从而不接受DHCP服务器分发的DNS服务器。

然后,您自己的DNS服务器可以连接到您要设置的任何外部DNS服务器。

你没有指定你正在使用的操作系统,所以我不能给你具体的细节,但我按照这个build立了自己的DNS服务器: http : //ubuntuforums.org/showthread.php?t=236093

如果你不使用Ubuntu,那么你可以调整你的操作系统的步骤…无论你使用什么操作系统,绑定应该是相同的configuration(大部分)…你似乎知道你在做什么,我我确定你可以很容易地找出答案。

编辑:您的客户将始终连接到您自己的DNS服务器。 您的DNS将只连接到外部DNS。

如果您正在使用Windows,则在您的域控制器上的DNS中,只需添加该域,并且将对公有DNS进行注册。