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 / 问题 / 787963
Accepted
user74078
user74078
Asked: 2016-07-06 02:10:07 +0800 CST2016-07-06 02:10:07 +0800 CST 2016-07-06 02:10:07 +0800 CST

在 BIND 中超过 32 rpz 区域限制的替代方法?...无需运行 BIND 一千次

  • 772

使用 BIND RPZ 为我提供了我正在寻找的更改查询的确切内容。但是,数百个客户端正在使用我的递归 DNS 服务器,我正在寻找一种方法来允许每个客户端进行某种程度的自定义。客户可能希望启用数百个区域,以实现数千种不同的可能组合。

看来我仅限于 32 个 RPZ 区域(看似无限长),但仅此一项是行不通的——每个用户都需要选择加入特定区域的能力。即使每个客户端都有大量区域,它仍然会达到 32 个限制。

我已经简要地查看了 Unbound,它似乎具有类似的具有本地数据透明度的 RPZ 设置,但是当寻找一种将事物分成视图的方法时,乐趣似乎已经结束,因此我只能将它们提供给特定的客户。

当然有一种方法可以在不重新发明轮子的情况下实现这一目标?我看到商业提供商提供类似的设置,例如 OpenDNS,成千上万的客户可以在其中切换各种列表。秘方是什么?

domain-name-system opendns dns-zone unbound rpz
  • 1 1 个回答
  • 924 Views

1 个回答

  • Voted
  1. Best Answer
    Andrew B
    2016-07-06T10:54:17+08:002016-07-06T10:54:17+08:00

    首先,它有助于理解为什么存在限制。

    https://kb.isc.org/docs/aa-01121

    RPZ 机制在 BIND 9.10 中没有改变。知识库文章 AA-00525(使用响应策略区域 (RPZ) 构建 DNS 防火墙)中的文档几乎仍然是最新的。BIND 9.10 中的变化是现在可以在单个实例中使用多达 32 个单独的 RPZ 文件BIND,并且 BIND 并没有因为 RPZ 的大量使用而显着减慢。这 32 个策略区域文件中的每一个都可以根据需要为尽可能多的不同域指定策略。32 的限制是独立指定的策略集合的数量和而不是他们指定策略的区域数量。

    在实现 RPZ 的早期版本的 BIND 中,拥有多个 RPZ 区域文件需要 BIND 在每个策略区域中执行单独的查找以查看是否存在匹配项。在 BIND 9.10 中,策略信息存储在基数树中,其中所有策略区域的同时查找可以在与最大集合(RPZ 区域)中策略语句数量的对数大致成比例的亚线性时间内执行)。

    Vernon Schryver 和 Paul Vixie 为 BIND 9.10 提供了改进的 RPZ 实现。它更快,因为它的策略大小为 O(log n),并且因为它可以并行查找多个数据项。32 的新限制是由于使用 32 位位域来标识影响查询的策略区域。RPZ 以前的实现是 O(n) 而不是 O(log n)。

    我已经强调了相关的措辞。更改 32 限制的唯一方法是更新算法以使用更大的位域,或完全删除优化代码。即使您将位域的大小加倍为 64(或重新加倍为 128 等),您仍然要处理基数树优化所施加的静态限制。由于我不熟悉这个算法的内部结构,我也不能说这种尝试一开始会有多有效。

    您可以通过使用与您的个人客户匹配的视图来解决此问题,这将为每个客户提供 32 个 RPZ 区域,但这是您在不深入研究源代码的情况下所能达到的范围。

    • 2

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

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