我们的办公室有一个专用networking,其中(预定义的)公共IP上的任何请求都被转发到所述networking内的专用IP。 在这个私有IP上,我们有一个运行多个服务的服务器,包括HTTP服务器和SCM系统。 我们只控制我们的专用networking,不能控制公网IPconfiguration。
我们购买了一个域名,并将其指向该公共IP,以便人们可以从外部访问我们的服务。 但是,在办公室内部 ,人们不能使用该DNS名称,因为服务器和networking内的任何其他主机共享相同的公共IP !
对于办公室networking内部的台式电脑来说,处理名字非常简单:在主机文件上input一个条目,我们就完成了。 但是,对于那些持续进出的笔记本电脑来说,需要访问办公室内部的服务,这个命名真的很烦人。
我不知道处理这种情况的“标准”过程。 我已经考虑在办公室安装BIND,并且让人们configuration他们的无线和有线连接来使用这个DNS服务器。
在这种情况下,正确的做法是什么? 如果使用BIND(或任何其他DNS服务器)是答案,我应该如何configuration它,使办公室内的人可以使用它来获得我们的自定义名称,并在尝试到达互联网时转发到ISP的DNS?
我觉得绑定太复杂了,可以考虑使用dnsmasq。 dnsmasq非常简单:它从运行的主机文件中获取内部dns名称。 其他的DNS请求被交给上游的DNS服务器。 所以把它安装在你的公司的默认dns服务器上。
结果:不需要维护客户端上的主机文件。 如果他们在互联网上,他们通过正常的DNS服务器解决,如果他们在公司,他们通过dnsmasq解决。
绑定确实是他的答案,但正确设置可能是具有挑战性的。 你需要的是所谓的“分裂DNS”,这是你有不同的名字和IP地址取决于人是否在你的局域网内。
你也可以确保你的路由器在nat环回(它有六个不同的名称),所以公共ip仍然在lan内工作。
至less你知道你的问题是本地用户正在被发送到公共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进行注册。