如何设置本地名称服务器并修改其上的 DNS 区域?

如何设置本地名称服务器并修改其上的 DNS 区域?

这是这个问题

我的路由器无法正确支持发夹式连接,因此出现了问题。请参阅上面的链接了解详细信息。

现在我想设置一个本地 DNS 服务器,以便 LAN 中的主机可以使用它来解析公共主机名(通常的网页浏览...)。

此外,我想修改某些区域。

在我们的 LAN 中,有一些服务器提供公共 DNS 区域中无法提供的资源。

我们始终必须相应地配置我们的本地 LMHost 文件。

例如,我们有一个在本地 Web 服务器上运行新功能的暂存安装,并且我们无法直接使用 IP 访问它,因为该网站在命名虚拟主机容器中运行,我们必须配置 LMHost 文件以将某些域指向本地 IP 地址。

现在我们还遇到了 Hair pinning 问题。

所以我的问题是:我可以使用什么软件?bind 能完成这项工作吗?我只需要将一些 A 条目插入到区域中。尽可能简单。我们有本地 Linux/Ubuntu 服务器。

答案1

根据您网络的大小,绑定可能有点过头了。对于较小的网络,您可以使用dnsmasq它将读取hosts文件来配置地址。它还可以用作 DHCP 服务器和本地 DNS 缓存。

如果您以前没有做过绑定配置,那么绑定配置可能会有点困难。如果无法从互联网访问绑定,则不需要拆分配置,配置更简单。如果不是,您应该实施并测试拆分配置。

配置 DNS 服务器后,您需要更改用于解析地址的服务器列表,以将该服务器作为第一个要查询的服务器。如果您使用 DHCP 配置 IP 地址,那么您可能能够在续订地址时推送更改。通常,DHCP 配置为提供要使用的 DNS 服务器列表。DHCP 租约通常在其生命周期的一半后续订。如果您的租约时间很长,则可能需要相当长的时间才能推送更改。重新启动系统应该会导致它们从 DHCP 刷新其配置。

答案2

您可以使用 BIND 执行此操作,但如何执行取决于您要使用的 BIND 服务器是否已经公开提供 DNS 服务。

如果是,你需要使用view陈述和多个区域文件:-

view "internal" {
    match-clients { 192.168.0.0/24; };
    recursion yes;
    zone "your-domain.com" {
        type master;
        file "your-domain-internal.db";
    };
};

view "external" {
  match-clients { any; };
    recursion no;
    zone "your-domain.com" {
        type master;
        file "your-domain-external.db";
    };
};

(为了节省重复,两个视图共有的记录可以存储在另一个文件中,$INCLUDEd 在两个区域中。)

如果不是(例如,它是仅限内部的服务器),您可以像平常一样为您的域设置一个区域,或者将您需要修改的特定主机设置为它们自己独特的区域,以便其他主机的 DNS 查询将回退到您的公共 DNS,而您无需在内部复制所有公共主机。

zone "www.your-domain.com" { ... }

尽管如此,如果你不依赖 BIND,你可能需要看看类似的东西域名系统相反,它支持“DNS修改”:-

-V, --alias=[<old-ip>]|[<start-ip>-<end-ip>],<new-ip>[,<mask>]
    Modify IPv4 addresses returned from upstream nameservers; old-ip is 
    replaced by new-ip. If the optional mask is given then any address 
    which matches the masked old-ip will be re-written.

使用上一个问题中的 IP,修改起来非常简单,如下所示全部与您的公共 IP 地址匹配的 DNS 查询。

--alias=123.45.67.89,192.168.0.123

答案3

正如我joeqwerty之前在 ServerFault 上所说的那样:您需要的是“水平分割”DNS服务,并且有几种方法可以设置,部分取决于您使用的软件。如您所见,您可以使用一系列软件来实现这一点,从 Microsoft 的 DNS 服务器和 ISC 的 BINDtinydns域名

设置完成后,请不要忘记在外部视图中映射您希望在内部视图中原样存在的 DNS 命名空间部分。 有两种方法可以做到这一点, 也。

答案4

ubuntu 服务器作为 DNS 服务器或者 bind,它们都支持它

相关内容