设置DNScaching给内部地址响应我的域请求我的外部可访问的服务器

我无法find任何在互联网上解释如何做到这一点…

我正在运行Ubuntu 14.04版本库Bind9

我有一个权威的DNS服务器托pipe我的域名和我的networking/邮件服务器在我的networking后面的一个单一的静态外部IP地址,由build筑物中的所有其他计算机共享。

我有一个DNScaching设置在第二台机器上为我所有的出去的DNS请求,我想这样,当我键入www.my.domain,DNScaching将给予networking服务器的内部IP而不是外部IP。

我没有find任何有关如何做到这一点的信息,但我不认为我在寻找正确的术语。

我试着只是将地址添加到/ etc / hosts文件中,这对于networking的其他部分来说不起作用。

我不知道从哪里看,哪里有人能指出正确的方向。

谢谢。

您要查找的search字词是“拆分DNS”或“拆分视图”。 一般认为,由于pipe理方面的头痛问题,通常被认为是一个糟糕的主意。

您可能希望考虑创build一个未在互联网上公开的私人转发子域。 (即int.example.com ,在您拥有的域名下的东西)将您的DNSlogging用于私人IP地址。 它不会解决使www.example.comselect性地返回私有IP的问题 – 这通常应该在个别系统上解决,但它至less会为您提供专用的DNSlogging。

你可以使用Unbound ,它支持你想要做的事情。 它会取代BIND,你的configuration看起来像这样;

local-zone: "example.com." transparent local-data: "server1.example.com. IN A 192.168.0.10" local-data: "server2.example.com. IN A 192.168.0.11" local-data: "serverN.example.com. IN A 192.168.0.12"

这是做什么的;

  1. 定义区域“example.com”。
  2. transparent是指一种模式,如果没有匹配的local-datalogging,它将传递给外部/转发器名称服务器。
  3. local-data定义您想要在内部覆盖的logging。 server1.example.com可以有一个1.2.3.4的外部IP地址,但是对于任何使用这个DNS服务器的客户端来说,它们都会显示为192.168.0.10。

我之前在大型办公networking上使用过这个版本,并且工作起来非常完美。 您也可以定义许多local-zone定义来覆盖尽可能多的域名。