AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 956837
Accepted
DevAxeQuestion
DevAxeQuestion
Asked: 2019-03-06 05:04:35 +0800 CST2019-03-06 05:04:35 +0800 CST 2019-03-06 05:04:35 +0800 CST

[DNS][BIND9] 客户端请求外部域名时转发到外部IP

  • 772

所以,我有一些 dns,我为我的域 yyy.com 设置了许多内部区域。而且我需要将记录添加到提供商服务器(主机 - 带有要下载的配置文件,这不是像 googleDNS 8.8.8.8 这样的 DNS)。因为他的设备请求使用域名 xxx.5060.com 或 xxy.5060.com 进行配置。我认为这很容易(在 BIND8 中是)。

所以我将配置添加到主区域文件:

xxx.5060.com. IN A a.b.c.d
xxy.5060.com. IN A a.b.c.d

但命名检查区返回警告: ignoring out-of-zone data 当然 DNS 不希望接收 IP 请求域。所以我开始搜索并尝试新的配置,例如:

xxx.5060.com. IN CNAME helper
xxy.5060.com. IN CNAME helper
helper        IN A     a.b.c.d

警告是一样的,在谷歌中找到的另一个解决方案是编辑named.conf.local并添加“区域”:

zone "xxx.5060.com" {
    type forward;
    forwarders {
        a.b.c.d;
    }
}    
zone "xxx.5060.com" {
    type forward;
    forwarders {
        a.b.c.d;
    }
}
zone "yyy.com" {
    type master;
    file "/etc/bind/zones/db.yyy.com";
    allow-transfer { 10.e.e.e;
                     10.e.e.f; };
...

但是DNS没有反应。

哦...我尝试添加到上层配置forward only;。一样的反应。

有什么建议我做错了什么或设置了什么?

bind
  • 1 1 个回答
  • 1698 Views

1 个回答

  • Voted
  1. Best Answer
    Lacek
    2019-03-06T06:56:49+08:002019-03-06T06:56:49+08:00

    仅转发区域应指向能够回答有关给定区域的请求的名称服务器地址。

    因此,如果您希望您的名称服务器解析xxx.5060.com,您需要指定一个指向 的名称服务器的转发区域5060.com,如下所示:

    zone 5060.com {
        type forward;
        forward only;
        forwarders {
            172.247.252.11;
            115.29.220.216;
        };
    };
    

    这里有一个小说明:我不知道该区域5060.com是否应该只是一个示例,还是您尝试解析的实际域。如果它只是一个示例,那么您很不幸,因为5060.com确实存在,并且上面示例中的 IP 地址已注册为名称服务器。

    如果您尝试解析的主机确实存在,上面的示例应该可以工作。如果没有,那么这不是实现您想要的“好”方式。您不能将主机名“注入”到您不拥有的域中。您的选择如下:

    您可以将您的名称服务器设置为5060.com.

    这样,您可以在该区域中定义您想要的任何主机。这有几个缺点:

    1. 您定义的主机将仅对使用您的服务器(并且只有该服务器)作为 DNS 服务器的计算机可见。您的更改(自然)不会传播到其他 DNS 服务器。
    2. 您的区域文件中不存在的任何主机定义都将消失:您不能“添加”主机名并让您的 DNS 服务器向“真实”服务器询问剩余的主机名。
    3. 如果您的服务器可以从 Internet 访问,您必须注意不要将虚假配置传播给毫无戒心的客户端。

    定义一个虚拟域

    您可以做的另一件事是定义一个以 开头5060.com但实际上是您的内部域的虚拟域,例如5060.com.ismine. 在此域中定义您想要的主机,并将客户端计算机中的 DNS 搜索后缀设置为ismine. 这样,如果通过“官方”DNS 服务器找不到主机,客户端将尝试保留带有.ismine后缀的主机名,您的 DNS 服务器可以为他们提供您喜欢的主机名。这种方法也有一些缺点:

    1. 与之前的方法一样,主机名只能由使用您的 DNS 服务器的客户端访问。如果他们有备用 DNS,它将无法工作(至少在他们询问其他 DNS 服务器时不会)。
    2. 您不能重新定义主机名,因为客户端将首先尝试注册的名称服务器,并且只有在未找到主机名时才会尝试应用后缀。
    3. 您必须能够更改客户端的 DNS 解析配置。
    4. 如果您的服务器是可从 Internet 访问的 DNS 服务器,您可能不希望将内部区域传播到外部客户端。

    如果我正确理解您的帖子,则您无法修改hosts设备上的本地文件,因此如果上述方法对您不起作用,那么您或多或少不走运。

    • 0

相关问题

  • 配置仅在短时间内缓存的本地 DNS 解析器

  • BIND 服务器无法解析 us3.php.net!

  • DNS - 有什么方法可以强制名称服务器更新域的记录?

  • BIND/Named:禁用递归,客户端使用替代服务器

  • DR 站点中 Windows 域的 BIND

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve