首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在本地不匹配时将本地区域的DNS请求转发给外部DNS (BIND9)

如何在本地不匹配时将本地区域的DNS请求转发给外部DNS (BIND9)
EN

Server Fault用户
提问于 2021-01-01 18:35:17
回答 2查看 708关注 0票数 0

我有一个域example.com,并使用Azure解析所有的主机名,应该从互联网上可见。我已经将mail.example.com定义为指向198.51.100.123,它可以由外部客户端解决,不会有任何问题。

example.com也在我的局域网上使用,使用bind解析所有本地IP地址,这对于本地主机名来说很好。我的DHCP服务器也知道如何处理这个问题,并正确地更新区域文件。所有针对其他区域的DNS请求都转发给Cloudflare DNS。

我希望我的服务器使用本地名称服务器,如果它在本地区域文件中找不到条目,它应该联系Azure服务器并检查它。当我将以下条目添加到区域文件中时,它适用于以下主机名:

代码语言:javascript
复制
external-dns            A       1.1.1.1
vpn                     NS      external-dns
www                     NS      external-dns
ftp                     NS      external-dns

通配符不再在Bind9中工作,所以我不能使用* NS external-dns。还有其他方法可以做到这一点吗?

EN

回答 2

Server Fault用户

发布于 2021-02-10 12:32:44

使用response-policy区域而不是example.com的主区域

当试图解析主机名时,bind将首先查找response-policy区域文件,如果找不到答案,它将继续查找。

下面是一个示例设置:

代码语言:javascript
复制
options {
    # Your normal options
    response-policy { zone "local_example_com"; };
};
zone "local_example_com" {
    type master;
    file "master/local_example.zone";
    allow-query {none;};
};

然后添加一个名为master/local_example.zone的区域文件,该文件包含以下内容:

代码语言:javascript
复制
$TTL 24H
@    SOA LOCALHOST. named-mgr.example.com (1 1d 1h 30d 2h)
     NS  LOCALHOST.

host1.example.com     A   192.168.1.1
host2.example.com     A   192.168.1.2
host3.example.com     A   192.168.1.3
host4.example.com     A   192.168.1.4

当您尝试解析host1.example.com时,它将从response-policy区域获得答案,当您尝试解析mail.example.com时,它将使用example.com名称服务器解析它。

票数 2
EN

Server Fault用户

发布于 2021-01-02 20:47:30

通配符是不可能的,所以我决定使用另一种方法:

  1. 所有外部站点都托管在example.com域中。
  2. 所有内部站点都托管在int.example.com域中。

example.com没有以任何方式改变,而且在Azure中仍然可用(一直如此)。内部绑定服务器现在承载int.example.com域,DHCP服务器也被更新以将int.example.com作为本地域推送。

我希望我的内部站点可以通过HTTPS访问,因此我需要能够使用LetsEncrypt为int.example.com域创建证书。LetsEncrypt无法到达我的内部服务,所以我必须恢复到DNS验证。

我在Azure中将int.example.com区域添加为example.com的子区域。这个区域不会有任何DNS条目,因为我们使用本地服务器。我们不想向外部DNS服务器公开任何内部信息。它的唯一目的是对LetsEncrypt进行DNS验证,因此AcmeSh应该有适当的凭据来创建/删除TXT记录。我按照本指南创建了正确的凭据。我的设置是使用Azure DNS,但是它应该适用于任何支持子区域的DNS。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1048258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档